住所録を作成しています。
個人名,そのふりがな,会社名,電話番号,etc.と、ごく普通の住所録です。

過去の質問
http://www.okweb.ne.jp/kotaeru.php3?q=169901
を参考に、検索フォームを作成したのですが、
ボタン押下時ではなくテキスト入力時に検索結果が表示されるようにしたいと思い、下記のようにしてみました。

Private Sub TextBox_KeyPress(KeyAscii As Integer)

DoCmd.ApplyFilter , "(ふりがな like '" & Me.TextBox & "*')"

End Sub

単票形式で、フッターに検索テキスト入力用のTextBoxを配置しています。
このTextBoxに個人名のふりがなの一部を入力した時点で検索が行われるようにしたいのですが・・・。

上記コードで一応は検索できます。
たとえば「たな」と入力すれば、「たなか」さんや「たなべ」さんなどが表示され、レコード移動ボタンで移動できます。
しかし、「た」と入力して文字変換を確定すると、ふりがなが入力されているレコードを全て拾い、再度Enterを押すと「た・・」さんが表示されます。

この、再度Enterを押す動作をなくすには、どのようにすればいいのでしょうか?

A 回答 (2件)

うまく動作しなかったようですね


一応動作確認は、Access2000/97の両方とも行ったのですが、Access97ではおっしゃるとおりの動作になりました
すいませんm(_ _)m

下記のように変更して下さい
Private Sub TextBox_Change()

DoCmd.ApplyFilter , "(ふりがな Like '" & Me.[TextBox].Text & "*')"
Sendkeys ("{F2}")

Exit Sub

この"Sendkeys"コマンドは、キーボードから入力する同等の機能をもちます
(Access Helpを参照して下さい)
今回の場合は、検索処理が終了したらキーボードの「F2」キーを押下するという処理が追加しました

>Me以降を解説していただければありがたいのですが・・・。(^_^;)

" ~ Me.[TextBox].Text ~ " の ".text"のことでしょうか?
テキストボックス等のオブジェクトは、プロパティを省略すると、規定値である「.Value」が認識されます
「.Value」 -> 実際に確定された情報を取得できます
「.Text」 -> 現在表示されている状態を取得できます

オブジェクトにより、規定値はあらかじめ決まっています
規定値は何だったかなと思うよりは、日頃からすべてのプロパティを記入するように心がけています
(Accessの場合、ほとんどのオブジェクトのプロパティの規定値は「.Value」だったような...)
    • good
    • 0
この回答へのお礼

大変勉強になりました。
ありがとうございました。

お礼日時:2001/12/21 14:37

まず、キー入力時(KeyPress)のイベントをやめて、変更時(Change)のイベントにしてみましょう



そして、下記のように変更して下さい
Private Sub TextBox_Change()

DoCmd.ApplyFilter , "(ふりがな Like '" & Me![TextBox].Text & "*')"

Exit Sub

たぶん、希望するとおりに動作すると思いますが...
何か問題があったら、補足して下さい

この回答への補足

適切な回答ありがとうございました。
「!」でエラーになったので、「!」を削除したらきちんと動作しました。
Me以降を解説していただければありがたいのですが・・・。(^_^;)

欲を言えば・・・
「た」と入力すれば「た・・」さんが表示されますが、続けて「な」と入力しようとすると、「あn」となります。
これは、「た」が反転表示になっており、カーソルが「た」の前にある為だと思います。
「た」で確定した(検索した)後、つづけて「な」を入力して「たな」を検索キーワードにする方法はあるのでしょうか?

補足日時:2001/12/17 19:30
    • good
    • 0

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

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