• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:コマンドボタンでレコードソースを変更)

コマンドボタンでレコードソースを変更する方法

chayamatiの回答

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

>「他の手段について」  一般的なやり方など、アドバイスがありましたらお願いします。 ★あなたの考え方に間違いないので、これを実現するには  どのようにするかで進めてきましたが、完了まで時間がかかりそうなので  「自分ならこうする」ということで説明します。  ゴメンなさい、今までのことは忘れて下さい >-------------------------------------------------------------------- ・クエリは出来上がっている ・一覧フォームにコマンドボタンを配して「昇順、降順、未設定」の3通りの表示を実現させたい。 ・対象DBの数「数十個」が多くできるだけ作業の負担を軽減させたい。 ・コマンドボタンをクリックした時点でフォームの並び替えに即反映の有無。 1.出来上がっているクエリにオートナンバー型のフィールドが有ればこれは除去して下さい。 2.テーブルもクエリも全てのフィールドに並び替え(昇順、降順)とフィルタの機能が備わっています 3.たいていのフォームはクエリが内包していますし、  今あるクエリをフォームのレコードソースにすることも出来ます 4.これが、本番の「自分ならこうする」です 4-1.クエリ名を保存するテーブル「TBLクエリ名」を作成(フィールドは重複なしのクエリ名一つのみ)  主キーに設定するとユニークなフィールドになりますが、フィールド名の訂正が出来ないので  フィールドのプロパティーのインデックスで重複なしと定義します。 4-2.空白のフォーム「メニュー」を作成し、ここへ「TBLクエリ名」を  レコードソースとするコンボボックスを配置しこのボックスのChainge(変更時)  イベントで該当クエり)を開くVBAを起動する  作成の流れ(殆どがクリックで進みます  [作成リボン]→[空白フォーム]→[コンボボックス]→[空白ホームのどこか]  →[次へ]→[TBLクエリ]→[選択したフィールドへ移動]→[次へ]→[次へ]→[完了]  →[ボックス外]→[右側のボックス]  →[その他タグ]→[名前欄のコンボ1をクエリ名と変更]→[左側のボックス]  →[書式タグの標題をクエリ名と変更]→[右側のボックス]  →[イベントタグの変更時の右端の…]  ここでVBAの基本形  Private Sub()  End Sub  が表示されます  →[Private Sub()の次の行に半角モードで docmd.と入力すると命令文の  続きがリストされます]→[Openquer]→[クエリ名と入力]  →[デザインビューを右上隅で閉じる]→[ファイル名をメニューと入力] 以上でメニューフォームの完成です。 5.ファイルを開いたときこのメニューフォームを開くように設定します  [ファイルリボン]→[オプション]→[現在のデータベース]  →[フォーム表示でメニューを選ぶ]→[OK] -------------------------------------------------------------------------- これでクエリが増えても直ぐ対応できますが、DBの数が多いような気がします。 種別等のフィールドを追加することでDBを統合できませんか

eokwave
質問者

補足

アドバイスを頂きまして有難うございます。ご指示の通り作業を進めましたが、異なる所「コマンド表示」がございました。以下のレベルで止まっていますので、ご理解を頂いてのアドバイス「この後の作業手順などですが・・・。」をお願いします。 [オブジェクト(新規作成)] テーブル名:TLBクエリ  フィールド名:クエリ名「オートナンバーフィールドなし」 フォーム名:メニュー「コンボボックス1個 = 名前:クエリ名」 [コンボボックス設定] コンボボックス「名前:クエリ名」→ イベント「変更時」→ コードビルダ  (アドバイスの記述では) Private Sub End Sub (実際に表示される記述では) Private Sub クエリ名_Change() End Sub 以上ですが、宜しくお願いします。

関連するQ&A

  • 一覧フォームのレコードの並び替え

    常々実現したいと思っている事として、一覧フォームのリアル並び替えがありました。軽薄な知識ならではの発想かもしれませんが、レコードソースが切り替えできれば可能になるかもと考えまして、相談させていただきました。 ●実現したいこと 一覧フォームにコマンドボタン「2個」を配してレコードの並び替えを実現したい。 ●実現のイメージ 1、オブジェクトのイメージ ・クエリを2つ作成「昇順用と降順用」する。 ・一覧フォームにコマンドボタンを2つ配する。 2,運用イメージ ・一覧フォームに配したコマンドボタン「2個」で昇順と降順をリアルに切替える。 ・デフォルトは昇順とする。「開くときは昇順のデフォルト表示」 ●対象の一覧フォームと構成 ・フォーム名 「F_入出庫入力」 ・レコードソース名「Q_入出庫入力」 ・並び替えキーフィールド「商品ID」 ◆希望(分からず勝手を申し上げます) 現状の構成を生かして「あまり作り変えないで」、希望「リアルに昇順表示と降順表示」を実現させたいと思っています。 以上ですが、宜しくお願いします。

  • 並び替えフィールドをコマンドボタンで変更したい

    帳票フォームを使ってデータを一覧表示していますが、フォームにコマンドボタンを配して、並び替えのフィールドを変更したいと思っています。 [データベースオブジェクト] ・テーブル名:偉人賢人テーブル「フィールド:ID、国、名前、分野、功績情報」 ・フォーム名:偉人賢人一覧フォーム ・レコードソース名:偉人賢人クエリ「名前フィールドの並び替え(昇順)」 ・クエリソース:偉人賢人テーブル [フォームの配置] ・詳細欄:ID、国、名前、分野 ・ヘッダー:功績情報 以上ですが、宜しくお願いします。

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

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

  • アクセスのデータの並び替え

    アクセスで、データを表タイプのフォームに出して、フォーム上で回数フィールドを昇順・降順でボタンを使って並び替えをしたいのですが出来ますでしょうか? 現在は、右クリックして並び替えています。 宜しくお願いします。

  • コマンドボタンがきかなくなる

    アクセスのフォーム上にコマンドボタンがいくつかあります。 たまにですが、コマンドボタンを押しても何も反応しなくなる時があります。 プロパティでクリック時に[イベント プロシージャ]と書いてあり、 VBE画面を見てみると ちゃんとイベントが記載してあります。 しかしフォームビューにしてそのコマンドボタンをクリックすると何も起きません。 新規にコマンドボタンを作って、vbe画面で同じイベントを張り付けると 新規のコマンドボタンのほうではクリックしてイベントが実行されます。 だから、その新規のコマンドボタンの名前を変えて使い続けるのですが、 しばらくするとほかのコマンドボタンがまたきかなくなる時があります。 これはアクセスのバグでしょうか? 原因がわかりません。 バージョンは2010です。

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

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

  • [ACCESS]フォームで、レコードを抽出して編集するには?

    ACCESS2003、初心者です。 納品テーブルを作成して、それをフォームで入力しています。 フィールドは、 ID,製品名,セイヒンメイ,メーカー,仕入先,単価,在庫数,残高 です。 納品テーブルのレコードを元にフォームを作成したいのですが悩んでいます。 (1).納品テーブルから、表形式で商品レコードを並べて表示させる (2).セイヒンメイでグループ化。 (3).セイヒンメイを昇順で並び替え (4).在庫数、残高を編集 (1)~(4)の作業を行いたいのですが、いろいろ試した結果、うまくできません。 テーブル作成クエリ→実行→在庫フォーム開く(この場合のソース元はクエリ) のパターンで可能だったのですが、フォームを開いた時にグループ化や並び替えを行う方がスマートなので実現したいのです。 もしくは、フォーム上でコマンドボタンを押せばグループ化や並び替えができればそれでも構いません。 いろいろ調べて、SQL(GROUP BYやHAVING)を使わないと駄目なようですが、どのようなコードを書いたらよいのでしょうか?

  • コマンドボタン

    よくわからないのですが エクセルのコントロールツールボックスのコマンドボタンだとイベントはたくさんあるけど、 フォームのコマンドボタンだとクリックボタンしかないのですか? フォームのコントロールはコントロールツールボックスの劣化版と言う感じですか? 添付画像の事です。

  • マクロを使ってコマンドボタンを実行するには

    お世話になります。 OSは、Windows 98 Second Edition アプリケーションは、Access 2000 です 下記作業の一連を簡素化したいのですが マクロを使うのが良いかと考えています。 1.データをインポート 2.レポート印刷 3.追加クエリ実行 4.削除クエリ実行 インポートはフォームのコマンドボタンから 実行できるようにして有ります。 追加、削除クエリも別のフォームのコマンドボタンから 実行できるようにして有ります。 マクロでフォームを開く、閉じるはできるのですが コマンドボタンの実行方法がわかりません。 どのアクションを選べばよろしいのでしょうか? よろしくお願い致します。

  • Access2002 のコマンドボタンでエラー

    Access2002でフォームを利用して表紙を作ろうとしているのですが、コマンドボタンを配置してフォームを開けるようにしたいと思っています。 クエリーも開けないので一度そのクエリーのフォームをつくりそれを開くためのコマンドボタンを用意しました。 ところがボタンを配置するごとの確認していくと途中でエラーが出てフォームを開けなくなります。 すると今まで開けたフォームも同様に開けなくなってしまいます。 Accessを使い始めたばかりの初心者ですが、どなたか教えて下さい。 また、Accessの仕組みは大体わかったのですが、顧客管理や商品管理など行ううえでステップアップしやすい参考書籍・webなどありましたら是非教えて下さい。 宜しくお願いします。