Использование Excel VBA для создания таблиц SQL - PullRequest
1 голос
/ 02 апреля 2010

Я пытаюсь использовать Excel VBA для автоматизации создания таблицы SQL в существующей базе данных SQL.

Я обнаружил следующий код на этой стороне.

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 

Однако я не могу успешно заставить его работать?

Что я пытаюсь сделать, так это использовать Excel для создания таблицы, а не базы данных? База данных уже существует. Я просто хотел бы создать новую таблицу. На имя таблицы будет ссылаться из ячейки A1 на листе 1.

Может кто-нибудь, пожалуйста, помогите.

1 Ответ

0 голосов
/ 02 апреля 2010

Просто прокомментируйте эти строки:

Set Catalog = CreateObject("ADOX.Catalog") 
Catalog.Create dbConnectStr 
Set Catalog = Nothing 

Это должно быть сделано, поскольку эти строки создают новую базу данных. Последний код просто открывает его и создает нужную таблицу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...