2016-08-18 7 views
-1

VBA를 사용하는 나의 주요 Access 2016 db에서 디스크에 임시 Access 2016 데이터베이스를 분리하려고합니다. 내가 CSV에 가지고있는 데이터를 사용하여 temp db 안에 테이블을 만든 다음, temp db에 새로 생성 된 테이블에 대한 내 메인 db의 링크를 만듭니다. 이제는 temp db 테이블에서 쿼리를 실행할 수 있어야합니다.VBA 코드가 포함 된 Access 2016 DB를 생성하십시오.

전체적으로 조금 우스꽝 스럽다. 지금까지 나는 db를 생성하기위한 코드 아래에 "클래스가 등록되지 않았습니다"오류를 줄었습니다. Catalog.Create dbConnectStr 또한이 코드는 accdb 파일 대신 mdb 파일을 만듭니다. 그게 문제 야?

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 인스턴스에서 열지 않고 새 DB를 만드는 예제입니다.

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 
관련 문제