【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

おせわになっております。

VBでデータベースを作っているのですが、
コンボボックスでの検索での絞込みがうまくいきません。
(データベースはAccess2000)

例えば、コンボボックス1で選ばれたファールドにより
絞込みが行われ(例:県選択:千葉県)
、コンボボックス2で表示するレコードは
コンボボックス1で選択されたレコードに該当するものしか表示しないようにするというとです。(例:市選択:市川市.船橋市.浦安市・・・と絞り込まれる)

どこかおかしい個所はありますでしょうか??
(個人的にはdbc1が選択された時点でdbc2のクエリーが行われなければならないと思いますが、やり方がわかりません。
よろしくお願い致します。

adoデータコントロールのプロパティ
ado1(県名選択)
RecordSource:SELECT 県名 FROM 地名
ado2(市名選択)
RecordSource:SELECT 市名 FROM 地名 WHERE 県名='dbc1.Text'

Private Sub dbc1_Click(Area As Integer)'県を選択するコンボボックス
Dim criteria As String ' 検索条件

If dbc1.Text = "" Then
Exit Sub
End If

criteria = "県名 = '" & dbc1.SelText & "'"

rs.MoveFirst
rs.Find criteria, , adSearchForward


End Sub


Private Sub dbc2_Click(Area As Integer)'市を選択するためのコンボボックス
Dim criteria2 As String ' 検索条件

If dbc2.Text = "" Then
Exit Sub
End If

criteria2 = "メーカ = '" & dbc2.SelText & "'"

rs.MoveFirst
rs.Find criteria2, , adSearchForward

End Sub

A 回答 (6件)

ちゃんと確認しないで回答しててすみませんでした(汗



dbc1_Clickプロシジャ内のrs検索後に下記をやってみて下さい

criteria = "SELECT 市名 FROM 地名 WHERE 県名='" & Trim(dbc1.Text) & "'"

ado2.RecordSource = criteria

ado2.Refresh

ではでは

この回答への補足

akiaki2様

度々のご回答ありがとうございます。

コンボボックスの連動できました!!
ありがとうございます!!
しかし、Textにそのレコードの別のフィールドを
表示するようになっているのですが、その値が連動しません。

度々申し訳ありませんが、どうすればよろしいのでしょうか??

よろしくお願い致します。

補足日時:2005/03/17 19:02
    • good
    • 0

>しかし、Textにそのレコードの別のフィールドを


>表示するようになっているのですが、その値が連動しません。

Textというのはdbc2.Textのことでしょうか。
ado2にはRecordSourceで市名だけしかSELECTしてませんので、他のフィールドは出せません。

ado2のRecordSourceで必要なフィールドをSELECTしてあげればなんとかなると思います。

この回答への補足

akiaki2様
ご返事おそくなり、大変申し訳ございません。

textの内容ですが、別のフィールドを別の
textに表示させるようにしています。

コンボボックスの内容と連動して、
このtextも更新するようにしたいのですが、
どうすればよろしいでしょうか?

お手数かけまして、申し訳ございませんが、
よろしくお願いいたします。

補足日時:2005/03/28 22:39
    • good
    • 0
この回答へのお礼

おかげさまでできました。
ありがとうございました!!

お礼日時:2005/04/09 17:53

すみません、No3です。


回答はAccessの場合でした、はやとちりでごめんなさい(恥

ado2.Refresh
でどうでしょうか。

この回答への補足

akiaki2様、ありがとうございます。

試してみたのですが、2番目のコンボボックスには
何もでてきませんでした。

どこか他に疑わしき個所はありますでしょうか?

申し訳ございませんが、よろしくお願い致します。

補足日時:2005/03/16 15:34
    • good
    • 0

dbc1_Clickのイベントの中に



dbc2.Requery

と入れてみて下さい。

dbc1をクリックしたら、dbc2のレコードソースを取得しなおすという動作になります。
    • good
    • 0

手元に検証環境が無いため、参考になりそうなURLを


提示させていただきました。参考となれば幸いです。

参考URL:http://homepage1.nifty.com/MADIA/vb/vb_bbs2/2004 …

この回答への補足

zgmfx10a様ご回答ありがとうございます。

akiaki2様のご回答で解決することができました。

ありがとうございました。

補足日時:2005/03/17 19:07
    • good
    • 0

RecordSource:SELECT 市名 FROM 地名 WHERE 県名='dbc1.Text'



において、dbc1.Textの初期設定値(空白?)が使用
される可能性があると思われます。

criteria2 = "メーカ = '" & dbc2.SelText & "'"

のcriteria2変数の定義で、同じに「県名=dbc1.Text」
相当も定義してみてはいかがでしょうか?

この回答への補足

zgmfx10a様、早速のご回答ありがとうございます。

criteria2 = "メーカ の部分は
criteria2 = "市名 の間違いです。失礼しました。

criteria2変数の定義はどういった形でやればよろしいでしょうか?

条件で、&等を使うのでしょうか?

お手数かけますが、よろしくお願い致します。

補足日時:2005/03/16 00:56
    • good
    • 0

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


おすすめ情報