|
前進しました。
ただ、フォームにあるボタンで実行すると、1回目はちゃんとデータが貼りついてきますが、
2回目以降は、フィールド名だけで、データを持ってきません。。。
フォームは開いたままの状態です。
なぜでしょうか。
また、記述方法で、改善したほうがいいところなどありましたら、教えてください。
よろしくお願いします。
Dim xls As Excel.Application
Dim wkb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim rst As DAO.Recordset
Dim cnt As Long
Dim i As Integer
Set xls = CreateObject("Excel.Application")
Set wkb = xls.Workbooks.Open("C:\data\test.xls")
For i = 1 To 2
Set ws = wkb.Worksheets(i)
Select Case ws.Name
Case "Sheet1"
Set rst = Me![SubA].Form.RecordsetClone
Case "Sheet2"
Set rst = Me![SubB].Form.RecordsetClone
End Select
With wkb.Worksheets("Sheet" & i)
'既存データ消去
.Range("A1").CurrentRegion.ClearContents
'項目名 & データセット
For cnt = 1 To rst.Fields.Count
.Cells(1, cnt).Value = rst.Fields(cnt - 1).Name
Next
.Range("A2").CopyFromRecordset Data:=rst
End With
Next i
'Excel画面を表示
xls.Visible = True
'保存
wkb.Save
Set wkb = Nothing: Set xls = Nothing
Set rst = Nothing
|
|