ホーム :データベースとの連携 :


表示(エクセルに取り込み)

前へ 次へ

*CopyFromRecordset を使うと一挙に対象データをエクセルに取り込めるが、
 Excel97では使えない。(DAOであれば、使えるらしい・・・・)

*Providerは、Excel97もExcel2003も同じでよい。(MDBの場合)

*事前に、7フィールド(列)のテーブルをアクセスで作成し、保存しておくこと。

sub 表示()

Dim db As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sqldb As String
Dim res As Integer
Dim i As Long
Dim st_name As String 'サーバーデータ貼り付き先のシート名

st_name = "WORK" ' クライアントでは、「推進項目一覧」シートになる。


res = MsgBox("sien.mdbに" & vbCrLf & _
"項目一覧データをWORKシートに表示します。", vbOKCancel, "MDBのデータ表示")
If res = vbCancel Then Exit Sub

' MSアクセスのデーターべースとの接続の場合
db.Open "provider=microsoft.jet.oledb.4.0;" & "data source=sien.mdb;"

rs.Open "koumoku", db

Sheets(st_name).Rows("5:65535").Clear

'Excel97の場合は、1件ずつ表示させる必要がある。
i=6
do while rs.eof=true
' Range("a" & i).Value=rs!koumoku_bangou
Range("b" & i).Value=rs!koumoku_na
Range("c" & i).Value=rs!kigen
Range("d" & i).Value=rs!tantou_busyo
Range("e" & i).Value=rs!tantou_sya
Range("f" & i).Value=rs!memo
Range("g" & i).Value=rs!flg
i=i+1
loop
' Excel2003の場合は、下記の1行でOK。
Sheets(st_name).Range("a5").CopyFromRecordset rs

rs.Close
db.Close

Set rs = Nothing
Set db = Nothing

End Sub

前へ 次へ
データベースとの連携 に戻る