• ベストアンサー

ACCESS 開いている表を閉じるには右上のX(バッテン)をクイックしますが、これをVBで操作するには?

先日、クエリをVBで実行するには こんな風に↓やる、と聞いたのですが DoCmd.OpenQuery "myクエリ1", acViewNormal, acEdit http://oshiete1.goo.ne.jp/qa2661049.html 例えば、myクエリ1、が画面に表示するクエリだったりすると 今度、画面に表示された、表を閉じるには VBで操作するには、どうするのですか よろしくお願いします

  • maaaa
  • お礼率91% (330/362)

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

  • ベストアンサー
  • arimama
  • ベストアンサー率50% (6/12)
回答No.1

 自分自身を閉じるなら「Docmd.close」のみでOKです。Closeアクション参照。 DoCmd.Close [objecttype, objectname], [save] です。

maaaa
質問者

お礼

なるほどわかりました ありがとうございました 助かりました

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

一つしか開いてない状態なら DoCmd.Close 複数開いてるなら DoCmd.Close acQuery, "myクエリ1"

maaaa
質問者

お礼

早急な回答ありがとうございました おかげさまで助かりました ポイントをつけて締め切るは、は適当です(2人しかないので) あしからず

  • bardfish
  • ベストアンサー率28% (5029/17765)
回答No.2

DoCmd.Close acQuery, "クエリ1", acSaveNo とします。 DoCmdメソッドは、マクロで出来ることは全て出来るはずなので迷った時はマクロを開いて探してみてヘルプを表示すると簡単です。

maaaa
質問者

お礼

ありがとうございます >・・・迷った時はマクロを開いて・・・ という、アドバイスはとても参考になりました ありがとうございました

