- ベストアンサー
アイコンとレコードを紐付ける方法
- アイコンとレコードを紐付ける方法について説明します。
- Accessヘルプデータベースにおいて、アイコンとレコードを紐付ける方法を解説します。
- Accessヘルプファイルにアイコンを配し、フォームを開くボタンをクリックすることで紐付いたレコードを表示させる方法について説明します。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
「Accessヘルプアイコン検索フォーム」のテキストボックスは非連結ですのでレコードソースは不要だと思います。「Accessヘルプクエリ」をレコードソースに設定しなければいいのではないでしょうか。
その他の回答 (9)
- kkkkkm
- ベストアンサー率66% (1733/2603)
アイコンというのがコマンドボタンにアイコンをセットしたものではなくイメージコントロール(画像)なのでしょうか、としたらアクティブにならないので以下のように変更してください。 なお、テーブルに該当するコントロールの名前がない場合にも同じエラーが出ます。 「イメージ1」はコントロールの名前です。_Clickの前にあるものをコピペしてください。 Private Sub イメージ1_Click() mDataSet ("イメージ1") End Sub Private Sub mDataSet(ByVal mIconName As String) Dim dbs As Database Dim qdf As QueryDef Dim rst As Recordset Set dbs = CurrentDb Set qdf = dbs.QueryDefs("Accessヘルプクエリコピー") With qdf .Parameters("検索ワード") = mIconName Set rst = .OpenRecordset End With With rst Me.テーマ.Value = !テーマ Me.内容.Value = !内容 rst.Close End With Set rst = Nothing Set qdf = Nothing Set dbs = Nothing End Sub
補足
ありがとうございます。私の設定不備「何もしていなかった・・・」で、テーブルに追加した「検索コーントロール」が未記入のままが原因でした。フィールドの「検索コントロール」へテーマの文言をそのまま記入したところ、非連結のテキストボックスに表示されました。コーティング「記述」の知識がゼロ「足踏み状態の原因」に等しい為、非連結のフォームに表示される事に気づきませんでした。申し訳ございませんでした。追っかけ質問で恐縮ですが、下記の件での対応は可能でしょうか。 1,関心事ですが・・・ 「Accessヘルプ一括検索フォーム」に配置したコマンドボタンで「Accessヘルプアイコン検索フォーム」を開くとパラメータ「(検索ワード)入力」画面がでて、何も入力せずOKを押すとAccessヘルプアイコン検索フォームが開きます。 2,希望ですが・・・ パラメータ「(検索ワード)入力」画面には入力しない為、「Accessヘルプ一括検索フォーム」に配置したコマンドボタンを押した段階でスルー「押した状態」は可能でしょうか。 以上、宜しくお願いします。
- kkkkkm
- ベストアンサー率66% (1733/2603)
アイコンすべてに設定してください。 No5に以下のように記載してます。再読してください。 Accessヘルプクエリ は抽出条件を[検索ワード]だけにします。 あとは必要なだけ Private Sub コマンドxxx_Click() mDataSet End Sub を作成していきます。 mDataSet はすべて同じです。
お礼
ありがとうございました。
補足
ありがとうございます。アイコンをクリックすると次のエラーアラートがでます。 「実行時エラー ’2113’ このフィールドに入力した値が正しくありません。」 根本的に間違っている様です。ご指摘、ご指導を宜しくお願いします。
- kkkkkm
- ベストアンサー率66% (1733/2603)
> コントロール名が入ったフィールドとありますが・・・。どの様に設定すれば宜しいでしょうか。 各々のコマンドボタンを押したときに結果を出したいのでしたら、[テーマ][内容]を表示したいレコードに各々のコマンドボタン名を入れるフィールドが必要です。そのフィールドをコマンドボタン名で検索してヒットしたレコードの[テーマ][内容]をテキストボックスに表示します。
お礼
すいません。質問に対する画像添付の方法が判らず、当初質問に添付「貼付け」してしまいました。申し訳ございませんが、そちらを参照願います。申し訳ございません。
補足
ありがとうございます。何度も申し訳ごぜいません。いま一歩全体像が把握できていませんので、画像添付にてオブジェクトを添付させて頂きます。ご批評、ご指導をお願いします。
- kkkkkm
- ベストアンサー率66% (1733/2603)
> こんなことどうでもいいと思いながら・ どうでもいいのでしたらこれ以上この件についてやる必要がないと思うのですが…。 とりあえず テーブルのコントロール名があるレコードを検索するという動きなので テーブル(名前):Accessヘルプテーブル「ID、テーマ、内容」 にコントロール名が入ったフィールドが必要です。 No4とNo5でやってることは ピクチャアイコン多数(コマンドボタンなのかどうか不明ですがコマンドボタンとして)を押したら、押されたコマンドボタンの名前をクエリの「検索ワード」にしてテーブルから一致するデータをクエリで検索し、その結果をテキストボックスに表示するという事です。 それがNo4とNo5のやり方で、双方とも結果は同じですが「非表示の非連結テキストボックス」が場所的に作成できないなどがあった場合を考えて別のやり方をNo5で出しているだけです。
お礼
ありがとうございます。つい、良かれと思って誤解を招く文言を記述したことを反省しています。改めてご理解を願えればと思います。さて、アドバイスにAccessヘルプテーブルのフィールド「ID、テーマ、内容」に、コントロール名が入ったフィールドとありますが・・・。どの様に設定すれば宜しいでしょうか。分かって当然のことかも知れませんが、ご指導願えませんでしょうか。宜しくお願いします。
補足
誤解です「> こんなことどうでもいいと思いながら・」。オブジェクトの名前など変更することより・・・・もっとやることがあるだろうと言われそうで。そういう意味で書きました。名前のことより考えることがあるんじゃない。と言われそうで。先へ進めないことを少しは気にしていることを伝えたかったのです。すいません。
- kkkkkm
- ベストアンサー率66% (1733/2603)
非連結テキストボックスを利用し Access検索フォーム Accessスヘルプテーブル Accessヘルプクエリ を利用する方法です。 Access検索フォームに結果を表示するための非連結テキストボックスを2個作成します。 名前は仮に[テーマ]と[内容]にします No4の非表示の非連結テキストボックス(名前を仮に"検索ワード"とします)は不要です。 。 Accessスヘルプテーブル はNo4と同じです。 Accessヘルプクエリ は抽出条件を[検索ワード]だけにします。 クエリを実行して[検索ワード]のパラメータ入力を求めるダイアログが出たら正解です。 実際に実行するときには以下のVBAでパラメータにクリックしたコントロール名が入るようにしています。 クリック時のイベントプロシージャに(コマンド1でしたら) Private Sub コマンド1_Click() mDataSet End Sub とし、同じところに 以下を一個だけ作っておきます Private Sub mDataSet() Dim dbs As Database Dim qdf As QueryDef Dim rst As Recordset Set dbs = CurrentDb Set qdf = dbs.QueryDefs("Accessヘルプクエリ") With qdf .Parameters("検索ワード") = Me.ActiveControl.Name Set rst = .OpenRecordset End With With rst Me.テーマ.Value = !テーマ Me.内容.Value = !内容 rst.Close End With Set rst = Nothing Set qdf = Nothing Set dbs = Nothing End Sub 元ネタは以下のサイトです https://tsware.jp/tips/tips_083.htm あとは必要なだけ Private Sub コマンドxxx_Click() mDataSet End Sub を作成していきます。 mDataSet はすべて同じです。
お礼
ありがとうございます。いきなり質問するのは気も引けますので、申し訳ございませんが考えるフリだけでもさせて頂きます「考えてみます・・・」。結局、根掘り葉掘りの質問になってもお許しください。宜しくお願いします。
補足
ありがとうございます。新たなフォームを開かずに検索結果をテキストボックスに表示させる方法に賛同です。データをどの様にテキストボックスに引っ張ってくるのかがイメージできず、完全に止まってしまいました。テキストボックスが参照する場所「クエリの抽出条件にしたりしてみました・・・」すら特定できていません。最初からお聞きすることに申し訳なく思っています。以下に取り組みの進捗を記載しましたが、アドバイスをお願いします。 [オブジェクト(一部名称変更しました:是非完成させたいと見直しました=こんなことどうでもいいと思いながら・・・)] テーブル(名前):Accessヘルプテーブル「ID、テーマ、内容」 クエリ(名前) :Accessヘルプ検索クエリ「ID、テーマ、内容、検索コントロール(抽出条件:[Forms]![Accessヘルプアイコン検索フォーム]![検索ワード])」 フォーム(名前):Accessヘルプ一括検索フォーム「Accessヘルプアイコン検索フォームを開くコマンドボタンを配置」 フォーム(名前):Accessヘルプアイコン検索フォーム「ピクチャアイコン多数配置、非連結テキストボックス(名前:テーマ)、非連結テキストボックス(名前:内容)」 [コーティング] Accessヘルプアイコン検索フォームに配置のコマンドボタンから(名前:重なったフォーム)を選び、クリック時のイベントからプロシージャを選択する。(1)mDataSetをコピー入力後と同時に(2)を直下にコピー入力する。 Option Compare Database (1) ------------------------------------------------- Private Sub 重なったフォーム_Click() mDataSet End Sub (2) ------------------------------------------------- Private Sub mDataSet() Dim dbs As Database Dim qdf As QueryDef Dim rst As Recordset Set dbs = CurrentDb Set qdf = dbs.QueryDefs("Accessヘルプ検索クエリ") With qdf .Parameters("検索ワード") = Me.ActiveControl.Name Set rst = .OpenRecordset End With With rst Me.テーマ.Value = !テーマ Me.内容.Value = !内容 rst.Close End With Set rst = Nothing Set qdf = Nothing Set dbs = Nothing End Sub 以上しか進めていません。
- kkkkkm
- ベストアンサー率66% (1733/2603)
午前中に回答したのですが、アップできてなかったのか審議中なのか出てこないので。 No3は非連結テキストボックスに対しての操作になります。連結でしたらクエリを連結させます。 Access検索フォームに非表示の非連結テキストボックス(名前を仮に"検索ワード"とします)を作成します Accessスヘルプテーブルにコマンド名(コマンドボタンのプロパティのその他で表示される名前です)を入れるフィールド(名前を仮にコントロールとします)を作成し、ボタンをクリックしたときに表示したい[テーマ]と[内容]が記載されたレコードと同じレコードに該当のコマンド名を入力します。 Accessスヘルプテーブルをもとにしたクエリを作成します。(仮にAccessヘルプクエリとします) コントロールの抽出条件に [Forms]![Access検索フォーム]![検索ワード] とします Access検索フォームのソースをAccessヘルプクエリにします。 クリック時のイベントプロシージャに(コマンド1でしたら) Private Sub コマンド1_Click() Me.検索ワード.Value = Me.ActiveControl.Name Me.Requery End Sub 以下必要なだけ作成します。 Me.検索ワード.Value = Me.ActiveControl.Name Me.Requery はすべて同じです。
お礼
ありがとうございます。少し球筋が変わるだけで足踏み状態になる程、脆弱な知識しかないと実感しています。いきなり質問するのは気も引けますので、申し訳ございませんが考えるフリだけでもさせて頂きます。結局、根掘り葉掘りの質問になってもお許しください。
- kkkkkm
- ベストアンサー率66% (1733/2603)
クリックしてテキストボックスに表示したいのでしたら クリック時のイベントプロシージャにアイコン1とかだと Private Sub アイコン1_Click() Me.テーマ.Value = "重なったフォーム" Me.内容.Value = "データを一覧で表示するフォームを開くボタン" End Sub 上記のようにして記述を変えて必要なだけ作成します。
お礼
ありがとうございました。
補足
ありがとうございます。ご面倒をおかけして申し訳ございません。ヒントテキストの利用「データベースを作成中であった為」は考えていませんでした。ただ、この機会に質問させて頂きました手法も知りたい気持ちが強くありました。早速、アドバイスを頂きましてありがとうございます。以下に試行検証の結果をご報告申し上げます。宜しくお願いします 一覧フォーム「帳票(ヘッダーに内容・詳細にIDとテーマ)」で試してみました。 Private Sub アイコン1_Click() Me.テーマ.Value = "重なったフォーム" Me.内容.Value = "データを一覧で表示するフォームを開くボタン" End Sub コマンドボタンをクリックすると該当レコードが検索されますが、レコードセレクタに編集のマークが表示され、アイコンをクリックする都度にレコードがコピー「追加」されます。これを回避する方法は有りませんでしょうか。
- kkkkkm
- ベストアンサー率66% (1733/2603)
No1の補足です。 ヒントテキストの設定は実際の操作をするボタン等に設定しておくとその場で確認できます。
お礼
ありがとうございました。ヒントテキストの利用「データベースを作成中であった為」は考えも付きませんでした。しかし、この機会に質問させて頂きました手法も知りたい「以前から・・・」と思っていました。宜しくお願いします。
- kkkkkm
- ベストアンサー率66% (1733/2603)
その全34個のアイコンのプロパティのその他でヒントテキストを設定「データを一覧で表示するフォームを開くボタン」等としてツールチップ表示させるのは駄目ですか。 例(テキストボックスですがアイコン「ボタン?」でも同じです) ヒントを表示させる https://www.feedsoft.net/access/guide-form/guidef76.html
お礼
ありがとうございます。
お礼
ありがとうございました。テスト用のDBで試行しておりましたので、本体のDBにすべて戻して体裁も整え完成となりました。イメージ設定アイコンには全てヒントテキストに正式名称を記入しました「イメージを探すときに便利な為でもあります」。今回、感慨深いものを感じましたので思い出話しをひとつ、会社勤めをしていた頃の話で恐縮ですが、同僚で年長者が居りまして、彼は月初になると必ず顔をしかめてパソコンに向き合っていました。集計業務のようでしたが半日以上かかる様でした。ある時、システム部員がその年長者に声を掛けました。困った顔をされてどうしましたか。システム部員「年長者と昼食仲間」の彼は年長者の話を聞きこう言いました。「30分程度時間を頂けますか」そう言うとその場を立ち去りました。そして、彼は約30分後に年長者の元へ戻ってきました。年長者のパソコンにACCESSをインストール後「ACCESSは申請が必要だった」、データ集計計算書なるフォームにデータ「エクセルデータ」を取り込みワンボタンで複数の集計「分類」を一度で終えてしまいました。苦しんで半日以上かかっていた作業がワンボタンで完全完了でした。目前でこの姿を見た私はACCESSを本気で取り組む様になりました。それまでは、使える様になろうとして断念、今年こそ使える様になろうと取り組んで断念、その繰り返しでした。まさに年長の同僚が今の私で、その時のシステム部員が貴方の様に写りました。今でも「企業では・・・」この様な事象は結構存在するのではないでしょうか。世の中、パソコンスクールなるものは結構あっても、ビジネス問題解決型「個人が抱えているレベルから経営者の課題レベルに至るまで・・・」を売りにしたパソコンスクールは聞きません。あってもいい様に思いますが。勝手なことを申しましたが、今回は本当にありがとうございました。
補足
ありがとうございます。取り急ぎご報告申し上げます。完璧に上手く動きました。ご面倒をおかけしましたことお詫び申し上げます。自身の知らないことの多さを改めて実感しました。勉強の大切さと、この世界でも知らないと世間では戦えないことも分かりました。勉強したいと思う気持ちを持ち続けたいと思います。まずは、現状のご報告です。ありがとございました。