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検索を行うため、
上のようなものにしたいと考えています。
一体どうすれば、動くようになるのでしょうか?
よろしくお願いします。
Filterの値が"対象年齢ID Between Me!下限 And Me!上限" だと
対象年齢ID が'Me!下限'と'Me!上限'という文字列の間となってしまいます。
Filterの値を"対象年齢ID Between " & Me!下限 & " And " & Me!上限
としたらどうでしょうか?
お礼
ありがとうございます! 無事に動きました。 VBAの基本的なことも分からず、プログラムを組むことになってしまい、 右往左往しているところです。 また、なにかありましたら、よろしくお願いします。