|
▼てん さん:
こんにちは。
> 2回目以降は、フィールド名だけで、データを持ってきません。。。
> フォームは開いたままの状態です。
こちらでも同じ事象が発生しました。
CopyFromRecordset する前に Recordset を
先頭に持ってくる処理を入れてあげた方が良さそうですね。
rst.MoveFirst
.Range("A2").CopyFromRecordset Data:=rstt
> 記述方法で、改善したほうがいいところなどありましたら
C:\data\test.xls は必ずシートが2枚以上ありますでしょうか。
また、シート名は Sheet1、Sheet2 固定なのでしょうか。
上記の様な箇所がはっきりしないと何とも言えませんが
もうちょっとすっきりしたコードにできるかもしれません。
For i = 1 To 2
Select Case i
Case 1
Set rst = Me![SubA].Form.RecordsetClone
Case 2
Set rst = Me![SubB].Form.RecordsetClone
End Select
rst.MoveFirst
With wkb.Worksheets(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
|
|