2010-04-02 180 views
0

我發現下面的代碼應該是一個SQL數據庫中創建一個SQL表。Excel的VBA創建SQL表

數據庫處於dbpath指定和要創建的表是tblname

然而,當我運行此代碼,我有連接到正確的SQL數據庫的問題。

例如,如果我指定dbpath爲「WIN2k8 \ Test \ ABC」,即機器名稱爲WIN2k8,則sql實例爲Test數據庫爲ABC。

出於某種原因,它使拿起DBPATH因爲在那裏我已經保存Excel工作簿,然後WIN2k8 \測試\ ABC。

有人可以幫忙嗎?

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

'Set database name in the Excel Sheet 
dbPath = ActiveSheet.Range("B1").Value 'Database Name 
tblName = ActiveSheet.Range("B2").Value 'Table Name 

dbConnectStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dbPath & ";" 

'Create new database using name entered in Excel Cell ("B1") 
Set Catalog = CreateObject("ADOX.Catalog") 
Catalog.Create dbConnectStr 
Set Catalog = Nothing 

'Connect to database and insert a new table 
Set cnt = New ADODB.Connection 
With cnt 
    .Open dbConnectStr 
    .Execute "CREATE TABLE tblName ([BankName] text(50) WITH Compression, " & _ 
      "[RTNumber] text(9) WITH Compression, " & _ 
      "[AccountNumber] text(10) WITH Compression, " & _ 
      "[Address] text(150) WITH Compression, " & _ 
      "[City] text(50) WITH Compression, " & _ 
      "[ProvinceState] text(2) WITH Compression, " & _ 
      "[Postal] text(6) WITH Compression, " & _ 
      "[AccountAmount] decimal(6))" 
End With 
Set cnt = Nothing 

回答

1

Jet.OLEDB提供程序用於MS Access。嘗試使用SQL Server連接字符串,如果這是你試圖連接到什麼。您可以在http://www.connectionstrings.com/找到不同類型的連接字符串。

希望幫助