ひとつのコマンドボタンで2つ以上の機能を持たせたい

このQ&Aのポイント
  • ひとつのコマンドボタンで2つ以上の機能を持たせることは可能でしょうか。
  • Access2007、Windows10の使用環境で、Accessの操作の質問です。
  • Access操作検索総合フォームにおいて、絞込検索フォーム以外のフォームを開く方法について悩んでいます。
回答を見る
  • ベストアンサー

ひとつのコマンドボタンで2つ以上の機能を持たせたい

ひとつのコマンドボタンで2つ以上の機能を持たせることは可能でしょうか。「現状は2つの機能で充分ですが、関連する内容でもあり知りたいと思います」 「使用環境」  Access2007、Windows10 「やっていること」 Accessの操作の質問で「皆様から頂戴しましたドバイス情報」をデータベース化しております。データベースの検索方法は「絞込検索」「コンボボックス検索」「キーワード検索」「個別項目検索」の4つで行っています。4つの検索方法採用の理由ですが、かなり過去に教えて頂いた情報もあり、理解不足を伴う記載になっていて上手く検索できない事情からです。 「こまっていること」 Access操作検索総合フォーム(コマンドボタンが4つ)あり、その内の1つ「例えばフォームの(絞込検索)」が開いていて、他の「コンボボックス検索」「キーワード検索」「個別項目検索」の何れかに変更して開きたい時、現在開いている「絞込検索」フォームを移動させないと、変更する為のAccess操作検索総合フォームを確認できません(当然ですが)。 「やってみたこと」 1,Access操作検索総合フォームで「絞込検索」「コンボボックス検索」「キーワード検索」「個別項目検索」の何れのフォームが開いても常に最小化させる「組み込みマクロ(最小化)」設定をしました。 2,4つのコマンドボタンに関連付けられたフォーム「絞込検索」「コンボボックス検索」「キーワード検索」「個別項目検索」の全てに、ひとつのコマンドボタンを配し(作成)し、組み込みマクロの「クリック時」の設定にAccess操作検索総合フォームを「元のサイズに戻す」、ダブルクリック時にAccess操作検索総合フォームを「最小化」するの設定を行いましたが上手く行きませんでした。 マクロの操作は全て組み込みマクロで、プロシージャ―ではありません。宜しくお願いします。

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

  • ベストアンサー
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.4

VBAをもう一つ 基準日を入力して、基準日の変更イベントで 基準日の月初日を開始検索日に月末日を終了検索日に求めます メニューのデザインビューで [テキストボックスを作成]→[デザイン]→[基準日(基準日ラベルの右の非表示ボックス)] →[データタグの規定値欄右端の…]→[関数の左の+]→[組み込み関数]→[日付/時刻] →[dateをダブルクリック]→[OK] :フォームを開いたときに今日の日付 次行からVBAの記述に入ります(コーディングと呼ぶ) エクセルの 月初関数、月末関数有りませのでコーディングします。 →[Private Sub とEnd Sub の間の行に次の2行を追加します] 開始検索日 = 基準日 - Day(基準日) + 1 終了検索日 = 開始検索日 + 35 - Day(開始検索日 + 35) 続いてメニューを開いたときに 開始検索日、終了検索日を計算する処理をします →[コーディングシート上辺左の入力欄の右端のv]より 同じ命令文を入力して Private Sub 基準日_Change() 開始検索日 = 基準日 - Day(基準日) + 1 終了検索日 = 開始検索日 + 35 - Day(開始検索日 + 35) End Sub とします。 ラベルボックスでもイベントは有効です。 得意先登録フォームをラベルボックスで開いてみます {メニューをデザインビューで開く}→{デザインリボン}→{ラベル}→{得意先登録と入力} →{プロパティーシート}→{その他タブ}→{名前入力欄に得意先登録と入力} →{イベントタグ}→{クリック時欄右端…}→{コードビルダー}→{OK}→{次のコーディング} Private Sub 得意先登録_Click() DoCmd.OpenForm "得意先登録" End Sub 命令文「Docmd」は参考URLに使用例付きの説明があります。 次の得意先のコンボボックスから見積書の検索で一方的な説明を終わります。

参考URL:
http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html
eokwave
質問者

お礼

