Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2158 / 2272 ツリー ←次へ | 前へ→

【3670】SQL文の内容を変数に・・・ 初心者 04/10/10(日) 21:27 質問[未読]
【3671】Re:SQL文の内容を変数に・・・ こもれび 04/10/10(日) 22:30 回答[未読]
【3674】Re:SQL文の内容を変数に・・・ 初心者 04/10/11(月) 21:44 質問[未読]
【3675】Re:SQL文の内容を変数に・・・ 初心者 04/10/11(月) 21:52 お礼[未読]
【3672】Re:SQL文の内容を変数に・・・ Gin_II 04/10/11(月) 0:33 回答[未読]
【3673】Re:SQL文の内容を変数に・・・ 初心者 04/10/11(月) 21:16 お礼[未読]

【3670】SQL文の内容を変数に・・・
質問  初心者  - 04/10/10(日) 21:27 -

引用なし
パスワード
   SQLのSELECT文の結果を、VBAの変数の中に入れる方法がわかりません。
(実際、テーブルの内容を操作する(insertinto文などで)方法はわかるのですが・・・)
こちら初心者ですので、上記質問が可能かもわかりません。
可能であれば、ぜひ教えていただきたいです。
宜しくお願いします。

【3671】Re:SQL文の内容を変数に・・・
回答  こもれび  - 04/10/10(日) 22:30 -

引用なし
パスワード
   こもれびです

SELECT文の結果とはレコードセットをさしているのでしょうか?

例)

Dim cnn as New ADODB.Connection
Dim rs as New ADODB.Recordset
Dim mySQL as String

Dim HENSU as String ' <--- 結果を入れる変数

  Set cnn = currentproject.connection

  mySQL = "select tblSample.shimei,tblSample.b,tblSample.c " _
     & "from tblSample " _
     & "where ((tblSample.age) = 30);"

  rs.open mySQL,cnn,adOpenkeyset,adLockReadonly

  HENSU = rs!shimei ' 若しくは HENSU = rs.fields("shimei").value
  
  rs.close : Set rs = Nothing
  cnn.close : Set cnn =Nothing

上の例では名簿(を想定)のテーブルから年齢が30歳の方を選択
(30歳の方が1名しか居ないということを想定)し、その方の名前
(テーブルのフィールド名:shimei)を変数:HENSUに入れています。
レコードが複数になるときは Do until 〜 loop を用いて配列に
入れることもできます。

こんなところでしょうか。

▼初心者 さん:
>SQLのSELECT文の結果を、VBAの変数の中に入れる方法がわかりません。
>(実際、テーブルの内容を操作する(insertinto文などで)方法はわかるのですが・・・)
>こちら初心者ですので、上記質問が可能かもわかりません。
>可能であれば、ぜひ教えていただきたいです。
>宜しくお願いします。

【3672】Re:SQL文の内容を変数に・・・
回答  Gin_II  - 04/10/11(月) 0:33 -

引用なし
パスワード
   >SQLのSELECT文の結果を、VBAの変数の中に入れる方法がわかりません。

GetRows メソッドとかかな?

【3673】Re:SQL文の内容を変数に・・・
お礼  初心者  - 04/10/11(月) 21:16 -

引用なし
パスワード
   こもれびさん、Gin_IIさん
ありがとうございました。
今回、こもれびさんの方法でやったところ、目的通りの事が出来ました。
本当にありがとうございました。 

【3674】Re:SQL文の内容を変数に・・・
質問  初心者  - 04/10/11(月) 21:44 -

引用なし
パスワード
   お礼を入れたのに、質問がありました。

>レコードが複数になるときは Do until 〜 loop を用いて配列に
>入れることもできます。
とありましたが、どこにDo until 〜 loop を入れればいいのでしょうか?
私は、下記(こもれびさんの返信を引用させて頂きました)の場所に、入れてみましたが、一件目のデータが繰り返し表示されました。
申し訳ありませんが、教えていただけると助かります。
宜しくお願いいたします。


Dim cnn as New ADODB.Connection
Dim rs as New ADODB.Recordset
Dim mySQL as String

Dim HENSU as String ' <--- 結果を入れる変数

  Set cnn = currentproject.connection

  mySQL = "select tblSample.shimei,tblSample.b,tblSample.c " _
     & "from tblSample " _
    & "where ((tblSample.age) = 30);"

  rs.open mySQL,cnn,adOpenkeyset,adLockReadonly

do until条件

  HENSU = rs!shimei ' 若しくは HENSU = rs.fields("shimei").value

loop  
  rs.close : Set rs = Nothing
  cnn.close : Set cnn =Nothing


▼こもれび さん:
>こもれびです
>
>SELECT文の結果とはレコードセットをさしているのでしょうか?
>
>例)
>
>Dim cnn as New ADODB.Connection
>Dim rs as New ADODB.Recordset
>Dim mySQL as String
>
>Dim HENSU as String ' <--- 結果を入れる変数
>
>  Set cnn = currentproject.connection
>
>  mySQL = "select tblSample.shimei,tblSample.b,tblSample.c " _
>     & "from tblSample " _
>     & "where ((tblSample.age) = 30);"
>
>  rs.open mySQL,cnn,adOpenkeyset,adLockReadonly
>
>  HENSU = rs!shimei ' 若しくは HENSU = rs.fields("shimei").value
>  
>  rs.close : Set rs = Nothing
>  cnn.close : Set cnn =Nothing
>
>上の例では名簿(を想定)のテーブルから年齢が30歳の方を選択
>(30歳の方が1名しか居ないということを想定)し、その方の名前
>(テーブルのフィールド名:shimei)を変数:HENSUに入れています。
>レコードが複数になるときは Do until 〜 loop を用いて配列に
>入れることもできます。
>
>こんなところでしょうか。

【3675】Re:SQL文の内容を変数に・・・
お礼  初心者  - 04/10/11(月) 21:52 -

引用なし
パスワード
   すいません。
rs.MoveNextを使い、解決できました。
ありがとうございました。
また質問の際は、宜しくお願いいたします。

▼こもれび さん:
>こもれびです
>
>SELECT文の結果とはレコードセットをさしているのでしょうか?
>
>例)
>
>Dim cnn as New ADODB.Connection
>Dim rs as New ADODB.Recordset
>Dim mySQL as String
>
>Dim HENSU as String ' <--- 結果を入れる変数
>
>  Set cnn = currentproject.connection
>
>  mySQL = "select tblSample.shimei,tblSample.b,tblSample.c " _
>     & "from tblSample " _
>     & "where ((tblSample.age) = 30);"
>
>  rs.open mySQL,cnn,adOpenkeyset,adLockReadonly
>
>  HENSU = rs!shimei ' 若しくは HENSU = rs.fields("shimei").value
>  
>  rs.close : Set rs = Nothing
>  cnn.close : Set cnn =Nothing
>
>上の例では名簿(を想定)のテーブルから年齢が30歳の方を選択
>(30歳の方が1名しか居ないということを想定)し、その方の名前
>(テーブルのフィールド名:shimei)を変数:HENSUに入れています。
>レコードが複数になるときは Do until 〜 loop を用いて配列に
>入れることもできます。
>
>こんなところでしょうか。
>
>▼初心者 さん:
>>SQLのSELECT文の結果を、VBAの変数の中に入れる方法がわかりません。
>>(実際、テーブルの内容を操作する(insertinto文などで)方法はわかるのですが・・・)
>>こちら初心者ですので、上記質問が可能かもわかりません。
>>可能であれば、ぜひ教えていただきたいです。
>>宜しくお願いします。

2158 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078299
(SS)C-BOARD v3.8 is Free