• ベストアンサー

アクセス マクロのメッセージボックス

アクセス マクロのメッセージボックス マクロのメッセージボックスのメッセージ文に、フォームでフォーカスされているデーターを表示できませんか? 例えば メッセージ・・ [Forms]![フォーム名]![フィールド名]&"さんのデーターを削除しようとしています"~~~ ** 注意 ******************* *  ○×さんのデータを * 削除しようとしています *  よろしいですか? *  OK NO **************************** のような感じでできないでしょうか? 別フォームで作るしかないですか?

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

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

マクロの『メッセージボックス』アクションでも、フォームのデータを参照することは 可能ですが、この場合は  ・先頭への半角等号(=)の追加  ・その他の文字をダブルクォーテーション括り が必要になります。 【メッセージ内容が固定の場合の「メッセージ」引数】  ○×さんのデータを削除しようとしています 【「○×」の部分にフォームのデータを使用する場合】  =Forms!フォーム名!フィールド名 & "さんのデータを削除しようとしています"  ※「&」の前後には半角スペースが必要になります。 なお、個人的にちょっと気になったので試してみたところ、後者のように式を指定した 場合も、「@」によるメッセージのセクション分けが可能でしたので、合わせて参考まで。 (セクション分け:  「メッセージ」引数に「注意@削除します@よろしいですか?」と指定してみてください。  それぞれが改行表示され、1行目は太字になります)

situmonnsya
質問者

お礼

うっ! できました。感激してます。 ありがとうございます。

その他の回答 (1)

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>例えば メッセージ・・ [Forms]![フォーム名]! やってみましたか? できるはずですよ。

situmonnsya
質問者

お礼

やってみたのですが、できなくて・・。 再度やったらできました。 ありがとうございます。

