Microsoft Access 掲示板

Accessのフォームの日付テキストボックスに入力する値が重複していると新規に入力できなくするには? / 6

10 コメント
views
4 フォロー
6
hiroton 2021/08/20 (金) 15:17:10 13d29@f966d

重複を許さないだけならすでに挙げた方法でいいですが、既定のメッセージじゃ使いにくいのはありますね。2つ目の方法でメッセージを出してキャンセルする(=条件分岐を入れない)ようにすればいいです

Private Sub 日付_BeforeUpdate(Cancel As Integer)
    If Not IsNull(DLookup("日付", "テーブル名", "日付=#" & Me.日付 & "#")) Then
        MsgBox "既に入力された日付です。異なる日付を入力してください"
        Cancel = True
    End If
End Sub
通報 ...
  • 7
    ワッフル 2021/08/24 (火) 13:24:59 bd37f@318ee >> 6

    この度はいろんな方に御指南していただきまして、
    ありがとうございました。

    無事、hirotonさんの記載くださった方法で、
    問題が解決しました。

    どうもありがとうございました。

  • 8
    ワッフル 2021/09/14 (火) 13:21:57 946f7@318ee >> 6

    先日は皆様に大変お世話になりました。

    そして、またご質問させてください。
    先日hiroton さんに
    お教えいただいた以下のプログラムを入れました。

    Private Sub 日付_BeforeUpdate(Cancel As Integer)
        If Not IsNull(DLookup("日付", "テーブル名", "日付=#" & Me.日付 & "#")) Then
            MsgBox "既に入力された日付です。異なる日付を入力してください"
            Cancel = True
        End If
    End Sub

    そうして、希望通り重複エラーを出せるようになったんです。

    ところがです。

    私は、関連のデーターをすべて消しました。
    そうしてシステムを最適化しました。

    そうしてオートナンバーを1からスタートに
    して使おうとしました。

    すると、
    「既に入力された日付です。異なる日付を入力してください」
    というエラーが出るように成りました。

    日付は、本日の日付(2021/09/14)です。
    入力できないので、1日ずらして(2021/09/15)を
    入力しました。

    そうして気になってテーブルを覗くと、
    2021/09/14と2021/09/15で
    データーが入力されていました。

    こういったエラーはどうしたら
    取り除けますか?

    その後は普通に入力できるので、
    データーをオールクリアして最適化して、
    オートナンバーを1から始めるようにしたときに
    だけエラーが出るみたいです。

    すごく細かい質問になって
    失礼します。

    お手数ですが、ぜひ御指南ください。

    9
    りんご 2021/09/14 (火) 14:09:39 c564b@0e907 >> 8

     旧質問が解決済だから、新しい質問をたてるのは、どうですか?
     日付を入力したテキストボックスは、非連結ですか、それとも、◯◯テーブルもしくは△△クエリのほにゃららフィールドに連結していますか?新しい質問で教えて下さい。

  • 10
    hiroton 2021/09/15 (水) 08:22:35 a2c3c@f966d >> 6

    そうして気になってテーブルを覗くと、
    2021/09/14と2021/09/15で
    データーが入力されていました。

    この部分のコードにレコードを勝手に登録するような内容はありません。データを削除した後、「今日ではない日付」を最初に入力した場合に同じエラーメッセージが表示されますか?
    (例えば「今日」が2021/9/15なら2021/9/16を入力します)

    その後テーブルを開いて内容を確認してください。何が登録されていますか?