Microsoft Access 掲示板

同日のレコードがあれば既存のものを表示させるには

1 コメント
views
4 フォロー

フォームに日付のフィールドとその他の入力フィールドを配置します
日付フィールドに任意の日付を入力したとき、同日の既存のレコードがあればそれを表示
なければ新規に作成する、といったものはどうやったら作れますか?

原則として1日1レコードという場合です

日付_____

項目1____ 項目2____

とあったとき日付に入力してその日付のものをすでに入力しているときには各項目に既存のレコードを
表示させたいということです

DSR
作成: 2020/08/07 (金) 18:18:27
通報 ...
1

いろいろ方法はありますが、一例を紹介しておきます。

フォームウィザードで入力したいテーブルをもとに単票フォームを作成します。
フォームプロパティを下記のように設定します。

プロパティ設定値
フィルターFalse
読み込み時にフィルターを適用はい
追加の許可いいえ
 

「日付」のテキストボックスの「使用可能」は「いいえ」にします。

フォームヘッダーにテキストボックスを配置して下記のように設定します。

プロパティ設定値
名前txt日付
書式yyyy/mm/dd
(書式はお好みの日付書式に)

txt日付更新後処理のイベントプロシージャを下記のように記述します。

Private Sub txt日付_AfterUpdate()
    If IsDate(Me.txt日付.Value) Then
        Me.Filter = "日付=#" & Me.txt日付.Value & "#"
        Me.FilterOn = True
        If Me.Recordset.RecordCount = 0 Then
            Me.日付.DefaultValue = "=#" & Me.txt日付.Value & "#"
            Me.AllowAdditions = True
        End If
        Me.項目1.SetFocus
    End If
End Sub

 
フォームの挿入後処理のイベントプロシージャを下記のように記述します。

Private Sub Form_AfterInsert()
    Me.AllowAdditions = False
End Sub

以上です。