| |
ついでに、忘れ物^ ^
Sub adosample()
Dim rs As Object
Dim mysql As String
Dim i As Long
If open_ado_excel(ThisWorkbook.FullName) = 0 Then
mysql = "Transform iif(isnull(sum(不良本数)),0,sum(不良本数)) " _
& "Select [ロット],[品名],sum([不良本数]) " _
& "From [Sheet1$] " _
& "Group By [ロット],[品名] " _
& "Pivot 不良内容;"
If get_exec_sql(mysql, rs) = 0 Then
With Sheets("Sheet2")
.UsedRange.ClearContents
.Range("A2").CopyFromRecordset rs
For i = 0 To rs.fields.Count - 1
.Cells(1, i + 1).Value = rs.fields(i).Name
Next i
End With
Call rs_close(rs)
Else
MsgBox "rs error"
End If
Call close_ado
Else
MsgBox "cn error"
End If
End Sub
これは、ありがとうございます。私も勉強させてもらいました。
ただ、自Bookに対して繰り返し処理を行う場合はメモリリークに気をつけなければならないようです。
照会元のデータ量が多い場合は特に。
『BUG: メモリ リークは、ActiveX Data Objects ( ADO )を使用すると...』
ttp://support.microsoft.com/kb/319998/ja
|
|