参见带色的语句
Private Sub 确认消耗_Click()
On Error Resume Next
Dim q
q = Val(selectstr)
frm_药品库存.药品ID = selectstr
Forms!frm_药品分类查询1.Form.药品ID = selectstr
Dim curdb As Database
Set curdb = CurrentDb
curdb.Execute "insert into 出库记录(药品ID,出库日期,药品名称,厂家,规格,有效期,药品分类,单位,出库数量) Values('" & 药品ID.Value & "','" _
& 出库日期.Value & "','" & 药品名称.Value & "','" & 厂家.Value & "','" & 规格.Value & "','" & 有效期.Value & "','" & 药品分类.Value & "','" _
& 单位.Value & "','" & 出库数量.Value & "')"
MsgBox ("药品消耗成功!")
DoCmd.Close
'Forms!frm_药品库存.Requery
Forms!frm_药品库存.药品ID.SetFocus
Forms!frm_药品库存.Requery
Forms!frm_药品分类查询1.Requery
Forms!frm_药品分类查询1.Form.药品ID.SetFocus
'DoCmd.GoToRecord , , "药品ID"
DoCmd.GoToRecord acDataForm, "frm_药品库存", acGoTo, q
'或者用这句也行: DoCmd.GoToRecord acDataForm, " Forms!frm_药品库存", "药品ID.SetFocus"
End Sub
Private Sub 确认消耗_Click()
On Error Resume Next
Dim q
q = DCount("*", "库存查询3", "药品ID<='" & selectstr & "'")
frm_药品库存.药品ID = selectstr
Forms!frm_药品分类查询1.Form.药品ID = selectstr
Dim curdb As Database
Set curdb = CurrentDb
curdb.Execute "insert into 出库记录(药品ID,出库日期,药品名称,厂家,规格,有效期,药品分类,单位,出库数量) Values('" & 药品ID.Value & "','" _
& 出库日期.Value & "','" & 药品名称.Value & "','" & 厂家.Value & "','" & 规格.Value & "','" & 有效期.Value & "','" & 药品分类.Value & "','" _
& 单位.Value & "','" & 出库数量.Value & "')"
MsgBox ("药品消耗成功!")
DoCmd.Close
'Forms!frm_药品库存.Requery
Forms!frm_药品库存.药品ID.SetFocus
Forms!frm_药品库存.Requery
Forms!frm_药品分类查询1.Requery
Forms!frm_药品分类查询1.Form.药品ID.SetFocus
'DoCmd.GoToRecord , , "药品ID"
DoCmd.GoToRecord acDataForm, "frm_药品库存", acGoTo, q
'或者用这句也行: DoCmd.GoToRecord acDataForm, " Forms!frm_药品库存", "药品ID.SetFocus"
End Sub
王老师,首先感谢您在百忙中抽出时间来为我详细解答。我在反思自己,为什么我没有想到这一点呢?第一,忽略了解selectstr是一个文本,我甚至将“'DoCmd.GoToRecord , , "药品ID"”写成了'DoCmd.GoToRecord , , "selectstr"”,现在明白了这句前面两个逗号指代不明,能够写明白,就要尽量写明白,后面的Record参数不会写,在这里不应用变量,即使写成了"药品ID"也没想到前面设置其为焦点的含义,只是想将焦点转移到“药品ID”上面来,才好进行写'DoCmd.GoToRecord "这个语句,还以为"药品ID"就代表"药品ID.setfocus",原来记录也可指向焦点处.第二,对DCount函数应用较少,只知道用DLookUp函数.才导致没有想出来,感谢王老师让我掌握了不少知识.非常感激.
最重要一点是:先将药品ID设为焦点,然后再查询窗体。
总记录:4篇 页次:1/1 9 1 :