OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

アクセス(ACCESS)のリストボックスについて

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

お礼率 89% (60/67)

アクセスでフォームにテキストボックスとリストボックスを配置して、
テキストボックスに入力した文字列により、リストボックスに表示される
データを変えたいのですが(フィルタをかけるというのでしょうか??)

そこで、vbaを用い、リストボックスのプロパティの値集合ソースに

SELECT * FROM aaa where aaa.bbb like "*あ*";
'あ と言う文字のあいまい検索のつもり ”あ”はテキストボックス
   に入力されている。

と入るような事を考えたのですが、ここで、aaaの部分がテーブルを基にした
場合は、該当するデータすべてが表示されますが、クエリーを基にすると
先頭のデータしか表示しないのです。

たぶん、素人の考えなのでしょうが、どうしてそうなるのかが分かりません。
教えていただけないでしょうか?

できたら、クエリーを基にしても、該当データが表示できる方法も
教えてください。お願いします。

VBAは(?)かなりの初心者です。上記の方法も本に書いてあった物を
やっと流用しました。猿にも解るくらいでお願いします。

ちなみに、アクセスは2000を使用しています。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル7

ベストアンサー率 50% (9/18)

>クエリーを基にすると先頭のデータしか表示しないのです
(・_・?おかしいですね、できると思いますよ

とりあえず、テキストボックスを使用したリストボックスの表示更新サンプルを記します

キーワード:
テーブル:AAA
AAAテーブルに含まれるフィールド:BBB
テキストボックス:TxtABC
リストボックス:LstDEF

'~~~~~~~~~~
'検索テキストボックスの変更時イベントプロシージャ
Private Sub TxtABC_Change()
Dim stSQL As String

'リストボックスのソースとなるSQL記述
stSQL = "SELECT AAA.* FROM AAA "

'検索値は入力されているか?
If IsNull(Me![TxtABC].Text) = False Then

'条件式付与
stSQL = stSQL & "WHERE ((AAA.BBB) "

'検索文字列に「*」または「?」が入力されているか?
If InStr(1, Me![TxtABC].Text, "*") Or InStr(1, Me![TxtABC].Text, "?") Then
stSQL = stSQL & "Like"
Else
stSQL = stSQL & "="
End If

'検索条件値付与
stSQL = stSQL & " '" & Me![TxtABC].Text & "') "

End If

'並べ替え付与
stSQL = stSQL & "ORDER BY AAA.BBB;"

'リストボックスのソース更新
Me![LstDEF].RowSource = stSQL

End Sub
'~~~~~~~~~~

参考になれば幸いです。頑張りましょう。
お礼コメント
kazh

お礼率 89% (60/67)

素早い回答ありがとうございました。感謝・感激!です。
早速、頑張ってみます。

でも、検索文字列の配慮とか(?)並べ替えとか(?)
初心者には気がつかない点まで、御指導下さいまして、
ありがとうございました。
今後ともよろしくお願いします。
投稿日時 - 2001-10-16 08:56:34
-PR-
-PR-
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

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

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

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