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
通報 ...
この度はいろんな方に御指南していただきまして、
ありがとうございました。
無事、hirotonさんの記載くださった方法で、
問題が解決しました。
どうもありがとうございました。
先日は皆様に大変お世話になりました。
そして、またご質問させてください。
先日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から始めるようにしたときに
だけエラーが出るみたいです。
すごく細かい質問になって
失礼します。
お手数ですが、ぜひ御指南ください。
旧質問が解決済だから、新しい質問をたてるのは、どうですか?
日付を入力したテキストボックスは、非連結ですか、それとも、◯◯テーブルもしくは△△クエリのほにゃららフィールドに連結していますか?新しい質問で教えて下さい。
この部分のコードにレコードを勝手に登録するような内容はありません。データを削除した後、「今日ではない日付」を最初に入力した場合に同じエラーメッセージが表示されますか?
(例えば「今日」が2021/9/15なら2021/9/16を入力します)
その後テーブルを開いて内容を確認してください。何が登録されていますか?