• ベストアンサー

インポートエラーのテーブルを自動で削除するには?

アクセスで、インポートエラーがあった時に、 エクセルの元ファイル名$_インポート エラーの テーブルが出来ますが、 これをVBAで DoCmd.DeleteObject acTable, "* _インポート エラー *" とするとエラーとなります。"* _インポート エラー *"がいけないのでしょうか?適切な方法よろしくお願いします。

  • hiroi
  • お礼率89% (223/248)

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

Dim tbl As DAO.TableDef For Each tbl In CurrentDb.TableDefs If tbl.Name Like "*_インポート エラー*" Then DoCmd.DeleteObject acTable, tbl.Name End If Next DAO3.xの参照設定が必要です。 「インポート エラー」が1個しか無いことがはっきりしているなら、  DoCmd ・・・の次に  Exit For を加えた方がベター。

hiroi
質問者

お礼

bonaronさん 早速の回答ありがとうございます。 そうでしたか。直接の記述はダメなんですね。 分かりました。大変参考になりました。

関連するQ&A

  • Access マクロでのテーブル削除

    インポートの際にエラーテーブルが出来たら削除したいのですが、うまくいきません。 マクロでオブジェクトの削除でテーブルを指定すると、エラーテーブルが作成されなかったときにエラーになってしまいます。 VBAを作成し、プロシージャの実行で下記のファンクションを呼び出すと 【指定した式にMicrosoft Accessが見つけることのできない関数が含まれています】というエラーになります。 Public Function 削除() On Error Resume Next DoCmd.DeleteObject acTable, "TableA_インポート エラー" End Function できればVBAを使わずに「テーブルがあれば削除、なければなにもしない」というのを行いたいのですが、良い方法はないでしょうか? よろしくお願い致します。

  • テーブルの削除について

    DoCmd.OpenQuery "更新"でテーブルAを更新クエリを実行データBの データを更新してから DoCmd.DeleteObject acTable, "データB" でテーブルを削除するとエラーで削除できません どの様にすねれば削除できるでしょうか アクセス2003 XP の環境です よろしくお願いします

  • VBSにて、Accessのテーブルを削除

    VBSの質問がここが妥当でなかったら、すみません。 VBSで、Accessの"A_TBL"というテーブルを削除したいのですが、 Set objAccess = CreateObject("Access.Application") objAccess.OpenCurrentDatabase("C:\test\TEST.mdb) objAccess.DoCmd.DeleteObject acTable, "A_TBL" を実行すると、 「実行時エラー:この変数は宣言されていません。:'acTable'] と出力され、エラーになります。どなたか、教えていただければうれしいです。 どうか、お願いします。

  • 「もしテーブルが存在するなら削除する」

    「もしテーブルが存在するなら削除する」ってどうやればいいでしょう? DoCmd.DeleteObject acTable, "Table1" これでテーブルの削除は出来るのですが Table1が存在しない場合はエラーになります。 なのでこのコードを実行する前にテーブルの存在を確認したいのですが どうやってifで条件分岐すればよろしいでしょうか?

  • [PG]AccessVBAでファイルのインポートする方法

    [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

  • Access から Excelのシートをインポート時エラー

    Access の既存のテーブルにExcelのスプレッドシートからデータをインポートするため次のコマンドを実行すると、 F1フィールドがない旨のエラーメッセージが表示されます。 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "アクセスのテーブル名", "インポート元のエクセルファイル名.xls", False ここで、F1フィールドとは何でしょうか。 Excelのシートの1行目にAccessのテーブルの項目名と同名の項目名を挿入しておけば、上のコマンドの最後の引数をTrueにすればインポートは成功します。項目名のないスプレッドシートはインポートできないのでしょうか。 ご存知の方、教えてください。

  • エクセルからアクセスにインポートする際のエラーについて

    こんにちは。 エクセルで作成された従業員台帳を、アクセスにインポートしたいのですが、エラーが出て困っています。 インポートの為のフォームを作り、参照ボタンでそのエクセルファイルを選択してフルパスを取得し(こちらの動作はOKです)、実行ボタンでそのファイルをインポートする、という方法をとろうと思います。 transferspreadsheet で、エクセルのファイル(.xls)は問題なくいくのですが、csv形式のファイルを指定して同じようにインポートすると、 実行時エラー 3274 外部テーブルのフォーマットが正しくありません。 となってしまいます。 書いているコードは、 DoCmd.TransferSpreadsheet acImport, 8, "従業員台帳(アクセス側でのテーブルの名前)", "上記画面で取得したフルパス", True(一番上の項目をフィールド名として使用します), "" です。.xlsでも.csvの形式でもインポートできるようにしたいのです。 環境は、winXPpro、Access2000、Excel2000 です。 よろしくお願いします。

  • ACCESS2007 VBAでのインポートウィザードの呼び出し方

    VBAを使ってテーブルへのインポート、 クエリの実行からEXCELファイルへのエクスポートまでを 一連で行いたいと考えています。 インポート時はファイル名が決まっていないので、 インポートウィザードを呼び出したいのですが、 ACCESS2003以前であれば、 「DoCmd.RunCommand acCmdImport」 でできたところ、 ACCESS2007では ------------------------------ DoCmd.RunCommand acCmdImport オブジェクト モデル呼び出しと Import RunCommand マクロはサポートされなくなりました。このオブジェクト モデル、または RunCommand マクロを呼び出すと、エラー メッセージが表示されます。代わりに、より特化した ImportAttach コマンドを使用します。 ------------------------------ とのことでエラーとなってしまいます。 肝心のImportAttachコマンドを使おうと、検索をかけたのですが、 どこにも情報が無く、構文すらわからない状況です。 ヘルプを探しても情報は見当たりませんでした。 探し方が悪いのかもしれないのですが、 参考となるURLや構文を教えていただければ助かります。 もちろん、インポートするファイルをGUIで選択できるのであれば、 別の方法でも構いません。 よろしくお願いいたします。

  • アクセス リンク先のバックアップテーブル削除

    お世話になっております。 以前、リンク先DBでリンクテーブルのバックアップをとり、 同じ名称のテーブルがあったら処理しない というVBAを教えていただいたのですが・・・ そこに付随して質問です。 Dim appAccess As Access.Application Set appAccess = CreateObject("Access.Application") With appAccess .OpenCurrentDatabase strLinkDB If numHantei = 1 Then .DoCmd.TransferDatabase acImport, "Microsoft Access", _ strLinkDB, acTable, "T_権限情報", "BK_テーブル1_" & Format(Date, "yymmdd") .DoCmd.TransferDatabase acImport, "Microsoft Access", _ strLinkDB, acTable, "T_社員情報", "BK_テーブル2_" & Format(Date, "yymmdd") End If .Quit End With Set appAccess = Nothing 7日以上経過したバックアップファイルを削除するには (DoCmd.DeleteObject acTableを使って削除になるかと思いますが)、 実際、どのようにしたら可能でしょうか。 初心者につき、ご教示いただけると幸いです。 よろしくお願い致します。

  • テーブルのプロパティの説明欄消失

    ACCESS VBAで以下のような指定でインポートを行っています。 DoCmd.TransferDatabase acImport _ , "Microsoft Access" _ , S_FileName _ , acTable _ , hairetu(j) _ , hairetu(j) _ , False インポートは正常にできるのですが、テーブルのプロパティの説明の記述が消えてしまいます。 消えなくする方法はありますか? できなければ、プログラムで付与する方法はありますか?

専門家に質問してみよう