Создать таблицу SQL из Excel VBA - PullRequest
5 голосов
/ 29 мая 2009

Проблема в том, что я не могу получить имя таблицы, которое было введено в переменную "tblName", для использования вместо этого я получаю базу данных с правильным именем и таблицей с именем "tblName".

Есть ли какой-нибудь способ подобрать имя в "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

1 Ответ

13 голосов
/ 29 мая 2009

Изменить эту строку:

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

К этому:

.Execute "CREATE TABLE " & tblName & " ([BankName] text(50) WITH Compression, " & _
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...