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

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

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

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

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

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

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

ちなみに、アクセスは2000を使用しています。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

>クエリーを基にすると先頭のデータしか表示しないのです


(・_・?おかしいですね、できると思いますよ

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

キーワード:
テーブル: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
'~~~~~~~~~~

参考になれば幸いです。頑張りましょう。
    • good
    • 0
この回答へのお礼

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

でも、検索文字列の配慮とか(?)並べ替えとか(?)
初心者には気がつかない点まで、御指導下さいまして、
ありがとうございました。
今後ともよろしくお願いします。

お礼日時:2001/10/16 08:56

このQ&Aに関連する人気のQ&A

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

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

このQ&Aと関連する良く見られている質問

Q百田尚樹さんの殉愛ってどういう内容の本なんですか?

百田尚樹さんの殉愛ってどういう内容の本なんですか?

百田尚樹さんはやしきたかじんさんが死ぬまで病院にいたのですか?これは事実?それとも架空の想像小説?

百田尚樹さんの密着ドキュメンタリー?

Aベストアンサー

やしきたかじんさんの妻さくらさんからたかじんさんの死去後にたかじんさんが書いたとされるノートが提供され、これを元に関係者に取材して書き上げたノンフィクション、ということになっています。
百田尚樹さんとたかじんさんは生前はほとんど面識がなかったとのことです。

QAccess コンボボックスで選択し、自動でテキストボックスに該当のデータを抽出する方法

こんにちわ。現在仕事の関係でどうしても必要になり、Accessを初めて勉強している者です。
先日もAccess関連の質問をさせて頂きましたが(ご回答頂いた方ありがとうございました)、
また難問にぶつかってしまいました。

絶対にありそうなのに、色々検索しても良いサイトが見つからず、へこんでおります…。
どなたか、わかりやすく説明されているサイトをご存知であれば教えて頂きたいのです。

・コンボボックスで選択した時に、自動で隣にあるテキストボックスに該当のデータを出す。

ということをしたいのですが…。
具体的にいいますと、

コンボボックスにて、会社名を選択すると、隣のテキストボックスにその該当する会社のドメイン名を自動で表示させたいのです。


コンボボックス                テキストボックス
  会社名                     ドメイン名

   A社  →A社を選択すると、        A.co.jp ←自動でA社のドメイン表示
   B社  →B社を選択すると、        B.com ←自動でB社のドメイン表示
   C社
   ・
   ・
   ・

こんなカンジです。(尚、図の作成はMSPゴシックでの作成なのでその他のフォントだとずれると思います。すみません)

テーブルで会社名の一覧と、ドメインの一覧の二つを作って、うまく連動させれば出来そうな気がするのですが
その方法そのものがわからないために、良い説明のあるサイトがないか、朝から調べまくっています(@_@;)
色々自分でも勉強したいというのがあるので、もし上記のような事をやる方法について書いてあるようなサイトがありましたら、
ぜひ教えて頂けると幸いです。よろしくお願いします。

こんにちわ。現在仕事の関係でどうしても必要になり、Accessを初めて勉強している者です。
先日もAccess関連の質問をさせて頂きましたが(ご回答頂いた方ありがとうございました)、
また難問にぶつかってしまいました。

絶対にありそうなのに、色々検索しても良いサイトが見つからず、へこんでおります…。
どなたか、わかりやすく説明されているサイトをご存知であれば教えて頂きたいのです。

・コンボボックスで選択した時に、自動で隣にあるテキストボックスに該当のデータを出す。

ということをし...続きを読む

Aベストアンサー

>テーブルで会社名の一覧と、ドメインの一覧の二つを作って、うまく連動させれば出来そうな気がするのですが
勘違いでないためにも
テーブルはひとつで、フィールド 会社名  テキスト型
                ドメイン ハイパーリンク型
で準備しておきます。
色々と方法はありますが
​http://ag5.net/~nino/access-19.html​
こんな方法はいかがですか。

Q百田尚樹さんについて

百田尚樹さんはいろいろなジャンルの小説を書いていると聞きました
純文学の小説は書いてますか?

Aベストアンサー

純文学の定義はどんなものでしょうか?
文章で表現し、文章で読む人の感情を左右するのが文学であると
私は考えています。
文学には純文学、大衆文学という指向性はあるのでしょうが、明確な
線引きはないと思います。

百田尚樹さんの文章は全てが純文学に分類されてもいいし、大衆文学に
分類されてもいいものだと思います。

私は百田尚樹さんがラブアタックという番組に出ていたのをよく覚えています。
かぐや姫の前に5人の男性が争って告白をするというものでした。
体力、知力に優れる百田君は周囲のアタッカーに打ち勝ち、いつも最終的に
かぐや姫に告白する権利を得ていました。
しかし、若年より頭髪の薄かった百田君は、男性を容姿でしか判定しない
バカなかぐや姫にいつも拒絶されていました。

Qテキストボックスによりリストボックスの内容を変える

Accessのフォームで顧客管理画面を作成しています。

ボタン【日本】【アメリカ】【イギリス】を作成し、
それぞれのボタンをクリックすると、テキストボックス1が
【日本】【アメリカ】【イギリス】
と内容が変化するように作成しました。

また別に「新規登録」ボタンと「国名」コンボボックス1を配置しました。

テキストボックス1が”日本”の時に「新規登録」ボタンをクリックすると
コンボボックス1が”日本"と、
テキストボックス1が”アメリカ”の時に「新規登録」ボタンをクリックすると
コンボボックス1が”アメリカ"と表示されるようにしたいです。

どのようにコードを書けばいいでしょうか?

ちなみに新規登録のコードは以下です。

On Error GoTo Err_c新規登録_Click

DoCmd.GoToRecord , , acNewRec

Exit_c新規登録_Click:
Exit Sub

Err_c新規登録_Click:
MsgBox Err.Description
Resume Exit_c新規登録_Click

ご教授お願いいたします!

Accessのフォームで顧客管理画面を作成しています。

ボタン【日本】【アメリカ】【イギリス】を作成し、
それぞれのボタンをクリックすると、テキストボックス1が
【日本】【アメリカ】【イギリス】
と内容が変化するように作成しました。

また別に「新規登録」ボタンと「国名」コンボボックス1を配置しました。

テキストボックス1が”日本”の時に「新規登録」ボタンをクリックすると
コンボボックス1が”日本"と、
テキストボックス1が”アメリカ”の時に「新規登録」ボタンをクリックすると
コンボボックス1が”ア...続きを読む

Aベストアンサー

コンボボックスにどのようにデータが設定
してあるのか不明ですが、一応、コンボボックスの
「値集合タイプ」が「値リスト」、「値集合ソース」に
「"日本";"アメリカ";"イギリス"」のように設定
してあるものとします。このあたりが違っていたら
補足してください。


>DoCmd.GoToRecord , , acNewRec
があるのがよくわからないのですが・・・
フォームにレコードソースにテーブルが設定されているのですかね。

とりあえず、以下のように設定してみてください。




'これを変数の宣言に追加
Dim i As Long

On Error GoTo Err_c新規登録_Click
DoCmd.GoToRecord , , acNewRec

'##### ここから ####
For i = 0 To Me!コンボボックス1.ListCount - 1
  If Me!コンボボックス1.ItemData(i) = Me!テキストボックス1 Then
    Me!コンボボックス1.Value = Me!コンボボックス1.ItemData(i)
    Exit For
  End If
Next i
'##### ここまで追加 #####


Exit_c新規登録_Click:
Exit Sub

Err_c新規登録_Click:
MsgBox Err.Description
Resume Exit_c新規登録_Click



これは、テキストボックスのデータとコンボボックスに
設定してあるデータが同じならばそれを表示、コンボボックスの
データになければ何も表示しない、というようになっています。
たとえば、テキストボックス1に「カナダ」といれても何も表示されません。

コンボボックスにどのようにデータが設定
してあるのか不明ですが、一応、コンボボックスの
「値集合タイプ」が「値リスト」、「値集合ソース」に
「"日本";"アメリカ";"イギリス"」のように設定
してあるものとします。このあたりが違っていたら
補足してください。


>DoCmd.GoToRecord , , acNewRec
があるのがよくわからないのですが・・・
フォームにレコードソースにテーブルが設定されているのですかね。

とりあえず、以下のように設定してみてください。




'これを変数の宣言に追加
Dim i As Long

On...続きを読む

Q百田尚樹さんの小説について

百田尚樹さんの小説で一人称の小説はありますか?

Aベストアンサー

「風の中のマリア」(講談社文庫)は一人称です。

Q【ACCESS】リストボックスに抽出してからテキストボックスに代入するには?

ACCESS2003、初心者です。
医療事務のデータベースを作っています。

予約フォーム(frm予防接種予約)を作っていますが、次の(1),(2)の作業がうまくできなくて困っています。

(1)リストボックスへの抽出(検索ボタンを押すまではリストボックスの中は空の状態)

frm予防接種予約のフォームで非連結テキストボックスに生年月日を入力して、検索ボタンを押す

tbl患者個人票テーブルの生年月日と一致するレコード(氏名や住所)をリストボックスに表示させたい。


(2)表示されたリストボックスの中のレコードをクリックすると、そのレコードが氏名や住所に代入される。

一連の作業をfrm予防接種予約フォーム上で行いたいのですが、どのようにしたら良いのでしょうか?

Aベストアンサー

(1) は、リストボックスではなく、サブフォームを使ったほうが簡単かも。
 リストボックスの場合は、値集合ソースをSQL文で作成し、テキストボックスの
 更新後で、RowSource プロパティに代入し、Requery をかけてやればいいかと。
 VBA Or マクロが必要ですね。
 
(2) は、リストボックスを使うのなら、Column プロパティが使えると
 思います。
> そのレコードが氏名や住所に代入される。
 きちんと正規化されているのなら、氏名・住所等を代入する必要はないです。
 患者ID?のような値を入れてやれば、あとはクエリで対応できますので。
 

Q百田尚樹さんの小説について

百田尚樹さんの小説はどのジャンルになりますか?
エンタメ
大衆
文学

Aベストアンサー

自称はエンタメ作家なのですが、本人いわく「二度と同じジャンルの作品は書かない!」と言っている通り、戦争・恋愛・昆虫物・ボクシングなどなど幅広いジャンルの作品を排出しています。

よって、あえてジャンルを設けるのであれば「エンタメ・その他」になるでしょう。

QAccessで、コード実行中に、フォームのテキストボックスの値をデータソースとしたクエリーフィールドの値を取得したい

Accessにおいて、frmMENUというフォームを作成し、txtYearというテキストボックスを配置しました。"式1: [Forms]![frmMENU]![txtYear]"というフィールドを含むクエリーを作成しました。
フォームを起動し、txtYearに値を入れた後、そのクエリーを開くと、"式1"には正しく値が入っているのですが、コードの実行中(例えばボタンクリック処理の間など)にクエリを開くと何も入っていません。このとき、クエリーに対するSQL(select 式1 from クエリ1)を実行しようとすると「パラメータが少なすぎます。1を指定してください。」というエラーが発生してしまいます。コード実行中にクエリーから"式1"の値を取得することはできないのでしょうか?

Aベストアンサー

補足に対してアドバイスします。

>テキストボックスの値を一旦テーブルに書き込む処理を入れ、そのテーブルを参照するクエリーを作成して対処しようかと思い始めています。

テーブルに書きこまなくてもクエリの定義を直接変更することが出来ます。
CurrentDb.QueryDefs("クエリ名称").SQL プロパティーに直接SQLを設定してみてください。

QNHK経営委員の百田尚樹はサイコパスですか?

他人を平気で人間のクズと罵り、NHKの経営委員に居座る百田尚樹は、サイコパスとか反社会性パーソナリティー障害という病なんでしょうか?

以下、サイコパスの定義。
・良心の異常な欠如
・他者に対する冷淡さや共感のなさ
・慢性的に平然と嘘をつく
・行動に対する責任が全く取れない
・罪悪感が全く無い
・過大な自尊心で自己中心的
・口の達者さと表面的な魅力

Aベストアンサー

まぁ、さすがにサイコパス程では無いかも知れませんが
あの人、若い頃、『ラブアタック!』でみじめアタッカーの常連だったそうですから
コンプレックスをバネに頑張って成功を収めた者にありがちな
傲慢さはあるかも知れませんね。
そう言えば、ヒットラーも若い頃、売れない画家だったでしょう。
そのパターンじゃないですか。
となると、末路は見えてますね。

Qエクセルでテキストファイルからフォームのテキストボックスにテキスト挿入するマクロ

マクロでフォームのテキストボックスに直接テキストファイルからテキストを挿入したいのですが出来ますか?
opentextでエクセルシートに入れてからフォームにコピーすることはできたのですが、それだと重くなってしまうので直接取り込みたいんですがうまくいきません。
VBやJAVAのreadlineのようなものは使えないんでしょうか。

Aベストアンサー

>VBやJAVAのreadlineのようなものは使えないんでしょうか。

LineInput がありますよ。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_030.html
http://rd.search.goo.ne.jp/click?DEST=http%3A%2F%2Fofficetanaka.net%2Fexcel%2Fvba%2Fstatement%2FLineInput.htm&no=2


人気Q&Aランキング

おすすめ情報