Excel VBA質問箱 IV

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

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


1562 / 13644 ツリー ←次へ | 前へ→

【73487】ADOとVBAProject はじめての投稿 13/1/15(火) 9:34 質問[未読]
【73492】Re:ADOとVBAProject n 13/1/15(火) 22:38 発言[未読]
【73499】Re:ADOとVBAProject はじめての投稿 13/1/16(水) 14:26 お礼[未読]
【73507】Re:ADOとVBAProject n 13/1/16(水) 18:49 発言[未読]

【73487】ADOとVBAProject
質問  はじめての投稿  - 13/1/15(火) 9:34 -

引用なし
パスワード
   はじめて投稿します。よろしくお願いします。

ExcelのWorkSheet上にコマンドボタン「CommandButton1」を置いて、クリックしたら、自分に対するADOをOpenします。
(自分のワークシート[TBL]にデータベースを置いて、「objADO.Execute("select * from [TBL$]")」でデータを抽出できます)

今、このADOをOpenして閉じるだけで、このWorkBookを閉じても、VBAProjectが残ってしまいます。
何か回避策はありますでしょうか?よろしくお願いします。


Private Sub CommandButton1_Click()
  
  Dim objADO As Object
  
  Set objADO = CreateObject("ADODB.Connection")
  objADO.Open "Driver={Microsoft Excel Driver (*.xls)};" & _
        "DBQ=" & ThisWorkbook.FullName & ";" & _
        "ReadOnly=0"
  objADO.Close
  Set objADO = Nothing

  
Exit Sub
End Sub

【73492】Re:ADOとVBAProject
発言  n  - 13/1/15(火) 22:38 -

引用なし
パスワード
   自Bookに対してADOアクセスする時の宿命みたいなもののような気がしますが...
OSとExcelのバージョンは何でしょう?

2007以降だったらProviderに"Microsoft.ACE.OLEDB.12.0"を使うと良いと思います。
2003でも『2007 Office system ドライバ: データ接続コンポーネント』をダウンロードすれば使えます。
tp://www.microsoft.com/ja-jp/download/details.aspx?id=23734

ODBC接続だと
objADO.Open "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};" & _
      "DBQ=" & ThisWorkbook.FullName & ";" & _
      "ReadOnly=0"
objADO.Close

OLEDBでは
objADO.Provider = "Microsoft.ACE.OLEDB.12.0"
objADO.Properties("Extended Properties") = "Excel 12.0"
objADO.Properties("Data Source") = ThisWorkbook.FullName
objADO.Open
objADO.Close

【73499】Re:ADOとVBAProject
お礼  はじめての投稿  - 13/1/16(水) 14:26 -

引用なし
パスワード
   n さん
早速の回答ありがとうございます。

これは、複数の人に使ってもらう予定で、

OS:WinXp,Win7,Win8(今後)
EXCEL:2000,2003,2007,2010

環境はいろいろあります。
その為に、各オペレータにインストールしてもらうのも、なんですので、DatabaseのSheetは別ファイルにしようかと思ってきました。

どうもいろいろありがとうございます。

【73507】Re:ADOとVBAProject
発言  n  - 13/1/16(水) 18:49 -

引用なし
パスワード
   >DatabaseのSheetは別ファイルにしようかと思ってきました。
それが良いかと思います。
データ量が多ければMDBファイルの検討もありかもしれません。

実は該当Bookを「共有Book」にする事でも解消するのですが
「共有Book」はVBAでの制限もありますし、
不具合も多そうなのであまりおすすめしません。

TBLシートのデータ量がさほど多くないのであれば
AdvancedFilterメソッドを使うというのも選択肢の1つかもしれませんね。

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