hatena
hatena
2020/07/16 (木) 01:24:39
とりあえずはそのファイルで状況は把握できます。
コンボボックスのリストに #DELETED が表示される現象の解決法は、コンボボックスを再クエリすればOKです。
Private Sub ユーザー情報削除_Click()
Dim strSQL As String
MsgBox "登録情報を削除します"
'DoCmd.RunCommand acCmdDeleteRecord
strSQL = "DELETE * FROM 基礎情報マスタ where 基礎情報マスタ.個人ID=" & UC_個人ID & ";"
DoCmd.RunSQL (strSQL)
DoCmd.Close acForm, "ユーザー情報編集フォーム", acSaveNo
Forms!ポップアップ入力.Requery
Forms!ポップアップ入力!PF_CMB_個人ID.Requery
Forms!ポップアップ入力!PF_CMB_個人ID.Value = Null
End Sub
ただし、致命的な欠陥かあります。
「ポップアップ入力」のコンボボックスで後の方のレコードを選択してからボタンクリックで「ユーザー情報編集フォーム」を表示させると、テーブルの先頭のレコードが、コンボボックスで選択したレコードで上書きされてしまいます。
「ユーザー情報編集フォーム」を開いた直後は先頭レコードが表示されます。ところが、読み込み時イベント Form_Load() で「ポップアップ入力」のデータで上書きしてしまってます。
Form_Load()のコードは削除してください。
それから、「ポップアップ入力」のコマンドボタンクリック時のコードを下記に変更してください。
Private Sub ユーザー情報変更_Click()
If IsNull(PF_CMB_個人ID) Then
MsgBox "編集する人間の個人IDを入れてください"
Exit Sub
End If
DoCmd.OpenForm "ユーザー情報編集フォーム", , , "個人ID=" & Me.PF_CMB_個人ID.Value
End Sub
これで、"ユーザー情報編集フォーム" のレコードは、「ポップアップ入力」と同じものになります。
通報 ...