Создать запрос в разделе Вставка данных из пользовательской формы Excel в другую базу данных Excel с помощью VBA - PullRequest
0 голосов
/ 21 января 2020

Я использую книгу Excel в качестве базы данных (ExcelDB) и подключаюсь к ней через ADODB. В другой книге Excel у меня есть пользовательская форма, которую я использую для ввода данных. Я пытаюсь получить значение текстового поля и вставить его в столбец FirstHeader в таблице на одном из рабочих листов (WorkSheet1) в ExcelDB. Я также надеюсь, что любая другая запись в этом текстовом поле будет добавлена ​​в последнюю строку этой таблицы, когда я нажму кнопку команды. Я пробовал большинство способов сделать запрос вставки, но я не могу заставить его работать. Вот мой код.

Private Sub btn_Save_Click()
 On Error Resume Next
 Public cnn As New ADODB.Connection
 Public rst As New ADODB.Recordset

cnn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\Reports.xlsm;Extended Properties=""Excel 12.0 Macro;HDR=YES;FMT=Delimited;IMEX=1;"";"

Dim qry As String

qry = "Select * from [WorkSheet1$]"

rst.Open qry, cnn, adOpenDynamic, adLockOptimistic '?:adOpenKeyset, adLockPessimistic - I dont know if have this code wrong...

If rst.RecordCount = 0 Then
    MsgBox "no record"
Else
    qry = "Insert into [WorkSheet1$]([FirstHeader]) Values (TextBox.Value)"  '... or I have this query wrong

End If

Application.ScreenUpdating = True
rst.Close
cnn.Close
Set rst = Nothing
Set cnt = Nothing

 End Sub

Как правильно написать запрос, чтобы ввод, введенный в текстовое поле, был вставлен в последнюю строку таблицы на листе, который я подключил через adodb в excel? Спасибо за помощь.

1 Ответ

0 голосов
/ 21 января 2020

Вам необходимо выполнить запрос действия следующим образом:

qry = "Insert into [WorkSheet1$]([FirstHeader]) Values (TextBox.Value)" 
cnn.Execute qry

Для более подробной информации: нажмите здесь

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