質問編集履歴
1
同じような現象のパターン追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -104,3 +104,54 @@
|
|
104
104
|
また、実際にはSQLSERVERへ接続して結果のRecordSetをシートに貼り付けるという内容です。
|
105
105
|
問題となる事象が再現しているので、提示のコードでの質問となっています。
|
106
106
|
|
107
|
+
--追記--
|
108
|
+
解決しましたが、以下のような場合でも1シート目を日付型にしてしまうことがわかったので
|
109
|
+
蛇足ですが追記しておきます。
|
110
|
+
|
111
|
+
|
112
|
+
```VBA
|
113
|
+
Sub testcode()
|
114
|
+
|
115
|
+
Dim tSheet As Worksheet
|
116
|
+
Dim tRs As Object
|
117
|
+
|
118
|
+
Set tRs = CreateObject("ADODB.Recordset")
|
119
|
+
tRs.Fields.Append "aa", 5 '5:adDouble
|
120
|
+
tRs.Open
|
121
|
+
tRs.AddNew
|
122
|
+
tRs.Fields("aa").Value = 1.11
|
123
|
+
tRs.Update
|
124
|
+
tRs.AddNew
|
125
|
+
tRs.Fields("aa").Value = 2.25
|
126
|
+
tRs.Update
|
127
|
+
tRs.AddNew
|
128
|
+
tRs.Fields("aa").Value = 3.25
|
129
|
+
tRs.Update
|
130
|
+
tRs.MoveFirst
|
131
|
+
Set tSheet = ThisWorkbook.Sheets.Add
|
132
|
+
tSheet.Cells(1, 1).Value = "aa"
|
133
|
+
Call tSheet.Cells(2, 1).CopyFromRecordset(tRs)
|
134
|
+
tRs.Close
|
135
|
+
|
136
|
+
Set tRs = CreateObject("ADODB.Recordset")
|
137
|
+
tRs.Fields.Append "aa", 135 ' 135:adDBTimeStamp
|
138
|
+
tRs.Open
|
139
|
+
tRs.AddNew
|
140
|
+
tRs.Fields("aa").Value = #5/5/2025 3:14:21 PM#
|
141
|
+
tRs.Update
|
142
|
+
tRs.AddNew
|
143
|
+
tRs.Fields("aa").Value = #5/5/2025 11:12:21 AM#
|
144
|
+
tRs.Update
|
145
|
+
tRs.MoveFirst
|
146
|
+
|
147
|
+
Set tSheet = ThisWorkbook.Sheets.Add
|
148
|
+
tSheet.Cells(1, 1).Value = "aa"
|
149
|
+
Call tSheet.Cells(2, 1).CopyFromRecordset(tRs)
|
150
|
+
tRs.Close
|
151
|
+
|
152
|
+
End Sub
|
153
|
+
```
|
154
|
+
|
155
|
+
日付型でないデータであっても2シート目の出力の日付型の所を1シート目で書式変更してしまうようです。
|
156
|
+
|
157
|
+
|