Access VBA質問箱 IV

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

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


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

【9195】VBAによるADO接続 イチコ 07/3/16(金) 16:55 質問[未読]
【9197】Re:VBAによるADO接続 まさ7251 07/3/16(金) 17:27 発言[未読]
【9199】Re:VBAによるADO接続 イチコ 07/3/16(金) 17:47 発言[未読]
【9204】Re:VBAによるADO接続 まさ7251 07/3/16(金) 22:25 発言[未読]
【9214】Re:VBAによるADO接続 イチコ 07/3/22(木) 18:38 お礼[未読]

【9195】VBAによるADO接続
質問  イチコ  - 07/3/16(金) 16:55 -

引用なし
パスワード
   始めまして、イチコと申します。
OS:XP
Access2003
Excel2003
Visual Studio 6.0

この環境でエクセルファイルのある数字(ID番号)をキーにして
アクセスのデータをごっそりエクセルにインポートしたいと考えております。

しかし、アクセスDBにつなぐADO接続が上手くいきません。
以下に、参考サイトを見て書いたコードを貼ります。
どなたか問題点がわかる方、ご教授下さい。
(アクセスに関しては全くの初心者です。)

Sub MakeDB()
  Dim cnn As New ADODB.Connection
  Dim rst As New ADODB.Recordset
  Dim dbName As String
  Dim dbPath As String
  
  '対象のファイル名を設定する
  dbName = "ファイル名.mdb"
  'MDBのPathを設定する
  dbPath = "C:\"
  
  'MDBと接続
  cnn.Open "Provider = Microsoft.Jet.OLEDB.4.0;DataSource =" & dbPath & dbName & ";"

  'レコードセットを開く。
   cnn.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
  'ここでSQL文を作成し、エクセルから得たIDをwhere句に指定してデータを得たい
  
  rst.Close
  cnn.Close
  Set cnn = Nothing
  Set rst = Nothing
  
End Sub

よろしくお願いします。

【9197】Re:VBAによるADO接続
発言  まさ7251  - 07/3/16(金) 17:27 -

引用なし
パスワード
   >しかし、アクセスDBにつなぐADO接続が上手くいきません。
>以下に、参考サイトを見て書いたコードを貼ります。
>どなたか問題点がわかる方、ご教授下さい。
>(アクセスに関しては全くの初心者です。)
  
どこに書いたのでしょうか。
Excelですか?VB上ですか?

どのように上手くいかないのでしょうか。
エラーが出るのですか。
それとも、データが張り付かないだけでしょうか。

もう少し情報を提示すべきです。

> 'レコードセットを開く。
>    cnn.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
とりあえず、ここはおかしいと思います。

【9199】Re:VBAによるADO接続
発言  イチコ  - 07/3/16(金) 17:47 -

引用なし
パスワード
   ▼まさ7251 さん:
>>しかし、アクセスDBにつなぐADO接続が上手くいきません。
>>以下に、参考サイトを見て書いたコードを貼ります。
>>どなたか問題点がわかる方、ご教授下さい。
>>(アクセスに関しては全くの初心者です。)
>  
>どこに書いたのでしょうか。
>Excelですか?VB上ですか?
>
>どのように上手くいかないのでしょうか。
>エラーが出るのですか。
>それとも、データが張り付かないだけでしょうか。
>
>もう少し情報を提示すべきです。
>
>> 'レコードセットを開く。
>>    cnn.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
>とりあえず、ここはおかしいと思います。

まささん早速のレスありがとうございます。
>どこに書いたのでしょうか。
>Excelですか?VB上ですか?
VBです

>どのように上手くいかないのでしょうか。
エラーがでております。
メッセージは、「この操作を実行するために接続を使用できません。
このコンテキストで閉じているかあるいは無効です」がでております。
>とりあえず、ここはおかしいと思います。
間違って記入しました cnn.Open を rst.Open に変更したのですが、
そこでこけているようです。

【9204】Re:VBAによるADO接続
発言  まさ7251  - 07/3/16(金) 22:25 -

引用なし
パスワード
   >>>    cnn.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
>>とりあえず、ここはおかしいと思います。
>
>>どのように上手くいかないのでしょうか。
>エラーがでております。
>メッセージは、「この操作を実行するために接続を使用できません。
>このコンテキストで閉じているかあるいは無効です」がでております。
>>とりあえず、ここはおかしいと思います。
>間違って記入しました cnn.Open を rst.Open に変更したのですが、
>そこでこけているようです。

具体的にどう書いているのですか。
rst.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
こうなっているのでしょうか。

これだと、
rst.Open "結合クエリ仮"
これと同じ意味ですよね。
それでは、不味いですよね?

【9214】Re:VBAによるADO接続
お礼  イチコ  - 07/3/22(木) 18:38 -

引用なし
パスワード
   ▼まさ7251 さん:
>>>>    cnn.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
>>>とりあえず、ここはおかしいと思います。
>>
>>>どのように上手くいかないのでしょうか。
>>エラーがでております。
>>メッセージは、「この操作を実行するために接続を使用できません。
>>このコンテキストで閉じているかあるいは無効です」がでております。
>>>とりあえず、ここはおかしいと思います。
>>間違って記入しました cnn.Open を rst.Open に変更したのですが、
>>そこでこけているようです。
>
>具体的にどう書いているのですか。
>rst.Open "結合クエリ仮" ', cnn, adOpenForwardOnly, adLockReadOnly
>こうなっているのでしょうか。
>
>これだと、
>rst.Open "結合クエリ仮"
>これと同じ意味ですよね。
>それでは、不味いですよね?

まささんせっかくまたヒントを頂いたのに、
お返事遅れてしまいすいません。

不味いに意味を知るべく色々と調べました。
結果、レコードセットも理解でき、
クエリに頼らずにSQL文を記述することによって、目的は達成できました。

ありがとうございました。

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