• ベストアンサー

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

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

  • ベストアンサー
  • Nii
  • ベストアンサー率48% (79/162)
回答No.1

アクションクエリを実行時にメッセージの表示を抑制するには、DoCmd.SetWarningsを使用します。 DoCmd.SetWarnings False DoCmd.OpenQuery "作成クエリ", acNormal, acEdit DoCmd.SetWarnings True で表示されなくなります。 なお、クエリ実行後、表示をオンに戻すのを忘れないようにして下さい。

yama3desu
質問者

お礼

Niiさん、ありがとうございました。 解決できました。 > なお、クエリ実行後、表示をオンに > 戻すのを忘れないようにして下さい。 というのは、 DoCmd.SetWarnings True のことを指しているんですよね。 早速のご回答、本当にありがとうございました。m(_ _)m

その他の回答 (1)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 別の方法として、メニューの[ツール]→[オプション]→[編集/検索]タブ→[確認]の[アクションクエリ]のチェックを外す方法です。 コードで書く場合は、   Application.SetOption "Confirm Action Queries", False   DoCmd.DeleteObject acTable, "テーブル名"   DoCmd.OpenQuery "作成クエリ", acViewNormal   Application.SetOption "Confirm Action Queries", True となります。 ApplicationオブジェクトのSetOptionメソッドで、様々なオプションメニュー項目をVBAで設定出来ます。 なお、こちらの場合も、元に戻しておくようにします。(上記のメニューの場所から手動で戻すことは出来ますが。) SendKeysは使用しない方がいいです。

yama3desu
質問者

お礼

maruru01さん、ありがとうございました。 ・・・[アクションクエリ]のチェックを外す方法 を知りませんでした。不勉強でした。m(_ _)m お教えの方法でも、思ったとおりになります。 さて、どちらの手法を使おうかと、 今度は、別の悩みが出ております。(~o~) 本当にありがとうございました。m(_ _)m

関連するQ&A

専門家に質問してみよう