Microsoft Access Club >SampleFile >インデックス >このページ >次頁 < 前項 | ![]() |
ExcelからAccessテーブルへデータをインポートするのには、TransferSpreadsheet メソッド を用います。このメソッドの詳細は前号(125)をご覧下さい。下記のようなフォームからインポートを実行します。
Excelへデータ出力コマンドボタンのクリック時イベントに下記のようなプロシージャを記述しています。
Private Sub コマンド0_Click() Dim strac As String Dim strxls As String Dim strmsg As String strac = "tbl_sample" 'Accessテーブルを指定します。 strxls = "C:\My Documents\sample_127.xls" 'エクセルファイルを指定します。 strmsg = "Accessファイル " & strac & " を、エクセルファイルへデータ出力を行います。" _ & Chr(13) & Chr(13) & "出力先は " & strxls & " で、 シート名は " & strac & _ " です。" & Chr(13) & Chr(13) & _ "よろしければ、OKをクリックして下さい。" 'MsgBoxのメッセージです。 If MsgBox(strmsg, vbOKCancel, "Microsoft Access Club") = vbOK Then '最初のデータをフィールド名として使います。 DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel8, strac, strxls, True MsgBox "データ出力は、正常に完了しました。", , "Microsoft Access Club" End If End Sub
Excelからのデータ入力コマンドボタンのクリック時イベントに下記のようなプロシージャを記述しています。 Private Sub コマンド1_Click() On Error GoTo エラー Dim strac As String Dim strxls As String Dim strrange As String Dim strmsg As String strac = "tbl_sample_Import" 'Accessテーブルを指定します。 strxls = "C:\My Documents\sample_127.xls" 'エクセルファイルを指定します。 strrange = "tbl_sample!A1:D71" 'データ入力のシート名とセル範囲を指定します。 strmsg = "エクセルファイル" & strxls & " を、Accessファイル " & strac & _ "として、データ入力を行います。" & Chr(13) & Chr(13) & _ "エクセルファイルの入力レンジは、 " & strrange & " です。" & _ "注意点としては、既にAccessファイル " & strac & Chr(13) & Chr(13) & _ "が存在しているとデータを追加していきますので、実行前に " & strac & _ "を削除しています。" & Chr(13) & Chr(13) & _ "よろしければ、OKをクリックして下さい。" 'MsgBoxのメッセージです。 DoCmd.DeleteObject acTable, strac 'テーブルを削除します。 If MsgBox(strmsg, vbOKCancel, "Microsoft Access Club") = vbOK Then '最初のデータをフィールド名として使います。 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _ strac, strxls, True, strrange MsgBox "データ入力は、正常に完了しました。" End If Exit Sub エラー: Select Case Err.Number Case 7874 'エラーの原因となったステートメントの、 '次のステートメントからプログラムの実行を再開します。 Resume Next Case Else MsgBox "予期せぬエラーが発生しました。" & Chr(13) & Chr(13) & _ "エラー番号:" & Err.Number & Chr(13) & Chr(13) & _ "エラー内容:" & Err.Description, 1, "Microsoft Access Club" End End Select End Sub
インポートする場合は、対象とするファイルが存在していない場合があります。そのため、エラー処理を必ず行って下さい。これは「リンク」の場合も必須です。
また、セル範囲を指定する場合、しない場合は、下記を参考にして下さい。
なお、複数回インポートを繰り返しても、Accessテーブルへはデータを追加して行きません。ご安心下さい(笑い)。
関連ページ
|