テーブルの全レコードをシートに貼り付ける

テーブル内のレコードを指定したセル位置に貼り付けるには、CopyFromRecordsetメソッドを使います。
これだけで出来るので非常に便利です。

実行手順
1)顧客管理のACCDBファイルに接続し、レコードセットを開きます。
2)RecordCountでレコードが存在する場合、CopyFromRecordset を実行し貼り付けます。
3)データベースの終了処理を行います。

レコード数が0件のテーブルに対し、CopyFromRecordset を実行してもエラーは発生しません。
ただ何事もなく完了します。



Homeに戻る > Excel データベースのTipsへ

実行画面

顧客マスターテーブルをAccessで開いた画面です。
Accessの顧客データ

シートに貼り付けたExcelの画面です。
フィールド名は貼り付けられていませんが、同じフィールド順「顧客ID 顧客名 郵便番号 住所 TEL FAX メモ」になっています。
Excelの顧客データ

コード

'Access Accdbファイルを開く
Private Sub ExAccdbImport()
    Dim db As ADODB.Connection
    Dim rs As ADODB.Recordset
    
    '顧客管理のACCDBファイルに接続します
    Set db = New ADODB.Connection
    db.Provider = "Microsoft.Ace.OLEDB.12.0"
    db.Open "C:\MyHP\excel2007\Tips\顧客管理.accdb"

    'レコードセットを開きます
    Set rs = New ADODB.Recordset
    rs.Open "T_顧客マスター", db, adOpenStatic
    
    'レコード数の取得
    If rs.RecordCount = 0 Then
        MsgBox "顧客のレコードが見つかりません。"
    Else
        'レコードをシートへ貼り付ける
        Range("B7").CopyFromRecordset rs
    End If
    
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    
End Sub

Private Sub CommandButton1_Click()
    ExAccdbImport
End Sub



Homeに戻る > Excel データベースのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved