
いつもお世話になっております。
Access2000(OSはWindowsXP)上にボタンを作り、これをクリックするとExcelデータを自動的にインポートするプログラムを作って実行したら、次のようなエラーメッセージが出ます。
「予期せぬエラーが発生しました。エラー番号:3011 エラー内容:オブジェクト’RTEST’が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。」
プログラムはインターネットを調べて、下記のように書きました。
また、Excelデータはメールに添付されていたサンプルのデータ(項目は、行番号、伝票番号、所属、顧客名、金額、発行日で、データは22件入っています。ファイルの種類は「Microsoft Excel 97-2003 ワークシート」)をマイドキュメントにコピーしました(ファイル名は RTEST.xls )。
エラーが発生したので、C:\にコピーしてやってもみましたが、やはり同じエラーが起こります。
なお、このパソコンにはExcelはインストールされていません・・・これが問題とは思えないのですが。
原因の分かる方がおられましたら、是非対処の方法を教えて頂きたく思います。
あるいは、もっと良い記述の仕方をご教授頂くことでも構いません。
要は、他のパソコン(遠隔地にある)にあるExcelデータをUSBメモリ等のメディアまたはメールに添付して送付してもらい、それを自分のパソコンにコピーし、それをAccess2000にインポートすることができればよいのです。
手動でのインポートは問題なくできたが、自動で行いたいので、悩んでおります。
どうぞ宜しくお願い致します。
(記述したプログラム)
---------------------------------------------------------
Private Sub 実行_Click()
On Error GoTo エラー
Dim strac As String
Dim strxls As String
Dim strrange As String
Dim strmsg As String
strac = "T_RTEST" 'Accessテーブルを指定
strxls = "C:\Documents and Settings\DAN\My Documents\RTEST.xls" 'エクセルファイルを指定
( 'strxls = "C:\RTEST.xls" 'C:\でやったときの記述)
strrange = "RTEST" 'データ入力のシート名とセル範囲を指定しない
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, acSpreadsheetTypeExcel3, _
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
---------------------------------------------------------
No.1ベストアンサー
- 回答日時:
>DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel3, _
strac, strxls, True, strrange
Excel では、RTEST という範囲名が設定されていないのでは?
なら此処は・・・strac, strxls, True だけで。
また、acSpreadsheetTypeExcel3 はExcel3.0形式の指定です。8 あたりでは?
連絡が遅くなり、申し訳ありません。
今、ご指示のようにプログラムの記述を「・・・strac, strxls, True」 だけにして、更に「acSpreadsheetTypeExcel3 」の「3」の部分を「8」に変更してみたら、うまくいきました。
どうもありがとうございました。大変助かりました。
今後とも宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
オラクル(PL/SQL)のエラー
-
Access 実行時エラー'3075' 対...
-
DocuWorksでの印刷
-
ACCESSでエラー時に再起動する方法
-
SQLserver2005 nvarchar を flo...
-
SQLCODE=-420とはどういうエラ...
-
SQL*Loaderで「オブジェクトが...
-
#1062 - '0' は索引 'PRIMARY' ...
-
SQLPLUSで結果を画面に表示しない
-
【Excel】[Expression.Error] ...
-
Accessで以下のシステムを1か...
-
「○○○.ldb」のAccess レコード ...
-
Access95のエクスポートで教え...
-
100万行のCSVを10万行ずつのフ...
-
VB6.0でファイルの一行だけ削除...
-
AccessのDB破損に関して お教...
-
Access インポート
-
txtをemlに変換したい!
-
ACCESSのモジュールエラー?
-
teraterm から起動したプログラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
オラクル(PL/SQL)のエラー
-
アクセスでエラー このフィー...
-
列名に変数を使うことはできな...
-
DocuWorksでの印刷
-
Transact-SQLのBULK INSERTでエ...
-
BULK INSERTのエラー取得は可能...
-
『ORA-00936: 式がありません。...
-
AccessVBA 実行時エラー'2766'...
-
空白はダメというエラーの表示...
-
Access2010実行時エラー-21473525
-
エラーについて
-
SQLserver2005 nvarchar を flo...
-
UPDATEを使ったSQL文にて
-
重複チェックを行わず、INSERT...
-
実行時エラー459 withステート...
-
コンテキストにバインド???
-
VBAで RecordSet を扱うには?
-
Access 実行時エラー'3075' 対...
-
AccessからORACLEへのリンク設...
おすすめ情報