2010-04-02 185 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/找到不同类型的连接字符串。

希望帮助