chayamati レベル11様へ 「Qのはしごはルール違反」のことを知りませんでした(ご指摘ありがとうございました。)。考えてみれば、自身で課題を発見して於いて研究すらしない姿勢で、全て質問「聞き取り」する姿勢は駄目ですよね。前回(データのコントロール)は課題取り組みでのご返事をいたしました。更に、今回(フォームのコントロール)も同様なご返事になり、敷居の高さを感じるとともに「chayamati レベル11様」との間「Okwave上」で完結出来なくて辛い選択となりました。尚、難易度は別にして自身でやりたいと思ったことであり、なんとしても完結させたいと思っています。私のわがままですいません。 その思いの原点ですが、社会人当時に我流でしたがAccessを仕事「私的」の道具として、職場の移動に併せて作り直し利用してきました。Accessを利用する様になった切っ掛けですが、ベテラン社員が丸一日かかっていた集計や分析の仕事「販売データ」を、若い社員が数分「Accessのツール作成に半日」で出来てしまった場面を見た瞬間でした。 その後、我流でしたがデータを入力しておいて検索するフォームを作成して仕事に役立て「作業時間の短縮」ました。更に、取引販売店への値引き額「キャンペーン等で変更が多く計算機と手作業が一般的でした」のフォームを作成して「作業時間」と「精神的な負担軽減」に利用しました。以上程度の我流利用でしたので、リレーショナルシップは聞いたり質問「あればかなり昔」したことがあったかもしれませんが、「chayamati レベル11様」もご周知の通り現在も全く使えていませんし使っていません。 現役時代「現在はリタイア」に感じていたことですが、今時の新入社員は実に苦労「心的」が多くて気の毒の様に感じておりました。新人と先輩とのスキル差「その会社の社員として」は当然ですが、苦労「肉体だけでなく心的な苦労を伴う」の多さが分野の広さに言えると思います。現役時代の後半では「訪問接客、パソコンの操作(提案書の作成、活動の履歴入力、稟議書)、その他」と覚えることが盛りだくさんです。新人の入れ替「退職に伴う第二新人等」えは凄まじいものでありました。学生の多くは無防備(会社が教えるのが当たり前)で社会人として突入してくるのが原因ですが、学生時代から入社する会社が決まっている優等生は別にして、、一般の学生ならそれは当然とも言えますので仕方がないですが。私、持論ですが社会人になってから教えてくれる塾が必要な感じがしています。chayamati レベル11様へ 若い方がキャリアを積む前に潰れてしまう「育ててきた親御さんからすれば・・・。」。実際に現役時代に年間十数人「新人に限らず全年代含む(現在は?)」の心的病者の長期療養者「入院者も含め」が居たと聞きました。「chayamati レベル11様」の様なスキルのある方なら救える人がいると思います。「事務職の定形作業(大手では個別個人的なものを除き不要なものも)及び非定型作業の自動化、日々作業の対応履歴の活用で対処時間の短縮(営業職や事務職で多いのが書類の探し出しと言われます)」とか、日々の活動の記録に基づく報告書の作成支援、成功事例「分析による項目化が必要ですが」のデータベース化による提案書の作成支援、対応のデータベース化で問合せ対応の即答回答の実現等、かなり多岐な分野での支援「行っている作業を分析し、Accessで可能な方策を探し指導する(ビジネス支援スクールみたいな)」が可能かと思います。貴方ならできそうです。 長くなりましたが、chayamati レベル11様にアドバイスを頂いて感謝しています。今回が切っ掛けで30項目「Accessアドバイス管理、購入品管理、資格かんり、他・・。」の見直しができました。日記などは記載しっぱなしで読み直す切っ掛けになりました。本当にありがとうございました。 本当にありがとうございました。「昔の人は言いました。(”努力に憾みなかりしか。)」。しかし、今回はお恥ずかしい限りです。しかし、ときには質問をお願いすることがあるかと思います。その時は、申し訳ないですが・・・・。宜しくお願いいたします。今回は醜態を晒してゴメンナサイ。

eokwave
質問者

補足

いつもお世話になります。体調不調(風邪)にてご返事が遅れて申し訳ございません。お恥ずかしい限りです。

その他の回答 (3)

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.3

