|
▼バリュー さん:
こんにちは。
T_千葉ロッテ
背番号 名前 ポジション
1 小坂 誠 内野手
2 バレンタイン 監督
9 福浦 和也 内野手
14 小宮山 悟 投手
18 清水 直行 投手
30 小林 雅英 投手
こんなテーブルがあったとします。
(主キー:背番号)
1.非連結フォームの例
F_非連結(フォーム)
背番号コンボ:コンボボックス
値集合タイプ:テーブル/クエリ
値集合ソース:SELECT T_千葉ロッテ.背番号 FROM T_千葉ロッテ;
名前ボックス:テキストボックス
ポジションボックス:テキストボックス
以上、フォーム上に3つのコントロールを配置します。
背番号コンボの更新後処理の右にある「...」をクリックして、
「コードビルダ」を選択してクリック。
Private Sub 背番号コンボ_AfterUpdate()
Me.名前ボックス = DLookup _
("名前", "T_千葉ロッテ", "背番号 = " & Me.背番号コンボ.value)
Me.ポジションボックス = DLookup _
("ポジション", "T_千葉ロッテ", "背番号 = " & Me.背番号コンボ.value)
End Sub
これでフォームに名前と背番号が表示されると思います。
フォーム「F_非連結」とテーブル「T_千葉ロッテ」は連結されていないため、
修正を加えた時にテーブルに書き込む処理を加えます。
まぁ、改名はあまり行わないとして、ポジションが変わったときの例です。
上記と同じように操作してポジションボックスの更新後処理に
Private Sub ポジションボックス_AfterUpdate()
Dim SQLCode As String
SQLCode = "UPDATE T_千葉ロッテ " _
& "SET ポジション = '" & Me.ポジションボックス.value _
& "' WHERE 背番号 = " & Me.背番号コンボ.value
DoCmd.RunSQL SQLCode
End Sub
これでポジションが修正されると思います。
2.連結フォームの例
フォームの「新規作成」⇒「オートフォーム単票形式」で
基になるテーブルまたはクエリの選択に「T_千葉ロッテ」を選択。
作成されたフォームをデザインビューで開きなおし、
検索コンボ:コンボボックス
値集合タイプ:テーブル/クエリ
値集合ソース:SELECT T_千葉ロッテ.背番号 FROM T_千葉ロッテ;
を追加。(フォームヘッダに配置するとそれらしくなります。)
現在はレコードセレクタによって全ての選手が参照できてしまうので、
検索コンボの値によってフィルタを掛けて絞り込みます。
上記と同じように検索コンボの更新後処理に
Private Sub 検索コンボ_AfterUpdate()
Me.Filter = "背番号 = " & Me.検索コンボ
Me.FilterOn = True
End Sub
これで絞り込まれたはずです。
今回は連結フォームなので、フォームに修正を加えるとそのままテーブルに反映されます。
>
>ACCESSがどんな言語からできているのか?
>VBもしくはVBAからできているのか?
>その点からわからず、
>参考書を見てそこに書いてある作業をしたら
>自分が行いたい動きをする開発になるのか?、、
>不確かながらも手探りで進めている状況です。
ACCESSでDB更新等を行う場合、VBAで処理を行うか
ACCESSの機能にある「マクロ」で処理を行うかになります。
この掲示板は「VBA質問箱」ということでマクロ処理は割愛させて頂きましたが、
「コードビルダ」でなく「マクロビルダ」を使用してマクロでも同じ事ができるかも
(すいません、確かめていないです…)です。
|
|