2016-08-26 6 views
0

Excel VBAを使用してMS Accessデータベースを照会し、検索してテーブルに追加したいと考えています。それは、サブまたは関数がExcel VBAを使用してアクセスデータベースを照会する

は誰もが持っている機能のOpenDatabase()のために定義されていないことを言うので動作しません

Dim dbs As DAO.Database 

Dim dbs As Object 
Set dbs = OpenDatabase("FILEPATH\database1.accdb") 


dbs.Execute "INSERT INTO Table1(ID, Field1, Field2, Field3) VALUES('1','Hello','Helo','Hi')" 

:このサイトを検索することにより

私はこのコードを見つけましたこのより良い方法

データベースとスプレッドシートが既に存在し(私の雇用主によって実行されている)、リンクしたいだけなので、より良い方法があることを知っているときにこれを実行したい理由です。

+2

こんにちは、このリンクhttp://stackoverflow.com/documentation/vba/3578/working-with-ado/12351/makingを通過-a-データソースへの接続#t = 201608262143069051102。 – HA560

+1

'dbs'の2番目の再定義を削除します。 – Parfait

+0

上記のドキュメントのリンクが最善の説明です。 OpenDatabaseはユーザー定義の関数なので、コードは機能しません。自分で書く必要があります(ドキュメントを参照)。また、正しいADO参照が有効になっていることを確認してください。 – SandPiper

答えて

0

(もちろん、正しいFILEPATHで)これを試してみてください:

Dim appAccess As Object: Set appAccess = CreateObject("Access.Application") 
    appAccess.OpenCurrentDatabase ("FILEPATH\database1.accdb") 
    appAccess.CurrentProject.Connection.Execute "INSERT INTO Table1(ID, Field1, Field2, Field3) VALUES('1','Hello','Helo','Hi')" 
    Set appAccess = Nothing