ダブリ入力を防止したいのです。一作業で大量に入力するので、ダブリ入力をしたらその場でダブったことを知らせる警告文を表示させたいと思っています。
入力はフォームのデータシートビューのコントロール(テキストボックス)に入力させてます。このフォームのレコードソースはテーブルです。
コントロール(テキストボックス)の更新後処理としてやっているのですが、うまくいきません。
重複クエリ・ウィザードでレコードソースであるテーブルそのものを参照して、Dcountで2以上を返したら警告文を表示、としましたが、うまくいきません。クエリ結果とDcountの数がなぜか一致しません。
いま行き詰まってます。よろしくご教授ねがいます。
No.3ベストアンサー
- 回答日時:
インデックスの設定で解決していれば蛇足ですが・・・
インデックスを指定した場合、エラーが出るのはコントロールの入力時ではなく、レコードの登録時になります。
入力時に、即メッセージを表示したいなら、コントロールで処理すべきだと思います。
例:入力規則を設定
コントロールのプロパティ、データ→入力規則
DCount("*","テーブル名","フィールド名='" & [Forms]![フォーム名]![フィールド名] & "'")=0
現在のレコードはまだ保存されていないので、=0 です。
例:イベントで処理
Private Sub フィールド名_BeforeUpdate(Cancel As Integer)
If DCount("*", "テーブル名", "フィールド名='" & Me![フィールド名] & "'") >=1 Then
MsgBox "重複しています。"
Cancel = True
End If
End Sub
現在のレコードはまだ保存されていないので、>=1 です。
更新後処理ではなく、更新前処理の方が適しています(キャンセルできるので)。
>Dcountで2以上を返したら警告文を表示、としましたが、うまくいきません。
現在のレコードはまだ保存されていませんので、1以上でエラーにすべきだと思います。
No.2
- 回答日時:
テーブルでユニークになるようにキー設定すればいいのでは?
テーブルで重複不可なら、更新した時点でエラーメッセージが出ますけど...
上記が出来ない場合でも重複クエリをカウントでなく、
元のテーブルでDCOUNTで件数が1以上ならメッセージにすればいいのでは?
No.1
- 回答日時:
一番単純な方法です。
テーブル設計時にダブって入力させたくないフィールドのプロパティで
インデックスの欄に はい(重複無し)を設定すればそのレコードは
保存されません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- その他(データベース) accessでのフォームの連携について 2 2022/06/14 00:45
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
accessで重複を防ぎたい
Access(アクセス)
-
Accessで重複データを入力できないようにしたい。
PowerPoint(パワーポイント)
-
アクセス関数を使って、重複チェック
その他(Microsoft Office)
-
-
4
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
5
access マクロでのフィルタの解除の方法
Access(アクセス)
-
6
access追加クエリ実行時の重複を防ぎたい
その他(コンピューター・テクノロジー)
-
7
アクセスで追加した項目に全て同じ値を一発で入れたい
Access(アクセス)
-
8
ACCESSフォーム入力後の確定
Access(アクセス)
-
9
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
10
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
11
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
12
空白はダメというエラーの表示(アクセス)
その他(データベース)
-
13
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
14
Accessのコンボボックスの値が消える
Excel(エクセル)
-
15
入力途中の入力した値をすべて削除する方法
その他(データベース)
-
16
AccessクエリーでチェックボックスOnのものだけカウントしたい
Access(アクセス)
-
17
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
18
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
19
access テキストボックスの値取得
Access(アクセス)
-
20
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access別のテーブルを参照して...
-
Accessでフォームに自動入力し...
-
入力した値をコンボボックスに...
-
テキスト型のフィールドでハイ...
-
Accessフォームが入力できません。
-
前のレコードの値を自動で入れたい
-
Access2010 レコードの更新日付...
-
Accessで時間外管理の作成について
-
インデックスまたは主キーにはn...
-
Accessでデータを更新したらそ...
-
エクセル フィルタの抽出結果...
-
access ダブリ登録を防止したい
-
アクセスでコードを入れると名...
-
Access サブフォームでの選択行...
-
エクセルで、抽出したデータだ...
-
Accessのコンボボックスでリス...
-
ACCESSでVBAから選択クエリの抽...
-
ACCESS 複数のフォームから同一...
-
ExcelのComboboxでマウスのスク...
-
2回目に画面のレコードセットの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータを更新したらそ...
-
前のレコードの値を自動で入れたい
-
インデックスまたは主キーにはn...
-
Accessでフォームに自動入力し...
-
access別のテーブルを参照して...
-
Accessフォームが入力できません。
-
入力した値をコンボボックスに...
-
ACCESSでフォームのチェックボ...
-
テキスト型のフィールドでハイ...
-
access ダブリ登録を防止したい
-
ACCESS フォームで入力データ...
-
アクセスでコードを入れると名...
-
Accessのフォーム入力をしても...
-
AccessVBAの値によっ...
-
Accessで、最後(更新)にエラ...
-
「バリアント型でない変数に Nu...
-
ACCESS2000の帳票フォームでテ...
-
アクセスで自動でレコードを増やす
-
ACCESSで定型入力の〒が表示さ...
-
Accessのフォームでデータ入力...
おすすめ情報