みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access クエリでレコードセット作成

Access2010でVBAを勉強しています。クエリオブジェクトからレコードセットを作れるかお教えください。

クエリのデザイン作成で3つのテーブルからデータを抽出するクエリを作りました。

このクエリオブジェクトからレコードセットを作りたいと思っていますが、作り方がわかりません。

よってクエリオブジェクトのSQLビューでSQLを確認し、VBAの中で下記のようにSQLを作ってレコードセットを作っています。

これだと効率が悪いので、クエリオブジェクトから直接レコードセットがつくれないかと思っています。

方法がありましたらお教え下さい。よろしくお願いします。

strSQL = "SELECT master.[サイズ], master.単価,"
strSQL = strSQL & "Nz([入庫数量の合計])-Nz([出庫数量の合計]) AS 在庫数"
strSQL = strSQL & " FROM (master LEFT JOIN Q_出庫 ON master.[サイズ] = Q_出庫.[サイズ])"
strSQL = strSQL & " LEFT JOIN Q_入庫 ON master.[サイズ] = Q_入庫.[サイズ]"

objADORS.Open "T_出庫", objADOCON, adOpenDynamic, adLockOptimistic

投稿日時 - 2012-01-04 23:25:29

QNo.7225682

暇なときに回答ください

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

デザインビューでクエリを作成して、それをレコードセットとして開いてデータ操作したいということですね。

DAOのOpenRecordsetメソッド、あるいは、ADOのOpenメソッドの Source引数には直接クエリ名を指定できます。

例示されたコードなら、

objADORS.Open "クエリ1", objADOCON, adOpenDynamic, adLockOptimistic

とするだけです。

ただし、パラメータクエリの場合は上記のコードでは開けません。
DAOの場合のコード例を出しておきますので、ご参考に。

Dim qd As DAO.QueryDef
Dim rs As DAO.Recordset

Set qd = CurrentDB.QueryDefs("クエリ1")

qd.Parameters("日付を入力してください") = #20112/01/05#
Set rs = qd.OpenRecordset

日付型フィールドの抽出条件に [日付を入力してください] というパラメータが設定してある場合の例です。

投稿日時 - 2012-01-05 04:26:11

お礼

ご回答ありがとうございます!感謝です!

投稿日時 - 2012-01-15 11:31:12

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

まず、あなたが言う所の「クエリオブジェクト」とは? 30字以内で説明せよ。

http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%80%80%E3%82%AF%E3%82%A8%E3%83%AA%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%A8%E3%81%AF

まあ、こんな所か。これを一般的なDB用語で言う所のビューに似ている物。これをスクリプト言語のそれぞれの言い方、扱い方で言う所の、オブジェクト型になる。

一方、「レコードセット」とは? 30字以内で説明せよ。

まあ、マニュアルや、ヘルプ、参考書を買って、まず勉強しませんか? それから話を進めましょう。

いずれにせよ、

http://msdn.microsoft.com/ja-jp/library/ff604969.aspx

http://msdn.microsoft.com/ja-jp/library/ff965871.aspx#DataProgrammingWithAccess2010_Overview

にあるように、ACEエンジンにあくせする方法はいくつか用意されていて、それをまず選択する必要がある。

「objADORS.」なんて名前をつけているが、その宣言部分をわざと隠しているのか、サンプルを記載しているだけのように見える。参考書から引っ張り出してきたとも考えられる。

名前から推測するに、ADOでのアクセスになるのでしょう。VBAではないですよね。

基本的なことは上記URLと

http://www.accessclub.jp/dao/index.html

にある。それ見て、分からないのなら、町のパソコン教室や、企業向けの各種学校でMS-Office講座にいって、ならってもらうしかない。

投稿日時 - 2012-01-05 00:32:58

お礼

ご回答ありがとうございます!感謝です!

投稿日時 - 2012-01-15 11:31:17

あなたにオススメの質問