簡體   English   中英

訪問按鈕VBA問題和子窗體問題

[英]Access Buttons VBA Problems and Subform Issues

我正在處理關鍵庫存數據庫。 可以管理誰簽出房間密鑰以及何時將它們帶回。我已經創建了計划使用的表,並已開始處理表單。 但是,我無法使表單/子表單按需工作。

我創建了按鈕,用於添加/編輯/刪除/等子表格中的記錄,這些記錄是表的結果。 我已經根據我在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

從我可以看到的“重置和退出”按鈕工作得很好,但添加/刪除/更新記錄卻沒有。 另外,這是我正在為學校辦公室工作的一個小項目。 如果有人對文件中的內容有任何建議,那就太好了。

什么都沒發生的原因是數據庫中的事件行設置為[Embedded Macro]而不是[Event Procedure] ,因此您發布的代碼永遠不會運行。 當您有問題要查看代碼是否到達時,設置斷點總是明智的。

在我看來,在那之后,您將以一種方式帶來太多麻煩,而以另一種方式帶來太多麻煩。 當Access將很好地處理子窗體的添加內容時,與其編寫所有插入代碼,不如編寫更多檢查代碼以確保數據格式良好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM