解決済み

Accessで、重複データのチェック

  • すぐに回答を!
  • 質問No.296447
  • 閲覧数250
  • ありがとう数0
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 18% (10/53)

Access2000で、テーブル更新用のフォームを作っています。既に登録済みのレコードを編集する、あるいは新規のレコードを登録する機能を持っています。
そのフォーム上のテキストで、既存レコードを編集、あるいは追加したい新規レコードを入力して、テキストからフォーカスを離すと、入力したレコードが既存のレコードと重複していないか、チェックを走らせています。重複している場合は、適切なレコードが入力されるまで、そのテキストからフォーカスを離さないようにしています。が、やはりそのようなチェックの仕方では、既存のレコードに一度手を加えてしまうと、手を加える前のレコードに戻すことは出来ません。
たとえば、"東京都"というレコードが登録済みである→"東京都"を"北海道"に変える→やっぱり"東京都"というレコードに戻す→重複チェックにひっかかり、フォーカスもそこから離せない状態である→元のレコードにはもう戻せない、とにかく"東京都"と異なる値で登録するしかない。。。という具合です。以下の関数を、更新前処理でよんでいます。どなたか、よいアドバイスをください。お願いいたします。
Function ChkInp(pCntrl As Control, _
pClmName As String, _
pCourt_Cd As String) As Boolean
  Dim wSQL As String
ChkInp = False
wSQL = ""
wSQL = "select AREA_CD from COURTED_XXT009"
wSQL = wSQL + " where COURT_CD = '" & pCourt_Cd & "'"
wSQL = wSQL + " and " & pClmName & " = '" & pCntrl & "'"
Set rst = CurrentDb.OpenRecordset(wSQL, , acReadOnly)
If rst.EOF() = False Then
ChkInp = True
End If
End Function
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル10

ベストアンサー率 32% (45/140)

フォームとテーブルを結びつけるのを止めてはどうでしょうか?
最終的にコミットするボタンを設けてInsertなりUpdateされてはいかがなもんでしょう。
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