• ベストアンサー

アクセス97のフォームについて

前回質問したのですが回答がなかったので再度簡単に質問させていただきます 現在、帳票フォームとしてフォームを作成しています コードをレコードの項目にふってあるのですが、入力するさいに既存レコードとコードが重複した場合にエラーを表示したいのです 出来れば同一コードを入力された場合次のレコードへは行けないようにしたいのですが・・・。 フォームの更新前処理に設定すればとりあえず次のレコードへは行かなくなるのですが、既存レコードを編集した場合にもエラーが表示されるのです 更新前処理で処理をしたいのですがムリでしょうか? なにか良い方法があれば教えてください 宜しくお願いします

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

  • ベストアンサー
  • yoisho
  • ベストアンサー率64% (331/516)
回答No.1

前回のご質問というのは QNo.755343 でしょうか? でしたら、 最も簡単なのは、フォームのレコードソースとなるテーブルの [メインコード] と [サブコード] を合わせて複数フィールドの主キーとして設定してやれば、これらの組み合わせでの重複を Access の方でチェックしてくれます。 もし、何かの都合で QNo.755343 で示されていたような方法にする必要があるなら、 少しばかり以下のような細工をしてみてはいかがでしょうか? Private Sub Form_BeforeUpdate(Cancel As Integer) If Dcount(~・・・・・・ '重複データのチェック   If Me.NewRecord = True Then     'もし新規レコードなら、重複エラー処理へ     GoTo 重複エラー   ElseIf Me!サブコード <> Me!サブコード.OldValue Then     '既存レコードでサブレコードが変更されていれば、重複エラー処理へ     GoTo 重複エラー   End If End If Exit Sub 重複エラー: '重複エラーの処理ルーチン。例えば、 Msgbox "同じサブコードのレコードが存在します。" Me.Undo End Sub HELP で、NewRecord プロパティ、OldValue プロパティを確認してみてください。

konkon_m
質問者

お礼

回答ありがとうございます テーブルの主キーの件ですがあるエラーが出てしまうため 使えないんです(エラー名は忘れましたが・・) もう一つの方法は今日試してみますね

関連するQ&A