2009-05-29 9 views
5

Le problème est que je ne peux pas obtenir le nom de table qui a été entré dans la variable, "tblName", à utiliser à la place je reçois une base de données correctement nommée avec une table nommée "tblName".Créer une table SQL à partir d'Excel VBA

Existe-t-il un moyen de prendre le nom dans "tblName" ou un moyen de changer le nom une fois qu'il est créé avec un nom que l'utilisateur entre?

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

Merci, cela fonctionne comme un charme. –

+0

Toujours heureux d'aider. Un ensemble d'yeux différent ne fait jamais mal. –

+4

Ne l'acceptez-vous pas comme "La" réponse alors? ;) – Oorang

Répondre

12

Modifier cette ligne:

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

à ceci:

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