Пожалуйста, проверьте, будет ли работать простая вставка всего набора записей непосредственно в диапазон Excel (перезапишет, начиная с L2, столько, сколько нужно):
.Worksheets("Sheet1").Cells(12, 2).CopyFromRecordset
Если это работает, вы можете очиститьдиапазон перед вставкой на него:
.Worksheets("Sheet1").Range("L2:N100000").ClearContent
Если это не поможет, вы можете перебрать набор записей в Access, например, так:
Set rs = CurrentDb.OpenRecordset("WhatEver", dbOpenDynaset)
If Not (rs.BOF And rs.EOF) Then
rs.MoveFirst
i = 1
Do
... = rs.Fields("Code" & i).Value
...
rs.MoveNext
i = i + 1
Loop Until i > 30 ' or Until rs.EOF
End If