• ベストアンサー

アクセス2000VBA ADO パラメータクエリについて

アクセス2000VBA ADO パラメータクエリについて フォーム1で得たデータをモジュールで定義した[hensu](String)に代入して、クエリ1(選択クエリ)の抽出条件として[hensu]を使用して、それによって得たデータをフォーム1で使用したいです。 フォーム1で[hensu]をパラメータクエリ?として定義するような文章(プログラム)が必要なだと思いますが、その例文(プログラム)を教えてください。 シロウト用に分かりやすくお願いします。

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

  • ベストアンサー
  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

参考) 「フォームで入力した値をクエリの抽出条件にする」 こういう仕組みはあります。頻度の高いテクニックの一つです。 掲示板でなくネットで探してみるとたぶん事例はあります。 フォームの値をどう表現したらいいのか、はビルドを使って記載します。 1) クエリデザインの抽出条件欄で like forms![フォーム名].[・・・] ・・・・・・・・・ と書く方法あります。 2) モジュールでの記載でも同じく hensuu = forms![フォーム名].[・・・] ・・・・・・・・・ sqlstring="select * from ・・・・ where " & hensuu モジュール内でフォームの値をどう表現するか、で やり方が見えてきます。 3) テーブル作成クエリ等使って、 テーブルを一つ用意して、項目「hensuu」に保持。 目視できる状態で値を保持することもできます。 これは使う人は少ないかも。 フォームの値をどうするか、というのは 1)2)3)、と思いつくだけでいろいろ使いたい場面があります。

zoro180
質問者

お礼

1)の[ ]内は、テキストボックス名ですよね、2)はクエリ1を使用しないような・・・ 質問のし方が悪くて申し訳ありません。 ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

VBAを使いADOでレコード抜き出し処理をするなら、あえてパラメータクエリといわなくても良いと思う。 (注) フォームのテキストボックスで入力された値をボタンのクリックイベントで受け取って(hensu=Me.Textbox1.Textで当然変数に受け取れる)その変数の値を使ってSQL文を(文字列)をつくり、Executeすることで、結果が得られる(通常複数レコード)その結果を、フォーム1のコントロールに表示する。 >シロウト用に分かりやすくお願いします。 >文章(プログラム)が必要なだと思いますが アクセスやアクセスVBAやADOなどになると、じっくり勉強しないと回答をもらっても、回答で言っていることが、判らないことが考えられる。そういう段階はこのコーナーで質問をするレベルではないと考えて、まず足元を固め、質問の言及範囲を狭くして質問することだ。 変に「パラメータクエリで」、や、「かれこれのやり方で」と決めず、回答を期待するのが良いと思う。 例 フォーム1にテキストボックスを設ける方法(これはD&Dの方法で良いのでしょうね) それへ入力された値を変数にセットする方法 こういう風に質問者が判りやすいように分解して聞く方法を身につけることが先決。 ーー 注)http://www.accessclub.jp/sql/25.html ほか にあるように「SQL パラメータ」で検索すると、そのものの解説が出るが、質問者のレベルから、そちらを言う必要は無かろう。 参考コード 社員3というアクセスのテーブルがあり、氏名には漢字の「氏名」フィールドがあり、「住所」というフィールドもあり、山田三郎が複数出てくる場合の例 Sub test18() Dim objADOCON As ADODB.Connection Dim objADORS As ADODB.Recordset hensu = "山田 三郎" Set objADOCON = Application.CurrentProject.Connection Set objADORS = objADOCON.Execute("SELECT * FROM 社員3 WHERE 氏名 = '" & hensu & "'") objADORS.MoveFirst Do Until objADORS.EOF = True MsgBox objADORS.Fields("住所") objADORS.MoveNext Loop objADORS.Close objADOCON.Close Set objADORS = Nothing Set objADOCON = Nothing End Sub

zoro180
質問者

お礼

今回は、フォーム内で hensu=rst!~ として、そのhensuをクエリ1の抽出条件として使用したかったです。(パラメータクエリという言葉が間違っていたのか?)rst!~をテキストボックスに代入して抽出条件にする方法は知っているのですが、ステップアップとして上記の方法を学びたかったのです。 ありがとうございました。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

>フォーム1で得たデータ というのが単なるテキストボックスでの入力をさしているのかどうか分かりませんが、 こういう事がなさりたいのでしょうか?外していたらすみません。 http://www.mahoutsukaino.com/ac/ac2000/ac2000/kensakua/kensaku01.htm 一冊書籍を購入される事をお勧めします。 リンク先の作者の著書で、自分は万年初心者をぬけだしました。

zoro180
質問者

お礼

そのサイトは以前に教えて頂いて閲覧しましたが、今回の事の関しては無かったと思います。 質問が分かりづらくて申し訳ありません。 ありがとうございました。

関連するQ&A