次の方法で共有

ナビゲーションフォームに検索結果画面を表示したい

Anonymous
2017-03-14T03:20:18+00:00

Access2013でデータ管理システムを作成しています。

この度初めてナビゲーションフォームを使ってみることに。

それまでは単独のフォームで検索ワードを入力し、結果が表示できるまでの動作を確認しました。

その後、今回このフォームをナビゲーションフォームに組み入れましたが、検索ワードを入力し検索ボタンを押下すると、ナビゲーションフォームの傘下ではなく、単独のフォームが表示されてしまい、ナビゲーションフォームの外へ出てしまったような形になってしまいます。

検索ボタンを押すと、下記の命令が実行されます。

Private Sub 検索_Click()

 DoCmd.OpenForm ”f_syoukaimoto", , , "病院名 like '*" & Me!紹介元病院検索名 & "*'"

End Sub

上記の場合ですと、単独で”f_syoukaimoto”フォームが表示されてしまうので、ナビゲーションフォームと一緒にに”f_syoukaimoto”フォームが表示できるようにならないでしょうか?

上手く説明ができませんが、宜しくお願いします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

9 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2017-03-22T23:51:02+00:00

    返信ありがとうございます。

    実際の環境を見てもらって説明ができたら、実現が可能だったかもしれませんが。。。

    これまでAccess2003を使って作成した経験があり、フォームを開いて閉じての繰り返しが必要がないナビゲーションフォームは便利で素晴らしいです。なので、何とか実現したかったのですが、私の能力では限界のようです。

    皆さんはどのように対応しているんだろう・・・・

    VBAフォーラムに、ちょっとお世話になってみようと思います。

    また機会がありましたら、宜しくお願いします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2017-03-22T05:23:14+00:00

    佐江内さん、こんにちは。

    書き込みをありがとうございます。

    前回ご案内した内容を行うのは難しい状況なのですね。

    書き込んでいただいた内容を確認したのですが、作成されている内容で「ナビゲーションフォームの中の特定のフォームがナビゲーションフォームと共に開く」というのを具体的にどのように記述したらいいかについてはご案内出来そうな情報が見つかりませんでした。

    せっかく詳細を書き込んでいただいたのにお役に立てずすみません...。

    この内容についてさらに情報を集めたい場合は、前回ご案内した [VBA フォーラム] に質問を投稿して情報を集められた方がいいと思います。

    よろしければご活用くださいね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2017-03-17T08:24:02+00:00

    お世話になります。

    自分なりに教えてくださった方法を試そうとやっているのですが、

    ”3. ナビゲーション フォーム上の検索ボタンを押下したら、検索用フォームを Requery する”が、どうにも上手くいきません。

    ナビゲーションフォーム名がnf_test、

    クエリー名がq_syoukaimoto_t、

    フォーム名がf_syoukaimoto_testです。

    nf_testの「検索」ボタンのイベントプロシージャは、

    Private Sub 検索_Click()

    Me.Controls(f_syoukaimoto_test).Form.Requery

    End Sub

    (このプロパティまたはメソッドをサポートしていません。)

    Private Sub 検索_Click()

    Forms!f_syoukaimoto_test.Requery

    End Sub

    (参照されているフォーム’f_syoukaimoto_test’が見つかりません。)

    Private Sub 検索_Click()

    Forms!nf_test!f_syoukaimoto_test.Requery

    End Sub

    (指定した式で参照されている’f_syoukaimoto_test’フィールドが見つかりません。)

    などなど試しましたが、ダメでした。

    できないものなのでしょうか。

    それとも私のやりたいことが伝わっていないのでしょうか。

    宜しくお願いします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2017-03-15T06:40:33+00:00

    ご回答有難うございます。

    大変助かります。

    しかし、、、、Access経験が浅いので、ネット等で参考にしながらコピペをして真似て作っている状況でして、せっかく方法を教えてくださったのですが、レベルが高いようです。

    詳細を説明させてください。

    ナビゲーションフォームには、「nf_mt」と名付けました。

    そこに複数のフォームをドラッグして組み入れました。(水平タブです。)

    そもそも検索画面ですが、基本はデータ入力画面と兼ねています。

    重複データの入力を未然に防ぐため、病院名をキーワードにして入力データを検索するようにしてあります。

    画面上部にテキストボックス(病院名)を用意し、その脇に「検索」ボタンを設置してあります。

    その下には、病院コードと病院名のテキストボックスがあります。

    用途は検索したデータ(病院コードと病院名)を表示させたり、新たにデータを入力する際には「追加」ボタンを押下してから、新規データを入力後「保存ボタン」を押下します。さらに間違ったデータを削除(削除ボタン)、途中で入力データを消す(取消)など、「削除」、「取消」、「追加」、「保存」の4つのボタン(機能)を用意しています。

    ここまではナビゲーションフォームを取り入れる前に、テストを済ませました。

    ナビゲーションフォームにフォームを取り入れてから動作確認すると、検索ボタン押下後、「f_syoukaimoto」フォームが表示され、せっかくのナビゲーションフォームから飛び出してしまいます。(それはそうですよね。「f_syoukaimoto」を開くようにと定義されていますから。)

    そこで、ど素人の私ができたらと思っているのが、

    DoCmd.OpenForm ”nf_mt!f_syoukaimoto", , , "病院名 like '*" & Me!紹介元病院検索名 & "*'"

    太字のように、1行にnf_mtのナビゲーションフォームとf_syoukaimotoのフォームを指定させれば、nf_mtのナビゲーションフォーム内に検索した結果画面(f_syouukaimoto)が組み込まれて表示できないのかなと。

    DoCmd.OpenFormはフォームを開く命令ですが、ナビゲーションフォームの中の特定のフォームがナビゲーションフォームと共に開くVBAの命令はありませんか。

    ナビゲーションフォームはドラッグするだけで出来上がり素晴らしいのですが、惜しいところです。

    サンプルがないと先に進めそうもありません。

    どうかお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2017-03-15T02:22:03+00:00

    佐江内さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    ナビゲーションフォームに検索結果を表示させたいのですね。

    検索ボタンを押した時に「DoCmd.OpenForm ”f_syoukaimoto", ...」という命令が実行されるとのお話ですが、それはフォームを開くコマンドですので、そのコマンドが実行されるのは正常な動作になります。

    ナビゲーション フォームのレイアウトが分からないので大まかな提案にはなるのですが、次のような方法を試してはいかがでしょうか。

    1. テキスト ボックス 紹介元病院検索名 の入力内容から 病院名を Like 演算子で検索するクエリを作る

    **2.**サブフォーム (検索用フォーム) のレコード ソースに、このクエリを設定する

    **3.**ナビゲーション フォーム上の検索ボタンを押下したら、検索用フォームを Requery する

    ※VBA を使用して作成する必要があると思いますので、詳細は [VBA フォーラム] に質問を投稿して情報を集めるといいと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません