パラメータが少なすぎます。3を指定してください。

このQ&Aのポイント
  • Access2000で検索フォームを作成し、指定した範囲のレコードを抽出する方法を知りたいです。
  • フォームには、下限と上限のテキストボックスがあり、数値型の入力を受け付けます。
  • 条件には複数のデータ型を含めることがあり、それらのAND検索を行いたいです。具体的な方法を教えてください。
回答を見る
  • ベストアンサー

「パラメータが少なすぎます。3を指定してください。」って???

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検索を行うため、 上のようなものにしたいと考えています。 一体どうすれば、動くようになるのでしょうか? よろしくお願いします。

  • MOME
  • お礼率100% (3/3)

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

  • ベストアンサー
回答No.1

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

MOME
質問者

お礼

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

関連するQ&A

  • アクセス2000で複数条件での検索

    アクセス2000で、試験結果の管理をしようと思っています。 試験によって合格点が違うので、合否結果はフラグ(1=合格、2=不合格)で管理しています。 フォームにボタンを作って、ボタンをクリックしたら合格者(あるいは不合格者) だけを表示する形にしたのですが、受験日と合否のフラグの両方を条件として、 データの抽出を行いたいのですが、ボタンのコードビルダはどのようにしたら良いのでしょうか?ちなみに、ボタンを作った時の関連付けは受験日となっているのでコードは下記のようになっています。 Private Sub 抽出採用日_Click() On Error GoTo Err_抽出採用日_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "対象者" stLinkCriteria = "[受験日]=" & "#" & Me![受験日] & "#" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出採用日_Click: Exit Sub Err_抽出採用日_Click: MsgBox Err.Description Resume Exit_抽出採用日_Click End Sub

  • Access2000での複合条件検索

    前にも一回質問したんですが、どうしてもうまくいかないので、もう一回質問させていただきます。(すいません) Access2000での複合条件検索のコードビルダがうまくないようで、正しく動きません。 試験結果の集計なのですが、抽出するためのキーは「面接日」と「判定結果」です。 クエリには「面接日」と「総合判定コード」があります。 フォームには「試験日」と「判定結果」というテキストボックスがあります。 テキストボックスの「試験日」には日付、「判定結果」には1(=合格)か3(=不合格)を入れて抽出ボタンをクリックするのですが、構文エラーになります。 どこを、どう直したらいいのでしょうか? Private Sub 抽出ボタン_Click() On Error GoTo Err_抽出ボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "印刷対象者フォーム" stLinkCriteria = "[面接日]=" & "#" & Format$(Me![試験日], "yyyy/mm/dd") & "#And[総合判定コード]=" & Me![判定結果] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出ボタン_Click: Exit Sub Err_抽出ボタン_Click: MsgBox Err.Description Resume Exit_抽出ボタン_Click End Sub

  • Access フォームで検索した結果をフォームで表示するときにあいまい検索をしたい

    Access2003を使用して、検索フォームをつくり、検索結果を別フォームへ表示させるプログラムを組みました。 その際に、かな検索をするとかなが完全一致でないと検索されません。 あいまい検索にてかな検索をする方法はありませんでしょうか? ソースは以下の通りです。 Private Sub cmdSearch_Click() On Error GoTo Err_cmdSearch_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(70) & ChrW(95) stLinkCriteria = "[カナ氏名]=" & "'" & Me![カナ氏名] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_cmdSearch_Click: Exit Sub Err_cmdSearch_Click: MsgBox Err.Description Resume Exit_cmdSearch_Click End Sub

  • アクセスのイベント記述について。

    あるフォーム(患者IDで検索した結果を表示した表形式のフォーム)でコマンド30をクリックしたら、別の入力画面が開くように設定したのですが、患者IDのみ一致したフォームが開くようにはなったのですが、これプラス、依頼日も一致したフォームが開くようにしたいです。以下の記述に変更を加えるとしたら、どのようにしたらよいのでしょうか?よろしくお願いいたします。 Private Sub コマンド30_Click() On Error GoTo Err_コマンド30_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = ChrW(81) & ChrW(58) & ChrW(26908) & ChrW(20307) & ChrW(21029) & ChrW(20837) & ChrW(21147) & ChrW(-238) stLinkCriteria = "[患者ID]=" & Me![患者ID] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_コマンド30_Click: Exit Sub Err_コマンド30_Click: MsgBox Err.Description Resume Exit_コマンド30_Click End Sub

  • アクセスのイベント記述について。

    アクセスのあるフォームA上にある詳細ボタンをクリックすると別のフォームCが開くようにしてあるのですが、クリックすると同時にAフォームを閉じるにはどのように記述したらよいでしょうか? 詳細ボタンの記述は下記のとおりです。よろしくお願いいたします。 Private Sub 詳細_Click() On Error GoTo Err_詳細_Click Dim stDocName As String Dim stLinkCriteria As String DoCmd.Close stDocName = ChrW(12513) & ChrW(12531) & ChrW(12486) & ChrW(12490) & ChrW(12531) & ChrW(12473) stLinkCriteria = "[管理番号]=" & Me![管理番号] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_詳細_Click: Exit Sub Err_詳細_Click: MsgBox Err.Description Resume Exit_詳細_Click End Sub

  • Access2000での複合検索について

    「体力テスト結果・年齢・性別」というテーブルを元にしたフォームがあり、そこには、老若男女全てのデータがあります。 このフォームを元に、男女別、年齢別の検索フォームを作ろうとしています。 例えば、20歳から30歳までの男性のデータ 41歳から43歳までの女性のデータ というふう検索したい。 現在、下記のような形で、年齢別については、うまくできたのですが、男女別がうまくいきません。 どうすればよいか、ご教示願えないでしょうか? 男女別のデータ型は、Yes/No型(Boolean型)で、 フォーム上では、男性に、チェックマークが入る形に なっています。 また、検索フォーム上では、オプショングループ(二者択一のラジオボタン)でできれば、と思っています。 よろしくお願いします。 Private Sub 検索実行_Click() On Error GoTo Err_検索実行_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "体力テスト結果・年齢・性別" stLinkCriteria = "[年齢] Between " & Me![開始年齢] & " And " & Me![最高年齢] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_検索実行_Click: Exit Sub Err_検索実行_Click: MsgBox Err.Description Resume Exit_検索実行_Click End Sub

  • アクセスVBAのエラーについて

    フォームを閉じるためにフォームにボタンを置いて、イベントプロシージャに下記のように書き込みました。すると添付画像のエラーが返ってきてマクロが動きません。 Private Sub コマンド103_Click() On Error GoTo Err_コマンド103_Click DoCmd.Close Exit_コマンド103_Click: Exit Sub Err_コマンド103_Click: MsgBox Err.Description Resume Exit_コマンド103_Click End Sub で、「ファイル-オプション-現在のデータベース」の”フォームの表示”を問題のフォームに切り替えたら問題なく動作します。 つまり”フォームの表示”で選んだフォームでしかコマンドボタンのマクロが動きません。全てのフォームでマクロが動くにはどうしたらよいのでしょうか?

  • Access2000でリスト指定の印刷

    現在Access2000で顧客管理のデータベースを作成しています。 指定したレコードだけを印刷する、指定レコード印刷フォームを作成しようと思い、フォームにリストボックスを貼り付け、そのフォームに印刷ボタンを作成しました。 その、印刷ボタンのプロパティ(クリック時)のイベント設定は、次のように設定したのですが、うまく動きません。 Private Sub 印刷ボタン_Click() On Error GoTo Err_印刷ボタン_Click Dim stDocName As String Me.Visible = False stDocName = "kokyaku_report" DoCmd.OpenReport stDocName, acNormal, , "id = " & id Exit_印刷ボタン_Click: Exit Sub Err_印刷ボタン_Click: MsgBox Err.Description Resume Exit_印刷ボタン_Click End Sub ちなみに、テーブルの主キーは「id」としております。 申し訳ありませんが、お分かりの方がいらっしゃったら宜しくお願い致します。

  • Accessでの VBのコーディングを教えて下さい。

    今回、初めてAccessで「顧客管理」を作成しています。 1対多のテーブルで、フォームを作成して、 サブフォームに表示されている多側のテーブルのレコードを、1レコードづつフォームで開きたいのですが、 今のコーディング(下記に表示)では、 既存のレコードしか開けません。 これに、新規のフォームを開いてレコードの追加も行いたいので、良かったらどなたかコーディングを教えて頂けませんでしょうか?宜しくお願いします。 Private Sub 売上メインボタン_Click() On Error GoTo Err_売上メインボタン_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "売上登録メインフォーム" stLinkCriteria = "[売上キー]=" & Me![売上キー] DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_売上メインボタン_Click: Exit Sub Err_売上メインボタン_Click: MsgBox Err.Description Resume Exit_売上メインボタン_Click End Sub

  • アクセス2000でのボタンのコードビルダ

    アクセス2000で、採用者のデータを管理しようと思っています。 フォームにボタンを作って、ボタンをクリックしたら条件を満たした者だけを表示する形にしたいのですが、「役職」(コード番号)と「所属」(コード番号)と「採用日」の3つを条件として、データの抽出を行いたいのですが、ボタンのコードビルダはどのようにしたら良いのでしょうか? ちなみに、ボタンの名前は「抽出採用日」でコードは下記のようになっています。 「役職」=13002「所属」=9999「採用日」=2001/04/01で検索したら、「クエリ式'[採用日[=#2001/04/01#AND[所属]='9999'#AND[役職]='13002'の日付の構文エラーです。」となります。 実際は、"&" や "#" の意味も良く分からないので、構文がどこで区切れるのかも分からない状態です。 どなたか、お教え下さい。 Private Sub 抽出採用日_Click() On Error GoTo Err_抽出採用日_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "印刷対象者フォーム" stLinkCriteria = "[採用日]=" & "#" & Format$(Me![採用予定日], "yyyy/mm/dd") & "#AND[所属]=" & "'" & Me![所属] & "'" & "#AND[役職]=" & "'" & Me![役職] & "'" 'stLinkCriteria = "[採用日]=" & "#" & Format$(Me![採用予定日], "yyyy/mm/dd") & "#AND[所属]=" & "'" & Me![所属] & "'" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_抽出採用日_Click: Exit Sub Err_抽出採用日_Click: MsgBox Err.Description Resume Exit_抽出採用日_Click End Sub

専門家に質問してみよう