![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ダブリ入力を防止したいのです。一作業で大量に入力するので、ダブリ入力をしたらその場でダブったことを知らせる警告文を表示させたいと思っています。
入力はフォームのデータシートビューのコントロール(テキストボックス)に入力させてます。このフォームのレコードソースはテーブルです。
コントロール(テキストボックス)の更新後処理としてやっているのですが、うまくいきません。
重複クエリ・ウィザードでレコードソースであるテーブルそのものを参照して、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(パワーポイント)
-
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
-
4
Accessでテーブルの値をテキストボックスに代入するには?
Access(アクセス)
-
5
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
6
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
7
空白はダメというエラーの表示(アクセス)
その他(データベース)
-
8
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
9
access追加クエリ実行時の重複を防ぎたい
その他(コンピューター・テクノロジー)
-
10
access マクロでのフィルタの解除の方法
Access(アクセス)
-
11
Accessでデータシートに同じデータがいくつもでてしまいます。
その他(データベース)
-
12
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
13
Acccessで2つのテーブルから1つのフォームをつくりたい
Access(アクセス)
-
14
Access VBA SQL文で教えてください
PowerPoint(パワーポイント)
-
15
アクセスVBAのMe!と[ ]
Access(アクセス)
-
16
ACCESSフォーム入力後の確定
Access(アクセス)
-
17
アクセス関数を使って、重複チェック
その他(Microsoft Office)
-
18
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
19
ACCESSでVBAから選択クエリの抽出条件を指定したい
Access(アクセス)
-
20
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータを更新したらそ...
-
前のレコードの値を自動で入れたい
-
access別のテーブルを参照して...
-
Accessフォームが入力できません。
-
インデックスまたは主キーにはn...
-
ACCESSでフォームのチェックボ...
-
AccessVBAの値によっ...
-
ACCESSで定型入力の〒が表示さ...
-
ACCESS フォームで入力データ...
-
Accessでのデータベース構築に...
-
アクセスでコードを入れると名...
-
文字列の入っているString値、...
-
テキスト型のフィールドでハイ...
-
入力した値をコンボボックスに...
-
Accessで、オートナンバー型を...
-
Accessのフォームのデータシー...
-
アクセスで、テーブル左列の文...
-
access ダブリ登録を防止したい
-
Accessで、最後(更新)にエラ...
-
DELPHIでSQLテーブルを読み込み...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
前のレコードの値を自動で入れたい
-
access別のテーブルを参照して...
-
Accessでデータを更新したらそ...
-
Accessでフォームに自動入力し...
-
インデックスまたは主キーにはn...
-
入力した値をコンボボックスに...
-
Accessフォームが入力できません。
-
ACCESS フォームで入力データ...
-
アクセスでコードを入れると名...
-
access ダブリ登録を防止したい
-
ACCESSでフォームのチェックボ...
-
AccessVBAの値によっ...
-
テキスト型のフィールドでハイ...
-
ACCESS2000の帳票フォームでテ...
-
Accessのフォームでデータ入力...
-
Access2010 レコードの更新日付...
-
アクセスのフォームの必須項目...
-
ACCESSで定型入力の〒が表示さ...
-
「バリアント型でない変数に Nu...
-
Accessのフォーム入力をしても...
おすすめ情報