アプリ版:「スタンプのみでお礼する」機能のリリースについて

SQL EXCEL VBA 接続
Sub b()

'オブジェクト変数の宣言
Dim rstTMP As ADODB.Recordset  ユーザ定義型宣言されていません。
                   とエラーになります。
Dim cmd As New ADODB.Command

'SQL接続
' 接続文とその他処理を記述
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & FileName
上はコピーしてそのまま使用しています。

myCon.Open conStr
'SQLコマンド作成
With cmd
.CommandText = "Select * From テーブル名"
.CommandType = adCmdText
End With
'SQL文実行/レコードセット取得
Set rstTMP = cmd.Execute

End Sub

やりたいこと
1.エクセルのデータ Ver.2016 ファイル bookdata1
抽出先ファイル bookdata2

とにかく接続して抽出したい
抽出したい
助けてください。
上記のこーどはいろんなサイト・このサイトに質問などしてやっています。
コードは標準モジュールに書いています。

質問者からの補足コメント

  • どう思う?

    アクティブxの参照設定にチェックを入れました。
    myCon.Open conStr黄色に反転
    オブジェクトが必要です。となりました。
    どういうことでしょぅか。

      補足日時:2017/11/28 20:33
  • どう思う?

    FileName もしかしてここに元になる
    ファイル名を書くのでしょうか

    No.2の回答に寄せられた補足コメントです。 補足日時:2017/11/28 20:38
  • うーん・・・

    'SQL接続
    ' 接続文とその他処理を記述
    conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Extended Properties=Excel 8.0;" & _
    "Data Source= "C:\Users\......\Desktop\新しいフォルダー (2).\DataBook.xlsx”
                    ....は自分の名前なので....にしました。
    '接続
    myCon.Open DataBook
    うまくいきません。

    No.3の回答に寄せられた補足コメントです。 補足日時:2017/11/28 20:54
  • つらい・・・

    おねがいします。

      補足日時:2017/11/28 20:58
  • プンプン

    conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Extended Properties=Excel 8.0;" & _
    "Data Source= "C:\Users\......\Desktop\新しいフォルダー (2).\DataBook.xlsx”
                    ....は自分の名前なので....にしました。
    '接続
    myCon.Open conStr  constrtがdata sourceですね
    しかしうまくいかないです

      補足日時:2017/11/28 21:12

A 回答 (4件)

アクティブxの参照設定にチェックを入れるのが楽です。


https://msdn.microsoft.com/ja-jp/library/cc36407 …

そうでない場合は、createobjectでできます。
https://ateitexe.com/vba-ado-not-reference/
    • good
    • 0
この回答へのお礼

有難うございました。

お礼日時:2017/11/28 22:04

new しないと。


Dim rstTMP As new ADODB.Recordset
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難うございました。

お礼日時:2017/11/28 22:04

そうだね。

 
フルパスで書くと変なことになりにくい。  前の行に
filename = "C:\Users\...\sample.xls”
などとしてもよい。
あと、SQLの”テーブル名”とかも実際のものに直さないとね。
この回答への補足あり
    • good
    • 0
この回答へのお礼

有難うございました。

お礼日時:2017/11/28 22:04

あとは、エクセルのバージョン(8.0って、excel97のこと?)とドライバをあわせないとだめかな?


https://ja.wikipedia.org/wiki/Microsoft_Excel


jetダメだったら、ACEとか。
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & FileName & ";"
とか。

サンプルになるコードを見つける際には、エクセルのバージョンも併せて検索するとよいですよ。
    • good
    • 0
この回答へのお礼

Sub Excelに接続()
Dim myCon As New ADODB.Connection, FileName As String
Dim conStr As String
'接続先のExcelファイル
FileName = "C:\Users\.....\Desktop\DataBook.xlsx"
'接続文字列
conStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Extended Properties=Excel 8.0;" & _
"Data Source=" & FileName
'接続
myCon.Open conStr
MsgBox "Excelブックに接続完了!"
'接続を解除し、オブジェクトをクリア
myCon.Close: Set myCon = Nothing
End Sub
接続成功です。有難うござました。
明日からSQL文をやります
本かってあるのでうれしいです。
つかれたが

お礼日時:2017/11/28 21:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す