Макрос, который будет брать из таблицы значения=списку в sheet. подскажите плз - VB
Формулировка задачи:
Добрый день,
на VBA всего второй день, а надо написать макрос.
Задача такова: в файл xls вставляются записи в первый столбец, затем во второй и другие необходимо добавить записи из таблички БД, приравнивая по первому столбцу.
Нашел несколько примеров, но до конца сделать не получается. Подскажите, в чем неправ?
Option Compare Text
Dim WithEvents Cnn As ADODB.Connection
Dim Cmd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim WithEvents QT As QueryTable
' INSERTING DATA
Private Sub ImportButt_Click()
'------------------------------------Inserting data---------------------------
i = 2
Set Cnn = New ADODB.Connection
Cnn.ConnectionString = "Provider=SQLOLEDB;Server=***,***;Trusted_Connection=Yes"
Cnn.ConnectionTimeout = 0
Cnn.CommandTimeout = 0
Cnn.Open
Application.StatusBar = "Inserting data..."
Set Rst = New ADODB.Recordset
Rst.Open "Select *** From *** where ***", Cnn, adOpenDynamic, adLockOptimistic
With Sheets("Import")
Do While Not (.Cells(i, 1) = "")
Rst.AddNew
Rst.Fields(0) = .Cells(i, 2)
Rst.Fields(1) = .Cells(i, 3)
Rst.Fields(2) = .Cells(i, 4)
Rst.Fields(3) = .Cells(i, 5)
Rst.Fields(4) = .Cells(i, 6)
Rst.Fields(5) = .Cells(i, 7)
Rst.Fields(6) = .Cells(i, 8)
i = i + 1
Loop
End With
Rst.Update
Rst.Close
Set Rst = Nothing
Cnn.Close
Set Cnn = Nothing
Application.StatusBar = False
MsgBox "Done!"
End Sub
В ответ на это, при запуске он ругается,что нет прав на запись в таблицу ***, но ведь я туда писать и не хочу совсем..Что не так?
Спасибо всем большое заранее!
Еще подскажите плиз доку для начинающих
на VBA всего второй день, а надо написать макрос.
Задача такова: в файл xls вставляются записи в первый столбец, затем во второй и другие необходимо добавить записи из таблички БД, приравнивая по первому столбцу.
Нашел несколько примеров, но до конца сделать не получается. Подскажите, в чем неправ?
Option Compare Text
Dim WithEvents Cnn As ADODB.Connection
Dim Cmd As ADODB.Command
Dim Rst As ADODB.Recordset
Dim WithEvents QT As QueryTable
' INSERTING DATA
Private Sub ImportButt_Click()
'------------------------------------Inserting data---------------------------
i = 2
Set Cnn = New ADODB.Connection
Cnn.ConnectionString = "Provider=SQLOLEDB;Server=***,***;Trusted_Connection=Yes"
Cnn.ConnectionTimeout = 0
Cnn.CommandTimeout = 0
Cnn.Open
Application.StatusBar = "Inserting data..."
Set Rst = New ADODB.Recordset
Rst.Open "Select *** From *** where ***", Cnn, adOpenDynamic, adLockOptimistic
With Sheets("Import")
Do While Not (.Cells(i, 1) = "")
Rst.AddNew
Rst.Fields(0) = .Cells(i, 2)
Rst.Fields(1) = .Cells(i, 3)
Rst.Fields(2) = .Cells(i, 4)
Rst.Fields(3) = .Cells(i, 5)
Rst.Fields(4) = .Cells(i, 6)
Rst.Fields(5) = .Cells(i, 7)
Rst.Fields(6) = .Cells(i, 8)
i = i + 1
Loop
End With
Rst.Update
Rst.Close
Set Rst = Nothing
Cnn.Close
Set Cnn = Nothing
Application.StatusBar = False
MsgBox "Done!"
End Sub
В ответ на это, при запуске он ругается,что нет прав на запись в таблицу ***, но ведь я туда писать и не хочу совсем..Что не так?
Спасибо всем большое заранее!
Еще подскажите плиз доку для начинающих
Решение задачи: «Макрос, который будет брать из таблицы значения=списку в sheet. подскажите плз»
textual
Листинг программы
... Rst.Open "Select *** From *** where ***", Cnn, adOpenDynamic, adLockOptimistic Sheets("Import").Cells(2,2).CopyFromRecordset Rst Rst.Close ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д