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

Я нашел следующий код, который должен создать таблицу SQL в базе данных SQl.

База данных указана в dbpath, а создаваемая таблица - в tblname.

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

Например, если я указываю dbpath как «WIN2k8 \ Test \ ABC», то есть имя машины - WIN2k8, экземпляр sql - «Тестовая база данных - ABC»

По какой-то причине он продолжает указывать dbpath, где я сохранил книгу Excel, а затем WIN2k8 \ test \ 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  

Ответы [ 2 ]

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

Вы также можете попробовать трюк с файлом udl, описанным в следующем месте - Вы также можете попробовать подход с использованием файла udl, чтобы получить строку подключения - http://msdn.microsoft.com/en-us/library/aa140076%28office.10%29.aspx

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

Поставщик Jet.OLEDB для MS Access. Попробуйте использовать строку подключения SQL Server, если это то, к чему вы пытаетесь подключиться. Вы можете найти различные типы строк соединений в http://www.connectionstrings.com/.

Надеюсь, что поможет

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