VBAをもう一つ 基準日を入力して、基準日の変更イベントで 基準日の月初日を開始検索日に月末日を終了検索日に求めます メニューのデザインビューで [テキストボックスを作成]→[デザイン]→[基準日(基準日ラベルの右の非表示ボックス)] →[データタグの規定値欄右端の…]→[関数の左の+]→[組み込み関数]→[日付/時刻] →[dateをダブルクリック]→[OK] :フォームを開いたときに今日の日付 次行からVBAの記述に入ります(コーディングと呼ぶ) エクセルの 月初関数、月末関数有りませのでコーディングします。 →[Private Sub とEnd Sub の間の行に次の2行を追加します] 開始検索日 = 基準日 - Day(基準日) + 1 終了検索日 = 開始検索日 + 35 - Day(開始検索日 + 35) 続いてメニューを開いたときに 開始検索日、終了検索日を計算する処理をします →[コーディングシート上辺左の入力欄の右端のv]より 同じ命令文を入力して Private Sub 基準日_Change() 開始検索日 = 基準日 - Day(基準日) + 1 終了検索日 = 開始検索日 + 35 - Day(開始検索日 + 35) End Sub とします。 ラベルボックスでもイベントは有効です。 得意先登録フォームをラベルボックスで開いてみます {メニューをデザインビューで開く}→{デザインリボン}→{ラベル}→{得意先登録と入力} →{プロパティーシート}→{その他タブ}→{名前入力欄に得意先登録と入力} →{イベントタグ}→{クリック時欄右端…}→{コードビルダー}→{OK}→{次のコーディング} Private Sub 得意先登録_Click() DoCmd.OpenForm "得意先登録" End Sub 命令文「Docmd」は参考URLに使用例付きの説明があります。 次の得意先コンボボックスから見積書検索で一方的な説明は終了したいと思います。 記述漏れ、誤変換等のミスがあったかと思いますが、ご不明の点はあきらめず補足質問、新規Qで解決してください。自分もAccessのQには気を配ります。

参考URL:
http://www.geocities.jp/cbc_vbnet/kisuhen/docmd.html#gotocontorol
  • chayamati
  • ベストアンサー率41% (254/607)
回答No.2

専用の「メニュー」フォームを作成して、そのフォームにコンボボックスを作成。 コンボボックス作成時にフォーム名を登録してコンボボックスで検索する。 フォームにコマンドボタンを配して、クリック時のイベントにご指導のVBAを記入すればいいでしょうか。 --------------------------------------------------------------------------------------------------------------------- 少し違います。 専用の「メニュー」フォームを作成して、そのフォームに開始検索日と終了検索日配置して これらのテキストボックスの書式タブの書式を日付にします。この処理で日付はこのフィールドの右端よりカレンダー入力が可能になります [空のフォーム] →[テキストボックス]→[フォームの配置位置]→[次へ]→[次へ] →[ボックス名欄に開始検索日と入力]→[プロパティーシート]→[書式タブ] →[書式欄の右端のv]→[日付(s)] →[テキストボックス]→[開始検索日の次の位置]→[次へ]→[次へ] →[ボックス名欄にかいし終了検索日と入力]→[プロパティーシート]→[書式タブ] →[書式欄の右端のv]→[日付(s)]→[イベントタブ]→[終了検索日] →[フォーカス喪失時欄の右端…]→[コードビルダ] ここまぜで Private Sub 終了検索日_Exit(Cancel As Integer) End Sub とVBAの編集画面になるので間間行に DoCmd.OpenForm "見積書登録", , , "forms!メニュー!開始検索日<=日付 and forms!メニュー終了検索日>=日付" と入力します。 コンボボックスによる検索は得意先マスタ、商品マスタ等をデータ元にしたコンボボックスの変更時イベントより行います。

  • chayamati
  • ベストアンサー率41% (254/607)
回答No.1

今日はchayamatiです。 Qのはしごはルール違反のようですね 画像添付の図を添付します >「皆様から頂戴しましたドバイス情報」をデータベース化しております。 これのURL,テーブル内容等提示願います >マクロの操作は全て組み込みマクロで、プロシージャ―ではありません。宜しくお願いします。 VBAが必要です。 次は検索項目はフォーム「メニュー」に検索項目のテキストボックスまたはコンボボックスを配置してこのボックスのイベントで検索フォームを開く例です Private Sub 検索終了日_Exit(Cancel As Integer) DoCmd.OpenForm "検索結果", , , "forms!メニュー![検索開始日]<=日付 and 日付 <= forms!メニュー![検索終了日]" End Sub

eokwave
質問者

補足

本当にご面倒をお掛けしております。専用の「メニュー」フォームを作成して、そのフォームにコンボボックスを作成。コンボボックス作成時にフォーム名を登録してコンボボックスで検索する。フォームにコマンドボタンを配して、クリック時のイベントにご指導のVBAを記入すればいいでしょうか。宜しくお願いします。

