投稿日 | : 2006/12/19(Tue) 09:42 |
投稿者 | : へるぷ・みぃ |
Eメール | : |
URL | : |
タイトル | : DBからエクセルへデータをセットする時のエラー |
下記のコードを実行すると、
.Cells(1, 2).Value = rs(1)
でエラーが発生するのですが、理由がわかりません。
rs(1) を rs(1).Value にすると回避できるので、
既定のプロパティか何かが関係しているのかな?とは思うのですが・・・
' ActiveX Data Object Library
' Excel Library
' を参照設定
Sub Main()
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Set cn = New ADODB.Connection
cn.Open "UID=***;PWD=***;Database=***;Server=***;Driver={SQL Server};DSN='';"
Set rs = cn.Execute("select '''aa', ''") ' "'aa" と "" を抽出
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Add()
With xlBook.Worksheets(1)
.Cells(1, 1).Value = rs(0) ' A1セルに 'aa をセット
.Cells(1, 2).Value = rs(1) ' B1セルに空の文字列をセット
End With
xlBook.Close False
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing
End Sub
ちなみに、抽出クエリ
select '''aa', '' ( "シングルクォート・a・a" と空の文字列 "" を抽出)
を
select '''aa', 'bb' ( "シングルクォート・a・a" と "b・b" を抽出)
や
select 'a''a', '' ( "a・シングルクォート・a" と空の文字列 "" を抽出)
にするとエラーが発生しなくなります。
それも意味が分かりません・・・
どのような理由で
select '''aa', '' ( "シングルクォート・a・a" と空の文字列 "" を抽出)
というような抽出クエリの時だけ
.Cells(1, 2).Value = rs(1)
でエラーが発生するのか教えていただけないでしょうか?