2016-08-18 1 views
-1

В моем основном доступе 2016 БД, используя VBA, я хочу создать временный диск Access OPTION SEPARATE 2016 на диске. Создайте таблицу внутри temp db, используя данные, которые у меня есть в CSV, а затем создайте ссылку в моем основном db для этой недавно созданной таблицы в temp db. Теперь я должен иметь возможность запускать запросы в таблице temp db.Создать Access 2016 DB с кодом VBA

Все это немного ошеломляет. Пока у меня ниже код для создания db, но он дает ошибку «Class not registered» в строке Catalog.Create dbConnectStr, также этот код создает файл mdb вместо файла accdb. Это проблема?

Dim dbConnectStr As String 
Dim Catalog As Object 
Dim cnt As ADODB.Connection 
Dim dbPath As String 

dbPath = "C:\TempDB.mdb" 
dbConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";" 

'Create new database 
Set Catalog = CreateObject("ADOX.Catalog") 
Catalog.Create dbConnectStr 
Set Catalog = Nothing 

'Connect to database and insert a new table 
Set cnt = New ADODB.Connection 
'' create table here 
Set cnt = Nothing 
+0

См https://msdn.microsoft.com/en-us/library/office/ff195271.aspx – Sorceri

+0

Пожалуйста понятнее. Вы хотите создать отдельный файл базы данных (.mdb/.accdb) или базу данных в существующей базе данных? Эти два совершенно разные операции. И обычно один не автоматизирует первое в коде приложения. – Parfait

+0

Я хочу создать отдельный db. – Kashif

ответ

0

Ниже приведен пример создания новой БД без ее открытия в текущем рабочем экземпляре Access.

Sub CreateMeANewDatabasePlease(dbPathAndName As String) 

Dim aApp As Access.Application 

    Set aApp = New Access.Application 
    aApp.NewCurrentDatabase dbPathAndName, acNewDatabaseFormatUserDefault 
    aApp.Quit 

End Sub 

Sub StartHere() 
    CreateMeANewDatabasePlease ("SomePath\TheDB.accdb") 
End Sub