主要な在庫データベースに取り組んでいます。誰が部屋の鍵をサインアウトし、いつそれらを戻すかを管理するための何か。私は使用する予定のテーブルを作成し、フォームの作業を開始しました。ただし、フォーム/サブフォームを希望どおりに機能させるのに問題があります。
テーブルの結果であるサブフォームのレコードを追加/編集/削除などするためのボタンを作成しました。DBクラスで行った古いプロジェクトに基づいてボタンをコーディングしました(他の誰かがフォームを作成し、クエリを実行しました)。私はそれらを機能させることができないようです。これまでのところ、「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
[リセット]ボタンと[終了]ボタンは正常に機能しますが、レコードの追加/削除/更新は機能しません。また、これは私が学校のオフィスで取り組んでいる小さなプロジェクトです。誰かがファイルに表示されているものからの推奨事項がある場合、それは素晴らしいことです。