2009-05-29 12 views
5

変数 "tblName"に入力されたテーブル名を取得できず、代わりに "tblName"という名前のテーブルを持つデータベースが正しく取得されるという問題があります。Excel VBAからSQLテーブルを作成する

"tblName"で名前を取得する方法や、ユーザーが入力した名前で作成された名前を変更する方法はありますか?

Private Sub CreateDatabaseFromExcel() 

    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 

End Sub 
+0

が、それは魔法のように動作し、ありがとうございました。 –

+0

常に喜んで助けてください。別の目は決して痛くない。 –

+4

それを "The"の回答として受け入れるべきではありませんか? ;) – Oorang

答えて

12

変更この行:これに

.Execute "CREATE TABLE tblName ([BankName] text(50) WITH Compression, " & _ 

.Execute "CREATE TABLE " & tblName & " ([BankName] text(50) WITH Compression, " & _ 
関連する問題