*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