関連するQ&A

  • Access マクロについて

    Accessのマクロについて教えてください。 仮テーブルに 管理コード(オートナンバー) 「あ」(Yes/No型) 「判定」(短いテキスト) があります。 仮テーブルを元に作成した、Aフォームで「あ」チェックボックスがTrueだったら「判定」フィールドに”OK” という文字を 上記のような処理はマクロではできないのでしょうか。 アクションカタログを見てもチェックボックスが〇〇だったら(IF)、までしか作成できないので。 フィールドに書き込むことはマクロでは難しいのでしょうか。 すみませんが、よろしくお願いします。

  • accessで条件毎にメッセージボックスを出すことは出来ますか?

    access2000を使用しています。 テーブルの1フィールドの中で条件に見合うデーターが1つでもあったら「データーがあります」、なかった場合には「データーはありません」というようにメッセージボックスなり、フォームを出せるのでしょうか? よろしくご回答の程、お願いいたします。

  • accessのコンボボックスのことで質問です。

    accessを勉強しているのですが、ちょっとしたことで分からなくなってしまいました・・。 質問の内容なのですが、まずフォーム上にコンボボックスAとコンボボックスBを配置するとします。 レコードソースには仮に[情報テーブル]というテーブルが選択されているとします。 コンボボックスAには[情報テーブル]のフィールド名が、 例えば[顧客NO]、[商品]、[値段]というフィールド名が入っているとし、フィールドにはそれぞれ10件ずつデータが入力されています。 そしてコンボボックスAで[顧客NO]を選択するとコンボボックスBに[顧客NO]の10件のデータが挿入され、選択できるようにしたいのです。 他のフィールド名を選んだときにも同じようにコンボボックスBにフィールドのデータが入るようにしたいと思っています。 コンボボックスAにテーブル名を入れることはできたのですが、 コンボボックスAで選択されたフィールドのデータを、コンボボックスBで選択できるようにするというやり方がわからないのです・・。 accessは2002を使っています。 よろしくお願いします。

  • アクセス マクロのつくりかたを教えてください。

    アクセスのフォームで、納品書フォームを作っています。”数量”x”単価”で”合計金額”コントロールをつくっているのですが、もしこの”合計金額”の金額が\1,000,000をこえた場合は”注意”というメッセージボックスをだし、そして、OKボタンを押せばそのまま処理でき、超えない場合は、そのまま入力できるように、マクロでのつくりかたの方法、もしくは解説のあるHP等を教えてください。お願いします。

  • Access2002のマクロ条件について

    WindowsXPでAccess2002を使用しています。 このたび、過去の方が作成されたAccessを修正することとなりました。 VBAを使用したものではない簡易なファイルですが、マクロの条件を変更しようとしても なかなかうまくいきません。どのようにすれば宜しいでしょうか。 ---------------- ≪現在の仕様≫ テーブル名:T#ZIP フォーム名:F#Select クエリ名:Q#Delete、Q#Import マクロ名:M#Create_Table (1)Access起動時(の設定)は「F#Select」というフォームが開く (2)下記マクロ「M#Create_Table」が実行される  マクロ1行目:下記条件のとき、マクロを中止する          [Forms]![F#Select]![CRTDATE]=Date()  マクロ2行目:テーブル「T#ZIP」のデータを削除するクエリ「Q#Delete」を実行する  マクロ3行目:テーブル「T#ZIP」にデータを追加するクエリ「Q#Import」を実行する ≪動き≫ 前提:「F#Select」の[CRTDATE]というフィールドには「T#ZIP」が更新された日が設定される その日初めてそのAccessを開くと、マクロにより削除クエリ~追加クエリが順番に実行された後、 フォーム「F#Select」が表示される。その後Accessを終了し、同日中に再度Accessを開いても マクロは実行されない --------------- 現在、追加するデータが多い場合、時間がかかりインポートが途中で失敗することがあるのですが 再度Accessを開いても既にインポート済みと判定されてしまい、自動的にはマクロは実行されない という課題があります。 インポートが失敗するとき、削除は完了しているため、テーブルデータは0件なので、 「その日に既にテーブルを更新済み かつ テーブルデータ件数が1件以上ある場合」 マクロを中止する、という条件を設定したいと思います。 そこで、マクロ1行目の条件欄に [Forms]![F#Select]![CRTDATE]=Date() And DCount("[T#ZIP]","*")>0 と記載したところ、その日最初のインポートはうまく行っている様子ですが、 マクロ終了後に突然Accessが終了したり、再度Accessを開いても「F#Select」が 全く表示されなくなったりと、うまくいきません。 バグというよりは、私の設定が悪いのだと思われますので、 ・フォーム[F#Select]の[CRTDATE]フィールドが Date()   かつ ・テーブル[T#ZIP]に1件以上でもデータがある 場合はマクロを中止する としたい場合の条件設定方法(入力内容)につきまして、どなたかおわかりの方 ご教示いただけますでしょうか。 何卒よろしくお願いいたします。

  • Accessのテキストボックスとコンボボックスの違い

    フォームにテキストボックスを3ケ用意し、テキストボックス名をtxt1,txt2,txt3としました。これにコマンドスイッチを作成し、機能を再クエリと設定しました。 フォームのサブフォームに再クエリの結果を表示するようにしました。 クエリのテキストボックス1の抽出条件は 条件  [Forms]![フォーム名]![txt1] または [Forms]![フォーム名]![txt1] Is Null    [Forms]![フォーム名]![txt1] Is Null テキストボックス2の抽出条件は 条件  [Forms]![フォーム名]![txt2] Is Null または [Forms]![フォーム名]![txt2]  [Forms]![フォーム名]![txt2] Is Null テキストボックス3の抽出条件は 条件  [Forms]![フォーム名]![txt3] Is Null または [Forms]![フォーム名]![txt3] Is Null [Forms]![フォーム名]![txt3] と設定し、テキストボックスにデータを入力し実行すると 正しい結果が得られるのですが、テキストボックスをコンボボックスに変更し、コンボボックス名をtxt1,txt2,txt3 とすると、抽出されません。 コンボボックスをテキストボックスのように扱うのには どうするのでしょうか。教えてください。

  • Access2003でコンボボックスからデータを抽出したい

    自己啓発でAccess2003を勉強しています。 Access2003でコンボボックスで名前を選択して、データ(住所)を抽出したものをリストボックスに表示させたいのですがどこがまちがっているかわかりません。こんなことで3週間ぐらい悩んでいます。 回答またはアドバイスをお願いします。 もしくはもっと簡単なやりかたがあればお願いします。 (1)「氏名」、「住所」のテーブルを作成。テーブル名は「01データ」 (2)「氏名」、「住所」のクエリを作成。クエリ名は「クエリ1」 (3)フォームでコンボボックスとリストを作成。フォーム名は「印刷」 ⇒コンボボックスの名前は「検索」。 ⇒値集合ソースはSELECT [01データ].ID, [01データ].氏名 FROM 01データ; これで「氏名」が選択できた。 (4)クエリの「氏名」抽出条件にLike [forms]![印刷]![検索] (5)検索するマクロを作成。マクロ名「M検索」 アクションは 全レコードの表示 フィルタの実行 ⇒Where条件は[Forms]![印刷]![検索]=[クエリ1]![氏名] (6)マクロ「M検索」をコンボボックスのプロパティ「イベント」タブから変更時に設定する。 (7)フォーム「印刷」を開き、コンボボックスで氏名を選択すると『クエリ1!氏名』と表示されてしまいます。 (8)フォーム「印刷」のリストボックスは全レコードが表示されている。

  • access2000でメインフォームからサブフォームへのフォーカスの移動の仕方

    access2000を使っています。 メインフォームのAというフィールドにコンボボックスからある項目を選択後,サブフォームのBというフィールドへフォーカスをマクロを使い自動で移動させたいと思っています。この際,コントロールの移動のコントロール名にはどのように入れればよろしいのでしょうか?また,そのマクロをどこに(更新後処理、フォーカス取得後、クリック時など)入れればよろしいのでしょうか? 分かる方いらっしゃいましたらよろしくお願いいたします。

  • Accessで簡単なアプリケーションを作っています。

    Accessで簡単なアプリケーションを作っています。 サブフォーム内のコントロールをダブルクリックした時に、フォームAを表示し、 入力した条件で別のフォームBを表示するというものです。 判らないのが、フォームAを表示した時に、フォームAにフォーカスが移らない(Activeにならない) ということです。 サブフォームをダブルクリックした時のイベントに DoCmd.OpenForm "フォームA" Forms!フォームA.フィールドY = Forms!元フォーム.フィールドX としていますが、その最後に、 DoCmd.SelectObject acForm, "フォームA" や Forms!フォームA!フィールドY.SetFocus などと追加してみたりしましたが、同じです。 ためしに、ダブルクリックでなく、クリックイベントにしてみると、フォーカスが移ります。 つまり、一旦移ったフォーカスがダブルクリックの2度目のクリックで、元のフォームに 移っているという当たり前といえば当たり前の動作のようです。 クリックでは都合が悪いので、ファンクションキーに割り当てればOKなのでしょうが、 これは仕方のないものなのでしょうか? (以前のAccessはこんな動作をしなかったような気がするのですが、CPUが早くなったせい なのでしょうか?)

  • VBAではなく、マクロでのフィルターのかけ方を教え

    accessのVBAではなく、マクロでのフィルターのかけ方を教えてください。 テーブル1には フィールド名:moji データ:テキスト型 文字列1 文字列2 ・ ・ ・ というデータがあります。 テーブル1を基にしたフォームには 画像のように、 コントロールソースにmojiを紐付けたテキストボックスを配置しました。 その際、マクロを実行して「文字列1」を抽出するフィルタの実行をしたいのですが マクロの作り方がわかりません。 マクロのアクションは「フィルタの実行」にしたのですが フィルタ名には何を入れればいいのでしょうか? とりあえずtestと入れました。 次に、Where条件式には [Forms]![フォーム1]![moji]="文字列1" といれました。 この時点ではエラーにならないのですが フォームを開いて、マクロ1を実行すると 「このウィンドウでは"ApplyFilter/フィルタの実行"アクションを実行できません。」 となってしまいます。 マクロの作り方を教えてください。