Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2013)
フォームに検索値を入力し一致した名前を表示したい
投稿日時: 18/09/04 15:12:50
投稿者: 花・花・花

初めまして。
最近accessの勉強を始めたものです。Excelの操作やVBAの知識は多少あります。
分からないことがあるので教えてください。
 
[ やりたいこと ]
フォームに検索入力用のテキストボックス(A)と検索値に一致した名前を表示させるための
テキストボックス(B)を作成しました。
参照検索用のテーブルは1つです。
(A)に顧客コード入力したら(B)に名前を表示させたいです。
(A)とはテキスト0のことです
 
[ やってみたこと ]
1.(B)のコントロールソースに=IIf([Forms]![F_顧客M].[テキスト0]=??,"名前","")
 ?には[T_顧客].[顧客CD]のようなものを入力しましたが名前は表示されませんでした。
 
2.選択クエリを作成し、
 フォームのレコードソースに抽出用クエリ名
 (B)のコントロールソースに名前(上記クエリフィールド名)
 コマンドボタンを作成し以下を記述しました。
Private Sub コマンド6_Click()
    DoCmd.OpenQuery "抽出用クエリ名", acViewNormal, acEdit
End Sub
フォームに検索値を入力してコマンドボタンを押した結果、
画面にクエリ結果画面(1レコードの全てのフィールド表示)が表示されました。(フォーム後ろに隠れた)
希望はフォームのテキストボックス(B)に名前を表示したいです。
 
希望するものを表示するためにどこを確認し修正すればよいでしょうか?

回答
投稿日時: 18/09/05 14:18:12
投稿者: sk

引用:
フォームに検索入力用のテキストボックス(A)と
検索値に一致した名前を表示させるためのテキストボックス(B)を作成しました。
参照検索用のテーブルは1つです。
(A)に顧客コード入力したら(B)に名前を表示させたいです。
(A)とはテキスト0のことです

そのフォームは、連結フォーム非連結フォーム
どちらなのでしょうか。

投稿日時: 18/09/05 15:54:45
投稿者: 花・花・花

skさま コメントありがとうございます。
 
いただいたご質問について、「非連結フォーム」です。
accessについては、分からないことばかりで「連結フォーム」と「非連結フォーム」の
違いを意識せずフォームを作成しました。
 
現状やりたかったことは、VBAを記述して表示できるようになりました。
DLookup や
(DoCmd.GoToControl & DoCmd.FindRecord)などで表示できました。
 
できれば今後のためにいろいろな方法を勉強したいと思っています。
こんな方法あるよ。というヒントでもかまいません。
よろしくお願いします。
 
質問の書き方が分かりにくい文章で申し訳ございません。

回答
投稿日時: 18/09/05 17:28:31
投稿者: sk

引用:
「非連結フォーム」です。

引用:
できれば今後のためにいろいろな方法を勉強したいと思っています。
こんな方法あるよ。というヒントでもかまいません。

それはそれぞれのフォームの用途によるでしょう。
 
例えば「ユーザーによって入力された[顧客CD]に該当する
[T_顧客]のレコード(の任意のフィールドの値)を表示させる」
だけに留まるのか、更に「任意のフィールド/コントロールの値を変更し、
そのレコードの内容を更新させる」ような機能( CRUD )を実装する
ところまで想定されているのか、といったことです。
 
引用:
できれば今後のためにいろいろな方法を勉強したいと思っています。
こんな方法あるよ。というヒントでもかまいません。

パラメータクエリをレコードソースとする帳票フォームを作成し、
 任意のイベントの発生時にフォームの再クエリを実行させ、
 パラメータに入力された条件に該当するレコードを抽出する。
 (イベントマクロ、またはイベントプロシージャ)
 
・帳票フォーム の Filter プロパティと FilterOn プロパティを制御して
 条件に該当するレコードを抽出する。
 
・コンボボックスの Column プロパティを介して
 値集合ソースの任意のフィールドの値を返す式を
 コントロールソースとする演算テキストボックスを作成する。
 
・DAO または ADO の Recordset オブジェクトを使用する。
 
など、挙げればキリがありません。
 
それぞれにメリットとデメリットがあり、どの方法を用いるべきかは
やはりそのフォーム/コントロールの用途次第です。
 
引用:
Excelの操作やVBAの知識は多少あります。

Excel における UserForm と同じ感覚で(非連結)フォームを
設計しようとするのではなく、まずは Access の連結フォームが
どういうものであるか、それを用いることで何が出来るのかを
知ることから始められることをお奨めします。

投稿日時: 18/09/06 08:29:33
投稿者: 花・花・花

skさま コメントありがとうございます。
 
頂いたアドバイス大変参考になりました。
フォームの用途(目的)によって、設計する必要があることを学びました。
また、フォームに表示させるための複数のヒントはこれから試してみたいと思います。
 
Access の連結フォームが どういうものであるか、それを用いることで
何が出来るのか、昨日調べて理解できました。
 
大切なお時間を割いてアドバイスをいただきありがとうございました。
 
これで解決とさせていただきます。