Это правда, что этот код будет только создавать таблицу. Чтобы вставить записи, вам необходимо выполнить Execute, который использует «INSERT INTO tblSample», а затем каждую строку Excel.
Я не знаю, как это сделать в VBA, но я мог бы сделать это в VB, используя оператор For Each row In {table}.Rows...Next
, поэтому, возможно, синтаксис Googling For Each
в VBA поможет вам. Или, может быть, кто-то здесь может дать вам хороший пример.
EDIT:
Нечто близкое к этому может сработать
For i = startRow to endRow
cnt.Execute "INSERT INTO tblSample VALUES (" & _
Cells(i, 1).Value & "," & Cells(i, 2).Value & _
--And so on
& ")"
Next i
Вы должны установить значения для начальной и конечной строк. Этот цикл будет проходить через каждую строку в вашем диапазоне и вставлять значение ячейки в этой строке в указанное вами поле. Вам нужно будет сделать порядок таким же, как столбцы в вашей таблице, так что, возможно, у вас сначала будет Cells(i, 2).Value
, например.
Попробуйте выполнить его сразу после блока With
, до Set cnt = Nothing
.
РЕДАКТИРОВАТЬ: Использование SELECT INTO
.Execute "SELECT * INTO tblSample FROM "[{Your version of Excel};
DATABASE={Your Excel spreadsheet}].[{Your sheet name}]"
Замена существующего блока .Execute.