• 締切済み

Excel VBAにてADOを利用して、Access mdbへのコネク

Excel VBAにてADOを利用して、Access mdbへのコネクションは可能ですがAccess adpへのコネクションができません。    ちなみにコードはコネクション部位のみ記述しますが、 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="*****.adp;" になります。  なお、目的はExcel VBAを利用して、Access adpデータを取り込みたいので他の方法で可能ならば 他の方法でもかまいません。 以上、よろしくお願いします。

みんなの回答

回答No.1

ADP のファイルにデーターは入ってないですよ。 ADP にはフォーム、レポート、ページ、マクロ、VBA モジュールしか含まれてません。 テーブル、クエリー (ビューやストアド プロシージャー) などは SQL Server 側に格納されているはずなので、接続先は SQL Server 内の DB になります。 その ADP を解析して、SQL Server が稼働しているホスト名、SQL Server のインスタンス名、DB の名前を確認してみてはどうでしょうか。

Cardiff19
質問者

お礼

アドバイスいただきありがとうございます。  本日、試してみますが分からないことがあったら再度ご教授いただけると幸いです。

関連するQ&A

  • Excel VBA について教えて下さい

    Excel VBA でAccess接続します 今までは Sub aaa() Set cn = CreateObject("ADODB.Connection") cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=aaa.mdb;" End Sub のように使っていましたが(単一プロシージャ) Set cn = CreateObject("ADODB.Connection") の部分をパブリックにして Sub bbb() cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=aaa.mdb;" End Sub 別のプロシージャからも、使えるためには パブリックにするための方法を教えて下さい

  • ExcelVBAからAccessにアクセスする

    ExcelVBAからパスワード付きAccessにアクセスする ExcelVBAからADOでAccessに次のようにしてアクセスしています。 Dim Cnn As ADODB.Connection Set Cnn = New ADODB.Connection Cnn.ConnectionString = \"Provider=Microsoft.Jet.OLEDB.4.0;\" _ & \"Data Source=\" & mdbのフルパス Cnn.Open パスワード付きのmdbにアクセスするのはどのようにしたらよろしいでしょうか?

  • ADO&mdbで、リンクテーブルの作り方

    お世話になっています。 行き詰って困っています。 あるmdb(Access2000形式)内のテーブルを別のmdb(同)から見られるようリンクテーブルを作りたいのですができません。 VB.NET 2005 でやっています。 いろいろ調べてMSDN等からサンプルを引っ張り、以下のように作っても、 Dim catDB As ADOX.Catalog = New ADOX.Catalog Dim tblLink As ADOX.Table = New ADOX.Table catDB.ActiveConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Mdb_Link With tblLink .Name = "TEST_TBL" .ParentCatalog = catDB .Properties("Jet OLEDB:Create Link") = True <---ここと .Properties("Jet OLEDB:Link Provider String") = Mdb_Test <---ここと .Properties("Jet OLEDB:Remote Table Name") = "TEST_TBL" <---ここ End With catDB.Tables.Append(tblLink) catDB = Nothing .Propertiesの3行でエラー(プロパティ'Item'は'ReadOnly'です。)になってしまい、サンプル通りに行きません。 これについて何か心当たりありましたら教えてくださると嬉しいです。

  • ADO1とADO2は意味は同じですか?

    Private Sub ADO1() Dim cn As New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub Private Sub ADO2() Dim cn As ADODB.Connection Set cn = New ADODB.Connection cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName cn.Close: Set cn = Nothing End Sub は、 Dim cn As ADODB.Connection Set cn = New ADODB.Connection を簡素化したものが Dim cn As New ADODB.Connection になるのでしょうか?

  • Win10(IIS) ASPでMDBをアクセス不可

    とても困っております。お願いします。 Windows7 Pro 32ビットでIISを有効にし、稼働していたASPを Windows10 Pro (OS:1903)64ビットに移行したところ、mdbへの接続でエラーになりました。 Microsoft Officeですが、 Windows7は、Office Professional Plus 2010(32ビット) Windows10は、Office Professional Plus 2016(64ビット)です。 Const strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\inetpub\wwwroot\nwgp\MDB\term.mdb" Set cnn = Server.CreateObject("ADODB.Connection") cnn.Open strConn  ←ここでエラー発生 この場合、on error resume next を入れても、「Webサイトはページを表示できません」と表示されます。 OLEDB.12をOLEDB.16に変更しても同じです。 mdbをaccdbに変換して、terma.ccdbに変えても同じでした。 Const strConn = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=C:\inetpub\wwwroot\nwgp\MDB\term.mdb" にすると、「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」 というエラーが、err.descriptionで表示されます。 フォルダやファイルのアクセス権は、IIS_USERSもeveryoneもフルアクセスにしてあります。

  • vbaを修正するとADOが実行できなくなる。

    アクセス2003、vistaを使用しています。 vbaを使っていて、ADOを使っています。 アクセスを使っている間に いくつか修正したいところがあり、vbaコードをいじって保存し、 vbaを実行すると、 CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CurrentProject.FullName ←の部分で RS.Open "Qタイトル", CN, adOpenStatic, adLockPessimistic 実行時エラー '-2147467259(80004005)' 「マシン '<マシン名>' のユーザー 'Admin' が データベースを開けない状態、またはロックできない状態にしています。」 となります。 一度ファイルを閉じて再度開くと問題なく作業できますが これは何故起こるのでしょうか? 一応調べてみましたが http://www.accessclub.jp/bbs/0017/beginers7727.html http://okwave.jp/qa4388870.html 解決には至りませんでした。 よろしくお願いします。

  • エクセルからアクセスにADO PWエラー

    エクセルからアクセスにADOで接続したいのですが アクセスのファイルにはパスワードがかかっていて、 そのパスワードを指定して開こうとしてるのですが パスワードが違います、と言うエラーになります。 でもパスワードは確実に合っています。 構文がおかしのでしょうか? cn.Open "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=" & _ "C:\PW.accdb;" & _ "Jet OLEDB:Database Password=0000;" パスワードがあっててもエラーになることはありますか? ファイルのパスをでたらめに変えたら違うエラーが発生したので、ファイルのパスもあっています。

  • VB6からAccess2000のテーブル使用

    今、VB6からAccess2000のテーブルを参照、変更する処理を作っています。 で、データが20MB(最適化済)くらいになり、コネクションを確立するのに時間がかかります。 何か処理が早くなる方法は無いでしょうか? Public cnn_MASTER As New ADODB.Connection 'コネクション Public rec_MASTER As New ADODB.Recordset 'レコードセット SUB mdb_syori()  MY_PATH = app.path  MDB_MASTER = "\AA.mdb"  TBL_MASTER = "Table1"     'ここの処理が遅い  cnn_MASTER.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _       "Data Source=" & MY_PATH & "\DATA" & MDB_MASTER & ";"  sqlCODE = "SELECT * from " & TBL_MASTER  rec_MASTER.Open sqlCODE, cnn_MASTER, adOpenKeyset, adLockOptimistic      ・      ・      ・

  • AccessのSQLについて教えてください。

    Excel+VBA から、ADOを使って、Accessを操作しようとしています。 なんとか、sqlを実行できるようになったのですが、 一点、分からないところが出てきましたので、教えてください。 insert文で、レコードを追加したとき、追加されたレコードのIDを取得したいのですが、 どのようにすれば良いかわかりません。 コードは次のようにしています。 cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & データベース名 & ";" sql = "INSERT INTO テーブル名(フィールド) VALUES(値)" cnn.Execute sql 以上、すみませんが、よろしくお願いいたします。

  • エクセルVBAでアクセスのテーブルインポート

    VBA初心者です。 エクセルのVBAでデータベースA.mdbのテーブルAをデータベースb.mdbにインポートするプログラムお教えて下さい。 '================================================ sub インポート () Set cn = New Connection'データベース接続 cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source="C:\A.mdb" ●ここにPG書くような感じだと思いますが。   cn.Close: Set cn = Nothing'後処理 End Sub '================================================ もし難しい場合、アクセスのVBAでインポートをするが、この実行をエクセルでするよなのでもいいです。この場合は、インポートされるb.mdb側のプログラムをエクセルで実行するようにしたいです。(A.mdbは多数あるため、変更が大変なため) よろしくお願い致します。

専門家に質問してみよう