締切り済みの質問
超に超を付けたいくらいの初心者です。よろしくお願い致します。
現在店舗情報が記載されている店舗テーブルがあり、もうひとつ営業受託を記録する受託テーブル(フォームも有り)があります。
そこで質問です、店舗テーブルにある店舗コードを受託フォームに入力すると、自動的にフォームにも反映される方法がないのか悩んでいます。
ご存知の方がいましたらどうかお助け下さい。
(補足)
受託フォームには店舗テーブルにある店舗コードを入力しています。
なのでクエリではつなぐ事が可能ですが、直接フォームに反映させたいです。
他に方法はあると思いますが、その他の方法を現在は考えておりませんの上記の方法でなにかございましたら宜しくお願い致します。
投稿日時 - 2010-02-09 15:50:18
0人が「このQ&Aが役に立った」と投票しています
回答(3件中 1~3件目)
ご苦労様です。
>自動的にフォームにも反映される方法
検索した店舗情報をフォームにどのように
表示されたいのですか。一軒の情報を
フォームに配置した情報分の数ほどの
テキストボックスに表示する、という
ようなことでよろしいのであれば、以下の
ようにする方法があります。
テーブル名をtbl店舗、フィールドを
店舗ID、店舗名。
フォームに検索用テキストボックスtx検索、
tx店舗ID、tx店舗名を配置します。それぞれ
非連結です。
Private Sub tx検索_AfterUpdate()
Dim db As database
Dim rs As Recordset
Set db = CurrentDb
Set rs = db.OpenRecordset("tbl店舗", dbOpenDynaset)
rs.MoveFirst
rs.FindFirst "店舗ID = " & Me!tx検索 & ""
If rs.NoMatch Then
MsgBox ("該当する店舗はありません。")
Else
Me!tx店舗ID = rs!店舗ID
Me!tx店舗名 = rs!店舗名
End If
rs.Close
Set rs = Nothing
db.Close
Set db = Nothing
End Sub
投稿日時 - 2010-02-09 18:16:24
お礼
ご回答ありがとうございます。
大変申し訳ありませんが、初心者中の初心者なもので、なにがなんだかさっぱりです・・・
せっかく教えて頂いたのに誠に申し訳ありません。
投稿日時 - 2010-02-15 18:41:59
1のsghです。
>合計500店舗以上あって選びきれません。
別に選ぶ必要はありません。
ACCESSのコンボボックスは直接入力が可能で、テキストボックスの替わりと
して代用できます。
また、存在しない店舗コードをチェックする意味でも利用価値が高いと思った
のですが...
どうしてもテキストボックスを使いたいのであれば更新後イベントでやること
とになります。
DAOを使った例
'[T_TENPO_CD]が店舗コードのテキストボックスの名前だった場合。
Private Sub T_TENPO_CD_AfterUpdate()
Dim DB As DAO.Database
Dim RS As DAO.Recordset
Dim StSQL As String
Set DB = CurrentDb
StSQL = "select 店舗名 from 店舗マスタ where 店舗コード='" & Me!T_TENPO_CD & "'"
Set RS = DB.OpenRecordset(StSQL)
'テキストボックス「t_tenpo_name」に値をセット。
If RS.EOF Then
Me!t_tenpo_name = "登録されている店舗はありません"
Else
Me!t_tenpo_name = RS("店舗名")
End If
RS.Close
Set RS = Nothing
Set DB = Nothing
End Sub
DAOを使った経験が無ければ、コンボボックス案が無難です。
投稿日時 - 2010-02-09 17:49:12
こんにちは。
やり方はたくさんあります。
1.「受託フォーム」の「店舗コード」をコンボボックスにする方法
2.更新可能な連結クエリにする方法
3.テキストボックス「店舗コード」の更新後イベントで処理する方法。
超初心者と言うことと、クエリではつなぐ事が可能ですが、直接フォーム
に反映させたいということから、1のコンボボックス案がおすすめです。
コンボボックス「店舗コード」のプロパティを以下の状態とします。
・名前:C_TENPO_CD
・コントロールソース:更新するテーブルのフィールド名
・列数:2
・列幅:見えるように (例:1cm;3cm)
・値集合ソース:例:select 店舗コード,店舗名 from 店舗マスタ order by 店舗コード
→ウイザードで店舗マスタを選択して下さい。
・連結列:1
店舗名を表示したいテキストボックスのプロパティを以下のようにすれば実現できます。
・名前:何でも良い
・コントロールソース:=C_TENPO_CD.Column(1)
→イコールから書いて下さい。
投稿日時 - 2010-02-09 16:48:28
補足
早いご回答ありがとうございます。
コンボボックスですが・・・合計500店舗以上あって選びきれません。
投稿日時 - 2010-02-09 16:50:42