• 締切済み

テーブルの削除について

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

Sqlではテーブルの削除はDrop。 drop table 生徒14; を SQLクエリに入れて実行すると、「生徒14」テーブルが消える(確認済み)。 これをモジュールから実行できないか勉強したら。

tompapa56
質問者

お礼

ありがとうございます 解決しました

  • hegemon
  • ベストアンサー率72% (21/29)
回答No.3

>この場合、どの様に良いのでしょうか OpenQuery で実行している"更新"と言う名前の更新クエリの内容がわからないと、なんともいえません。

  • hegemon
  • ベストアンサー率72% (21/29)
回答No.2

>テーブルAを更新しています そうなると、 >データBの >データを更新してから このデータBはテーブルA上のレコードと言うことでしょうか? この場合、 >DoCmd.DeleteObject acTable, "データB" このacTableはテーブルAを指すということでいいですか? だとすると、DoCmd.OpenQuery で行われたトランザクションがコミットされているのかどうかが気になります。もし、このトランザクションがコミットされていないとすると、データBはロックがかかったままですから、DoCmd.DeleteObject による削除ははじかれてしまうはずです。

tompapa56
質問者

お礼

ありがとうございます >ロックがかかったままですから >DoCmd.DeleteObject による削除ははじかれてしまうはずです この場合、どの様に良いのでしょうか

  • hegemon
  • ベストアンサー率72% (21/29)
回答No.1

>DoCmd.OpenQuery "更新"でテーブルAを更新クエリを実行データBの >データを更新してから 句読点がないせいか、いまひとつ状況がはっきりしません。 「DoCmd.OpenQuery "更新"」で更新されたのは、テーブルAとテーブルBのどちらですか? それとも両方?

tompapa56
質問者

補足

テーブルAを更新しています よろしくお願いします

関連するQ&A

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

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

  • 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'] と出力され、エラーになります。どなたか、教えていただければうれしいです。 どうか、お願いします。

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

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

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

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

  • SendKeyで解決できないでしょうか?

    こんにちは。どうぞ、よろしくお願いします。 テーブル作成のクエリに関することです。 コマンドボタンのクリック時のイベントに テーブル作成クエリを指定しています。 其の場合、以下のような確認のダイアログボックスが出ますが、 これを出ないように、出来ないものでしょうか? (2つのダイアログボックス共に、"Y"を押下します。)   テーブル作成クエリを実行すると、   新しくテーブルが作成されます。   **** 件のレコードが新規テーブルにコピーされます。 -------------- クリック時のイベントに付いてですが、 SendKeyを使ってみましたが、上手く行きませんでした。 SendKeyはアクティブウィンドウについて作用するとのことなので、 フォームを閉じて…、などを考えて、次のような感じでやりました。 DoCmd.Close acForm, "フォーム名" DoCmd.DeleteObject acTable, "テーブル名" DoCmd.OpenQuery "作成クエリ", acNormal, acEdit SendKeys "y", True SendKeys "y", True DoCmd.OpenForm "フォーム名" DoCmd.DeleteObjectは、 テーブルを削除していないと上書きするかどうかを聞いてくるので、 削除しておこうと思い書きました。SendKeyでは、可能に出来ないのでしょうか? DoCmd.SetWarnings False も少し試しましたが、違うようですし。 それとも、簡単には解決できないようなことでしょうか。どうぞ、お願いします。

  • エクスポートエラーのテーブル削除

    お世話になります。 アクセス2000(Win2K)であるテーブル(T_テーブル)をExcelにエクスポートしているのですが、 この時にエクスポートエラーのテーブルが出来ます。 エラーの内容は承知しているのでこのエラーが出るのはいいのですがこのテーブル自体を削除したいのです。 SQLで「DROP TABLE T_テーブル_エクスポート エラー;」とクエリーを作って VBA上でOPENQUERYで上記SQLを実行しました。 ところがエクスポートとエラーの間のスペースが邪魔をして「T_テーブル_エクスポートが見つかりません」 とメッセージがでます。 どうしたらエクスポートエラーのテーブルを削除できるのでしょうか?

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

    お世話になっております。 以前、リンク先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を使って削除になるかと思いますが)、 実際、どのようにしたら可能でしょうか。 初心者につき、ご教示いただけると幸いです。 よろしくお願い致します。

  • アクセス2007 テーブルの全削除とデータ移動

    アクセス2007 テーブルの全削除とデータ移動 全テーブルを削除して、データをインポートしようとしています。 http://okwave.jp/qa/q5952603.html 以前の質問<QNo.5952603>の続きになってしまいますが。 >質問3. >削除後にインポートをしたいのですが。 >手動でアクセスメニュー>外部データ>アクセス(のインポート)>現在の~~>すべて選択(テーブル)>OK >これを実現するVBの記述は、どんなコードになるのでしょうか? 答え >DoCmd.TransferDatabase acImport, "Microsoft Access", strPATH, acTable, strTDef, strTDef, False なのですが、手動で行った場合の「オプション」>インポート「リレーションシップ=チェックON」の部分が 上記のお答えのコードで実現できませんでした。 各クエリの部分的なリレーションは残ってますが、全体のリレーション線が消えてしまいます。 どのようにしたら再現できますでしょうか?

  • エクセルからアクセスの更新クエリを実行するコード

    アクセスなら 自身のデータベースの更新クエリを実行する場合は DoCmd.OpenQuery "Q更新クエリ" で出来ますが、 エクセルから、 D:\Access.mdbの"Q更新クエリ"を実行するには どうすればいいのでしょうか? ADOを使うのでしょうか? ヴァージョンは2003です。 よろしくお願いします。

  • 実行時エラー 2001 直前の操作は取り消されまし

    アクセスVBAで DoCmd.OpenQuery "Qクエリ", acNormal を実行しようとしたら、 実行時エラー 2001 直前の操作は取り消されました。 と言うエラーになりました。 何が原因なのでしょうか?

専門家に質問してみよう