関連するQ&A

  • ACCESSでクエリをVBで実行するには

    例えば、クエリ:myクエリ1、のクエリを作りました myクエリ1、は単純にテーブル:myTable1、を表示するもの データベースウィンドウのオブジェクト=クエリを開くと  myクエリ1、が表示されています なので、データベースウィンドウのメニューバー  に、開く、コマンド、がありますが  myクエリ1、を選択しておいて、  開く、コマンド、を実行すると、myクエリ1、が実行されます さて、このmyクエリ1、を、  モジュールの中、つまり、VBで実行するには  どのように書くのですか? よろしくおねがいします

  • SubではなくFunctionで作られる理由

    access2007を使っています。 素朴な疑問なのですがマクロを変換した時はなぜ Subプロシージャーではなく、Functionなのでしょうか? 「クエリを開く」と言うマクロを、VBAに変換したところ ******************************************************* Function マクロ1() On Error GoTo マクロ1_Err DoCmd.OpenQuery "クエリ1", acViewNormal, acEdit マクロ1_Exit: Exit Function マクロ1_Err: MsgBox Error$ Resume マクロ1_Exit End Function ******************************************************* となりました。 戻り値や返り値はないものは、FunctionプロシージャーではなくSubプロシージャーで作るものと思っていたのですが なぜ上記のコードはFunctionなのでしょうか? Functionで作る理由を教えてください。 特に意味はないのでしょうか? ちなみにFunctionをSubに書き換えて実行したら問題なくクエリが開きました。

  • アクセス2000でVBAを使ってクエリを実行したいのです

    Access2000でVBAを使っています。 Docmdでクエリを実行させたいのですが、 DoCmd.OpenQuery stDocName1, acNormal, acHidden とするとクエリの実行結果が表示されます。 クエリだけ実行されて実行結果を非表示にする方法は ありますでしょうか? Form1のコマンドボタンを押下後、クエリが実行されて 別のFormにデータ表示させたいので、なるべくクエリの実行結果を表示させたくないのです。 よろしくお願いいたします

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

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

  • 【アクセスVBA】テーブルにフィルタをかけたい

    Sub マクロ() DoCmd.OpenTable "Tテーブル", acViewNormal, acEdit DoCmd.ApplyFilter , "番号 = '123'" End Sub Tテーブルを開き、フィルタをかけたいのですが テーブルを開くまではできるのですが、 フィルタをかける行では 『ApplyFilter アクションの実行はキャンセルされました。』 になってしまいます。 DoCmd.OnFilter , "質問番号 = '0'" でもエラーになり、コードの実行すら行えません。 フォームではなくテーブルにフィルタをかけるにはどうすればいいでしょうか? よろしくお願いします。

  • Access97でのエクスポートエラーメッセージ

    OS WINXP Excel2002 Access97で、下記の操作をやると、 Microsoft Visual Basic 実行時エラー ’1004’:’講習会資料.xls’にアクセスできません。 というメッセージがでます。 再起動してやるとエラーにはならないのですが、もう1回やるとまた エラーメッセージがでます。 EXCELのファイルが何かおかしいのでしょうか? 教えてください。 Private Sub 講習会収支明細_Click() DoCmd.SetWarnings False DoCmd.Maximize If gOnErrorCtl Then On Error GoTo Err_講習会収支明細_Click Dim sh DoCmd.OpenQuery "Q_総会資料用", acViewNormal, acReadOnly DoCmd.OpenQuery "Q_借方仕訳伝票一覧印刷用", acViewNormal, acReadOnly DoCmd.OpenQuery "Q_貸方仕訳伝票一覧印刷用", acViewNormal, acReadOnly DoCmd.OpenQuery "Q_講習会資料残高用", acViewNormal DoCmd.TransferSpreadsheet acExport, 5, "T01_講習会資料残高用", "c:\講習会会計\講習会資料.XLS", True sh = Shell("C:\Program Files\Microsoft Office\Office10\EXCEl c:\講習会会計\講習会資料残高用.XLS", 1) DoCmd.SetWarnings False DoCmd.OpenQuery "Q_講習会収入残高用", acViewNormal DoCmd.TransferSpreadsheet acExport, 5, "T02_講習会資料残高用", "c:\講習会会計\講習会資料.XLS", True Exit_講習会収支明細_Click: Exit Sub Err_講習会収支明細_Click: MsgBox Err.Description Resume Exit_講習会収支明細_Click End Sub

  • 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 も少し試しましたが、違うようですし。 それとも、簡単には解決できないようなことでしょうか。どうぞ、お願いします。

  • VBでのExcel操作

    VB6.0を使用してExcelを操作するプログラムを作成しています。 Excelブックを全画面表示させて、右側に小さめのフォームを表 示させるのですが、Excelブックの方をクリック(アクティブ) したときにもフォームがExcelの手前に見えている状態にさせる にはどうしたらよいのでしょうか? いろいろ試みましたが、どうしてもフォームが後ろにいってしま います・・・。

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

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

  • ACCESSでセキュリティ警告が出る事象について

    ACCESSでセキュリティ警告が出る事象について、アドバイスをお願いします。 やりたいことは、以下4点です。 (1)CSVファイル「C:\temp\File1.csv」をテーブル「T_File」としてインポートする。 (2)クエリ「データ確認」を表示する (3)表示したクエリ「データ確認」をエクスポートする。 (4)エクスポートしたメッセージを表示する ※週ごとに実行したいので、最初にテーブル「T_File」を削除します。 フォームに設置したコマンドボタンを押すことで実行させたいと思っています。 理由は、インポートするCSVファイルがデータ項目の並びなど複数のパターンがあるためで、インポート定義を複数作成して、コマンドボタンを複数設置するつもりです。 以下が、1つのコードです。 -------ここから-------- Private Sub コマンド0_Click() On Error GoTo Err_コマンド0_Click DoCmd.OpenQuery "Q_Del", acViewNormal, acEdit DoCmd.TransferText acImportDelim, "File1定義", "T_File", "C:\temp\File1.csv", False, "" DoCmd.OpenQuery "データ確認", acViewNormal, acEdit DoCmd.OutputTo acQuery, "データ確認", "MicrosoftExcelBiff8(*.xls)", "C:\temp\データ確認.xls", False, "", 0 MsgBox "データを 『 C:\temp 』 に出力しました。", vbInformation, "データ出力終了" Exit_コマンド0_Click: Exit Sub Err_コマンド0_Click: MsgBox Err.Description Resume Exit_コマンド0_Click End Sub -------ここまで-------- なんとか思ったように動いているのですが、超初心者が見よう見まねで作成したためか、ACCESSを起動しようとしたり、最適化すると下記のようなメッセージが表示されます。 -------ここから-------- セキュリティ警告 このファイルに、意図的にお使いのコンピュータに損害を与えるコードが含まれる場合、ファイルは安全でない可能性があります。 -------ここまで-------- ここで、質問です。 私が書いたコードは、いろいろ調べてコピーして張り付けたものなので、何か書き方が違っていたり、足りないコードがあるのでしょうか? もしくは、下記URLにあるようにセキュリティレベルを変更するかデジタル署名を使用することで回避できるのでしょうか? http://support.microsoft.com/kb/884310/ja このACCESSを他の事務所の方に展開して利用してもらおうと考えているため、セキュリティ警告が出ないようにしたいと思っています。 (みんなに嫌がられるので・・・) 超初心者のため、どのように伺えばいいのか難しく、表現がおかしかったり言葉足らずのことがあればご指摘ください。 良いアドバイスをお願いいたします!

専門家に質問してみよう