我正在處理關鍵庫存數據庫。管理誰簽名房間鑰匙,什麼時候他們把他們帶回來。我創建了我計劃使用的桌子,並已開始製作表格。但是,我無法按照需要使窗體/子窗體正常工作。訪問按鈕VBA問題和子表單問題
我已經創建了按鈕來添加/編輯/刪除/ etc的子表中的記錄是表的結果。我已經編寫了基於我在我的數據庫類中做過的一箇舊項目的按鈕(當時有人做了這些表單,我做了查詢)。我似乎無法讓他們工作。到目前爲止,我只編寫了「mainKeys」表單的按鈕。
我注意到主窗體顯示了14條記錄中的1條,而來自我舊項目的窗體只顯示了窗體中的所有記錄。
這裏的訪問文件: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 &退出按鈕工作得很好,添加/刪除/更新記錄不會。 另外,這是我正在爲我的學校的辦公室工作的一個小項目。如果任何人有什麼建議,他們在文件中看到的將是偉大的。
更改後不應該更新數據庫嗎?可能是「Me.update()' – Vogel612
,但我認爲這就是」Me.subKey.Form.Requery「所做的。我看着文件即時通訊使用作爲指導,沒有me.update(),它似乎工作正常。 – Batman
,但沒有任何查詢或編輯功能,嘗試檢查是否工作後添加它 – Vogel612