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

Access2000で検索フォームを作っています。
フォームには、「下限」、「上限」と名前をつけたテキストボックスを2つ配置、
どちらも書式は数値型にしています。
このテキストボックスに入力した数字の範囲のレコードを抽出し、
結果を別のフォーム(「結果」)に出したいと考えてます。
そのため、以下のようなコードを書きました。

Private Sub 抽出_click()
On Error GoTo err_抽出_click
Set db = CurrentDb
Set rs = db.OpenRecordset("対象年齢", dbOpenDynaset)

rs.Filter = "対象年齢ID Between Me!下限 And Me!上限"
Set rs = rs.OpenRecordset

DoCmd.OpenForm "結果", , , , acFormReadOnly

rs.Close

exit_抽出_click:
Exit Sub

err_抽出_click:
MsgBox Err.Description
Resume exit_抽出_click

End Sub

「結果」フォームは対象年齢テーブルを基にしています。
これを実行すると、「パラメータが少なすぎます。3を指定してください。」という
メッセージが出てしまうのですが、

Private Sub 抽出_click()
On Error GoTo err_抽出_click

DoCmd.OpenForm "結果", , , "[対象年齢ID] Between [Forms]![検索]![下限] And [Forms]![検索]![上限]", acFormReadOnly

exit_抽出_click:
Exit Sub

err_抽出_click:
MsgBox Err.Description
Resume exit_抽出_click

End Sub

だと実行できます。
条件がこれ1つならば、下を使うのですが、
実際には、データ型の異なる複数の条件のAND検索を行うため、
上のようなものにしたいと考えています。
一体どうすれば、動くようになるのでしょうか?
よろしくお願いします。

A 回答 (1件)

Filterの値が"対象年齢ID Between Me!下限 And Me!上限" だと


対象年齢ID が'Me!下限'と'Me!上限'という文字列の間となってしまいます。
Filterの値を"対象年齢ID Between " & Me!下限 & " And " & Me!上限
としたらどうでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます!
無事に動きました。
VBAの基本的なことも分からず、プログラムを組むことになってしまい、
右往左往しているところです。
また、なにかありましたら、よろしくお願いします。

お礼日時:2001/12/16 02:47

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A