アクセス小僧:フォーム再開時に非連結コンボボックスの選択肢を元に戻す [コンピューター]
アクセスのフォームに設置した非連結のコンボボックスで選択されている
選択肢をフォームを再開したときに、元に戻す方法を紹介します。
コンボボックスの規定値を空白にした場合、
コンボボックスは空白(何も選択されていない状態)になります。
既定値をitemdata(0)、itemdata(1)、--- で指定した場合、コンボボックスの選択肢の1番目、2番目、--- が固定的に選択されます。
フォームを再開したときに、直前に選択していた選択肢を選択するために、コンボボックスの何番目の選択肢が選択されていたか、番号(0, 1, 2, ---)を別テーブルに退避しておき、上記の既定値のitemdata()に戻すことを考えます。
コンボボックスのフォーカス喪失後イベントに、選択されている選択肢の番号(0, 1, 2, ---)を別テーブルに退避するマクロを記述します。
Private Sub コンボボックス名_LostFocus()
'【イベント】コンボボックスがフォーカスを失った時
'【変数】
Dim db As DAO.Database
Dim rs As DAO.Recordset
'【実行コード】
' 退避先テーブルを開く
Set db = CurrentDb()
Set rs = db.OpenRecordset("退避先テーブル名", dbOpenDynaset)
rs.MoveFirst
rs.FindFirst "主キー名=1"
If rs.EOF Then
MsgBox "主キー名=1が見つかりません。"
Else
rs.Edit
rs![コンボボックス名] = [コンボボックス名].ListIndex
rs.Update
End If
rs.Close
Set rs = Nothing ' 解放
db.Close
Set db = Nothing ' 解放
End Sub
退避先テーブルを開いて、主キー=1のレコードのコンボボックス名のフィールドに、ListIndexを使って、選択されている選択肢の番号(0, 1, 2, ---)を退避します。
コンボボックスの規定値に、DLookUpを使って、退避先テーブルから、選択されていた選択肢の番号(0, 1, 2, ---)を参照して、コンボボックスで選択されている選択肢を戻します。
以上。
選択肢をフォームを再開したときに、元に戻す方法を紹介します。
コンボボックスの規定値を空白にした場合、
既定値 |
コンボボックスは空白(何も選択されていない状態)になります。
既定値をitemdata(0)、itemdata(1)、--- で指定した場合、コンボボックスの選択肢の1番目、2番目、--- が固定的に選択されます。
既定値 | [コンボボックス名].[itemdata](0) |
フォームを再開したときに、直前に選択していた選択肢を選択するために、コンボボックスの何番目の選択肢が選択されていたか、番号(0, 1, 2, ---)を別テーブルに退避しておき、上記の既定値のitemdata()に戻すことを考えます。
コンボボックスのフォーカス喪失後イベントに、選択されている選択肢の番号(0, 1, 2, ---)を別テーブルに退避するマクロを記述します。
Private Sub コンボボックス名_LostFocus()
'【イベント】コンボボックスがフォーカスを失った時
'【変数】
Dim db As DAO.Database
Dim rs As DAO.Recordset
'【実行コード】
' 退避先テーブルを開く
Set db = CurrentDb()
Set rs = db.OpenRecordset("退避先テーブル名", dbOpenDynaset)
rs.MoveFirst
rs.FindFirst "主キー名=1"
If rs.EOF Then
MsgBox "主キー名=1が見つかりません。"
Else
rs.Edit
rs![コンボボックス名] = [コンボボックス名].ListIndex
rs.Update
End If
rs.Close
Set rs = Nothing ' 解放
db.Close
Set db = Nothing ' 解放
End Sub
退避先テーブルを開いて、主キー=1のレコードのコンボボックス名のフィールドに、ListIndexを使って、選択されている選択肢の番号(0, 1, 2, ---)を退避します。
フィールド名 | 値 |
主キー名 | 1 |
コンボボックス名 | 選択されている選択肢の番号(0, 1, 2, ---) |
コンボボックスの規定値に、DLookUpを使って、退避先テーブルから、選択されていた選択肢の番号(0, 1, 2, ---)を参照して、コンボボックスで選択されている選択肢を戻します。
既定値 | [コンボボックス名].[itemdata](DLookUp("コンボボックス名","退避先テーブル名","主キー名=1")) |
以上。
ヤバイぜ! ありがとうございます[__猫]
by cheese999 (2017-12-12 14:02)