我正在制作一个关键库存数据库。管理谁签出房间钥匙,什么时候把钥匙拿回来。我已经创建了我计划使用的表,并开始处理表单。然而,我有麻烦得到的形式/子形式工作所需的。
我已经创建了按钮来添加/编辑/删除/等子表单中的记录,这是表的结果。我已经根据我在DB类中做的一个旧项目编码了按钮(其他人做了表单,然后我做了查询)。我好像没法让它们工作。到目前为止,我只编写了"mainKeys"表单的按钮。
我注意到主表单显示14条记录中的1条,而来自旧项目的表单只显示子表单中的所有记录。
Access文件:http://jumpshare.com/b/W7AKih
这是我的旧项目(这是我试图复制的):http://jumpshare.com/b/r7Y6O1
下面是这些按钮的代码:Option Compare Database
Private Sub cmdAdd_Click()
If Me.keyID.Tag & "" = "" Then
CurrentDb.Execute "INSERT INTO KEYS(KEY_ID, ROOM, DRAWER)" & _
" VALUES(" & Me.keyID & ",'" & Me.roomID & "'," & Me.drawerID & ")"
subKey.Form.Requery
Else
CurrentDb.Execute "UPDATE KEYS " & _
" SET KEY_ID=" & Me.keyID & _
", ROOM='" & Me.roomID & "'" & _
", DRAWER='" & Me.drawerID & "'" & _
" WHERE KEY_ID=" & Me.keyID.Tag
End If
cmdReset_Click
subKey.Form.Requery
End Sub
Private Sub cmdBack_Click()
End Sub
Private Sub cmdDelete_Click()
If Not (Me.subKey.Form.Recordset.EOF And Me.subKey.Form.Recordset.BOF) Then
If MsgBox("Confirm Deletion?", vbYesNo) = vbYes Then
CurrentDb.Execute "DELETE FROM KEYS" & _
" WHERE KEY_ID=" & Me.subKey.Form.Recordset.Fields("KEY_ID")
Me.subKey.Form.Requery
End If
End If
End Sub
Private Sub cmdEdit_Click()
If Not (Me.subKey.Form.Recordset.EOF And Me.subKey.Form.Recordset.BOF) Then
With Me.subKey.Form.Recordset
Me.keyID = .Fields("KEY_ID")
Me.roomID = .Fields("ROOM")
Me.drawerID = .Fields("DRAWER")
Me.keyID.Tag = .Fields("KEY_ID")
Me.cmdAdd.Caption = "Update Record"
Me.cmdEdit.Enabled = False
End With
End If
End Sub
Private Sub cmdExit_Click()
DoCmd.Close
End Sub
Private Sub cmdReset_Click()
Me.keyID = ""
Me.roomID = ""
Me.drawerID = ""
Me.keyID.SetFocus
Me.cmdEdit.Enabled = True
Me.cmdAdd.Caption = "ADD KEY"
Me.keyID.Tag = ""
End Sub
从我看到的Reset &退出按钮工作正常,添加/删除/更新记录不。另外,这是我正在为学校办公室做的一个小项目。如果有人有什么建议,那就太好了
没有发生任何事情的原因是数据库中的事件行设置为[Embedded Macro]
而不是[Event Procedure]
,因此您发布的代码永远不会运行。当你遇到问题时,设置一个断点来查看代码是否被到达总是明智的。