関連するQ&A

  • access フォームのコマンドボタンをマクロ実行

    access97 フォームの中のコマンドボタンをひとつのマクロで実行したい お世話になります 上記表題のように現在access97をwindowsXP sp3で使用しています ここで例えば フォーム Aというフォームのなかに コマンドボタンBが 設置されているとします コマンドボタンBをワンクリックするとイベントプロシージャーCが実行されるとします お尋ねしたいのは ひとつのマクロDによって 上記 一連の操作をしたいのですが マクロをデザインビューで開きますと まず アクションにおいて フォームを開く 下左のダイアログに フォームの名称に コンボリストから Aを選択します 次に このコマンドボタンBを実行するために このマクロDのデザインビューにおいて 以下の行のアクションに どのように 入力したら よいものか 御教示願いたいです コマンドの実行 から できるかなと 思ったのですが 適切な項目がリストから 表示されません 御存じの方 宜しくお願い致します access97以降の新しいバージョンでのご解説でも参考になりますので 宜しくお願い致します

  • ACCESS コマンドボタンが使えない・・・

    フォームに配置したコマンドボタンが「現在このアクションを実行できません」のメッセージが出て使えなくなります。 マクロを割り当てて作ったコマンドボタンも同様で、「他の作業を実行しているためにこのアクションを実行できません・・」とメッセージが出ます。 最初、フォームを開いたときは問題なく使用できます。フォーム上のコンボボックスに入る値を、クエリから拾っているのですが、その値を別フォームで新規登録しようとするときに発生するみたいです。 他の作業を実行中とありますが、何を実行中で止まってしまうのか、調べる方法はないでしょうか? 良いお知恵をお貸し下さい。お願いいたします。

  • フォームを開くボタンを1個でコントロールしたい

    「やりたいこと、ご指導頂きたいこと」 1,現在の運用方法(下記)ではコマンドボタンが4個と多く、使いづらいのでコマンドボタンを1個で完結できる方法が知りたいです。 2,個人的なお願いですが「マクロ」で対応できる方法があれば、そちらでお願いしたいと思います。理由は、VBAのスキルが低レベルで話にならない為。但し、不可の場合は、可能な方法でご指導願います。 「現在の運用方法の紹介」 企業の連絡情報帳をアクセスで運用しています。尚、フィールドの数は10ありますが、質問内容には検索項目の4個を紹介させて貰っています。 運用の概要ですが、検索専用フォームにコンボボックスを4個つくり、コンボボックスで企業リストテーブルを参照させて希望のフィールド(会社名、製品名、商品名、得意技)を選択させています。選択後はコンボボックスの横に配したコマンドボタン4個を使って個別フォームを開いている。運用の背景ですが、絞込検索では都合が悪い事情がある為です。 「各オブジェクトの紹介」 1,テーブル名:企業リスト 2,フォーム名:検索専用フォーム(レコードソースなし) 3,コンボボックスの名前:会社名、製品名、商品名、得意技 ・企業リストの各該当フィールドを値集合ソースにて参照 4,企業リストクエリ ・会社名(検索専用フォームのコンボボックス「会社名」を抽出条件に) ・製品名(検索専用フォームのコンボボックス「製品名」を抽出条件に) ・商品名(検索専用フォームのコンボボックス「商品名」を抽出条件に) ・得意技(検索専用フォームのコンボボックス「得意技」を抽出条件に) 5,フォーム名 ・会社名検索結果(レコードソースに会社名クエリ参照) ・製品名検索結果(レコードソースに製品名クエリ参照) ・商品名検索結果(レコードソースに商品名クエリ参照) ・得意技検索結果(レコードソースに得意技クエリ参照) 以上ですが、他に細かな設定(ファイル操作・選択文字の選択後の消去・等々)もありますが割愛して居ります。どうか宜しくお願いします。

  • アクセスのコマンドボタンについて

    アクセスについて教えて下さい。 コマンドボタンで、フォームのデータをワンクリックで開くように設定したいのですが、コマンドボタンウィザードを使って、 フォームの操作→フォームを開く→フォームを指定 という操作でボタンを作りました。 ですが、ボタンをクリックして操作しようとすると、 「イベントプロパティに指定した式 クリック時 でエラーが発生しました:名前が適切ではありません:(フォーム名)_Click   *マクロ名、ユーザー定義関数名、「イベントプロシージャ」以外の式が指定されています。   *関数、イベント、マクロの評価でエラーが発生しました。」 というメッセージが出てきて、フォームを開くことができませんでした。 ウィザードだけではフォームを開くボタンを作成することはできないのでしょうか? 何か対処があれば教えて下さい。 よろしくお願いいたします。

  • コンボボックスの入力表示の消去

    アドバイスをお願いします。 [知りたいこと] 検索ボックス(コンボボックス)で検索した値を合致フォーム(フォーム)で開くとき、一緒に検索ボックス(コンボボックス)の値(入力表示)もクリアにしたい。 [セット条件] ・コンボボックス名:検索ボックス ・検索結果フォーム名:合致フォーム ・合致フォームを開くコマンドボタン名:開くボタン [お願い] 現在は、コマンドボタンをイベントのマクロでフォームを開くで設定している。コマンドボタンでフォームを開く設定をコードビルダで記述するスキルがない為、マクロで可能でしたらマクロで教えていただけませんでしょうか。マクロがダメなときはコードビルダでお願いします。勉強しますので。 以上ですが、宜しくお願いします。

  • Excelのコマンドボタンでアクセスのデータを返す。

    Excelのブックに2シートあります。 シート1にはコンボボックス商品を選択させる行が複数あります。 シート2には、商品名がずらっと並んでいます。 (その商品名をシート1のコンボボックスで選択) シート1上にコマンドボタンを設定して、 コマンドボタンを押すと、アクセスのクエリで 抽出したデータ(商品名)を返したいのです。 マクロに外部データの取り込み→アクセスクエリ→ シート2の行にデータを返す。 事はできましたが、それをコマンドボタンに 上記マクロを書き込むことはできるのでしょうか? 表現が下手ですみません。。 よろしくお願い致します。

  • PowerPoint VBAコマンドボタンでのマクロ

    PowerPointでVBAを使ったフォームを作製しました。 そのフォームを表示させるためマクロを書き、スライド上に コマンドボタンを配置させマクロを実行させたいと思っています。 ExcelのVBAですとコマンドボタンにマクロを割り当てるのは ツールバーのフォームのコマンドボタンで設置すると簡単ですが PowerPoint VBAですとコントロールツールボックスでのコマンド ボタンしかなくボタンにマクロを割り当てる方法が分かりません。 どなたかコマンドボタンにマクロを割り当てて実行する方法を 教えて下さい。 宜しくお願い致します。

  • VBAの記述でフォームを操作させたい

    検索用フォームに検索結果表示用のボタンを配して利用しています。私のスキルのレベル問題から全てをマクロ操作で行える様、皆様からアドバイスを頂きまして使える様にはなりましたが。しかし、マクロのイベント欄の左に警告マークが表示(固定表示)されますので、早急に表示されない方法で使用したいと思っております。誠に勝手申しますがアドバイスを頂けませんでしょうか。 [操作したいフォームの構成とVBA記述で実現したいこと] 1、検索用フォームの構成 ・検索用フォーム名:検索Aフォーム ・検索結果フォーム表示用ボタン名:スタート ・コンボボックス名:コンボa、コンボb、コンボc ■やりたいこと 「検索Aフォームに配したコマンドボタンを使って」 a、検索Aフォームの最小化 b、結果Aフォームの表示 c、コンボボックスの入力表示を消去 2、検索結果フォームの構成 ・検索結果フォーム名:結果Aフォーム ・検索用フォーム表示用ボタン名:バック ※結果Aフォームの参照クエリ名:検索クエリ ■やりたいこと 「結果Aフォームに配したコマンドボタンを使って」 a、検索Aフォームを元のサイズに戻す b、結果Aフォームの最小化 既にマクロで作ったフォームのVBAを探してみましたが、マクロで作成したコマンドボタン名やコンボボックス名が見つけられない等を経験しました。自身でよく使うマクロの記述を教えていただければ、逆引き感覚で少しは早く覚えられるのではと思っています。以上ですが、宜しくお願いします。

  • コンボボックスのボタンの大きさについて

    Microsoft Accessのフォームにツールボックスからコンボボックスを配置しました。 表示される文字を大きめにしようとコンボボックスのサイズを変更したら右の ボタン[▼]が小さくなってしまいました。 ボタンのサイズをコンボボックスの高さとあわせるには何らかの操作が必要なのでしょうか? ご存知の方教えてください。

  • コマンドボタンでレコードの移動

    いつもお世話になります。ACCESS2010を使用しておりますが、使い勝手に影響する細部に対する対応ができておりません。下記の内容をマクロで改善できればと考えておりますので、宜しくお願いします。 <現状> フォームの検索で複数ヒットしたとき用に、フォームにコマンドボタンを配して、マクロでレコードの移動を設定しております。レコードは次のレコードを選択で設定。 <感じている不具合> フォームの検索で5データヒットのとき、コマンドボタンを押していくと5つ目のデータを通り越して押せます。勿論ですがフォームはデータなしの空です。 <運用での希望> ヒットしたデータ分だけコマンドボタンで移動したら次へ進めない方法はないのでしょうか。 以上、宜しくおねがいします。

専門家に質問してみよう