VBA Excel экспорт для доступа - PullRequest
0 голосов
/ 22 мая 2018

Привет. Я пытаюсь написать макрос, который берет пользовательский ввод из формы Excel и добавляет его в таблицу доступа.Используя следующий код:

   Dim cnn As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim wsh As Excel.Application
   Set cnn = "db.accdb.connection"
   Set rst = New ADODB.Recordset
   rst.Open "table", cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
   With rst
   .AddNew
   .Fields("column1").Value = textboxvar
   .Update
   End With

с предварительно заданным textboxvar.Но это не сработает, и я не знаю почему.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

после долгого поиска.Самое популярное сообщение в этой теме уже отвечает на вопрос: Использование Excel VBA для экспорта данных в таблицу MS Access

Это просто необходимо обновить для работы с Access 2016:

Public Sub UploadExcel()

Set cn = CreateObject("ADODB.Connection")
dbPath = 'type your database path in here

dbWb = Application.ActiveWorkbook.FullName
dbWs = Application.ActiveSheet.Name

scn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath
dsh = "[" & Application.ActiveSheet.Name & "$]"
cn.Open scn

ssql = "INSERT INTO TableName ([Field1], [Field2], [Field3]) "
ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh

cn.Execute ssql

End Sub
0 голосов
/ 22 мая 2018

Пример, который объявляет, устанавливает, открывает соединение:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open "Provider=Microsoft.ACE.OLEDB.12.0; DataSource='C:\path\databasename.accdb'"
rs.Open "SELECT * FROM MyTable", cn, adOpenKeyset, adLockOptimistic
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...