準・究極の選択

[PG]AccessVBAでファイルのインポートする方法
VBAでエクセルファイルのインポートする機能を実装しています。
下記のコードで実行しますと実行時エラー"3011"が表示され
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
varac, varxls, True, strrange
で止まります。何か解決方法を教えていただけないでしょうか?

Function ExcelDataImport()

'On Error GoTo エラー

Dim varac As Variant
Dim varxls As Variant
Dim strrange As String
Dim strmsg As String

' --- Accessテーブルを指定します。存在していなければ自動的に作成します。
varac = "tbl_売上げテーブル"
' ---Excelファイルを指定します。必ず、存在していなくてはいけません。
varxls = "C:\売上げ.xls"
' --- データ入力のシート名とセル範囲を指定します。
' なお、省略が可能です。省略した場合は、ワークシート全体がインポートされます。
strrange = "売上げシート!A1:D10"

strmsg = "Excelファイル" & varxls & " を、Accessテーブル " & varac & _
"へ、データ入力を行います。" & Chr(13) & _
"Excelファイルの入力レンジは、 " & strrange & " です。"
' --- DeleteObjectメソッドを用いて、tbl_売上げテーブルを削除します。
' --- TransferSpreadsheetメソッドを用いてデータをインポートします。
DoCmd.DeleteObject acTable, varac
If MsgBox(strmsg, vbOKCancel) = vbOK Then
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
varac, varxls, True, strrange

MsgBox "データ入力は、正常に完了しました。"
End If

Exit Function

A 回答 (2件)

実行エラー3011について過去事例を探しあてはまりそうな対処を見つけてみるのも手段です。



オブジェクトXXが見つかりません、でしたか。

削除するときですが、対象データが存在するか確認してから実施の方が良いと思います。
    • good
    • 0

実行時エラー"3011"の内容は?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報