天使と悪魔選手権

access2000,WIN98SEの環境です。
顧客コード・・・テキスト型、主キー、重複不可
顧客名・・・テキスト型
住所・・・テキスト型
というテーブルを作成し、そこへ登録するフォームを作成しています。
顧客コードは修正時は入力不可としており、追加というボタンを押すとそこへ移動できるようにしています。
追加時に顧客コードで既に登録してあるコードを入れると、Dcount関数を用いて重複レコードがあった時はエラーメッセージを出しています。
その後、カーソルは顧客コードの末尾に移り(100|という感じです)、backspaceキーで100を消して再度入れ直そうとすると再び重複エラーのメッセージが出てしまいます。
Escキーを押すと、コード自体がシロ抜きになり入力することができるのはわかったのですが、Escキーを押すという行為をVBAで現すことはできるのでしょうか?
よろしくお願い致します。なお、マクロは使用しておらずVBAでのコーディングで処理をしています。

A 回答 (3件)

"Undoメソッド"をヘルプで調べてみてください。


ご質問内容の[ESC]キーを押したことと同じ機能になります。
更新前(BeforeUpdate)や変更時(Change)のイベントで使ってください。
SendKeysを使っても問題ないと思いますが、SendKeysは予期せぬ動作をすることがしばしばあるので、
私はなるべく使わないようにしています。
    • good
    • 0
この回答へのお礼

undoで解決しました。遅くなりましたが、どうもありがとうございました。

お礼日時:2002/02/06 17:42

こんにちは。

maruru01です。
直接質問の答えにはなりませんが。
登録フォームをテーブルと非連結で作成してはいかがですか。
フォーム上に適当にテキストボックス(顧客コード、顧客名、住所)を置きます。
追加ボタンのクリックイベントで、
1.3つのテキストボックスが全て空("")でないことを確認(必要に応じて)
2.DCount関数で重複チェック
3.データテーブルのレコードセットを更新可で開く
4.レコードセットにデータを追加する

これなら、顧客コードのテキストボックスに入力する時には、重複チェックがかからないのでエラーメッセージは出ません。
Escキーを押すというような、あまり通常しないような動作はやめた方がいいような気がします。
では。
    • good
    • 0
この回答へのお礼

現在、非連結型のフォームにチャレンジしています。遅くなりましたが、ありがとうございました。

お礼日時:2002/02/06 17:16

SendKeysステートメントを使用してはいかがでしょう?



Sendkeys "{Esc}"

ッう感じで…
    • good
    • 0
この回答へのお礼

遅くなりましたが、ありがとうございました。

お礼日時:2002/02/06 17:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!