プロが教えるわが家の防犯対策術!

WinNT4.0+MS-ACCESS97で開発しています。
あるフォームのテキスト項目(仮に商品コードとします)で、
その入力内容のチェック記述を更新後処理でおこなって、
NGだったらその項目にSetFocusする処理です。
だいたい以下のようなものです。
(商品コードの更新後処理)
IF 商品コードチェックNG THEN
:
:
商品コード.SetFocus ・・・(1)
Exit Fucntion
END IF

ここの(1)の処理が走った場合、たしかに商品コードには
フォーカス遷移はするのですが、その項目を修正しようとして
DELキーを押しても反応しません。
一度矢印キーや、他のキーを押すとDELキーも使えるようになります。
(1)の処理後にDELキーを使えるようにするにはどうすればいいのでしょうか?
どなたかこれを回避する方法をご存知の方、もしくは原因が分かる方、お助けください。

A 回答 (1件)

カーソルの位置が入力値(フル桁)の後ろに、ありませんか?


 123| こんな状態 (|がカーソル)

通常フォーカス移動していくと、フォーカスの来た項目が
反転表示されているはずです。
この状態だとDelキーも使用できますよね。

反転状態(選択)になるようにしてあげたらよいのです。
簡単な方法としては、別の項目に移動して、またフォーカスを戻すというのが有効ではないかと思います。

VBであれば、SelLengthとSelStartプロパティで反転させられるのですが、AccessのTextにはないのではないかと思います。

有効なプロパティなどがあるかもしれませんが、
不勉強なもので。。。
お役に立たないかもしれませんが。

VBAの質問にいろいろ答えてくれるHPがあるので、そちらでも調べられるとよいと思います。

参考URL:http://www.moug.net/
    • good
    • 0
この回答へのお礼

ありがとうございます。
なぜかカーソルは、一番前にきています。
別の項目に移動して戻す、というのも試しましたが結果は同じでした。

でもSelLengthとSelstartは使えそうですね。
ACCESSでできるかどうか試してみます。
参考URLにもいろいろ書いてありそうなので、みてみます。

お礼日時:2001/04/19 10:54

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