Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8056 / 9994 ←次へ | 前へ→

【5119】Re:続 フォーム作成
回答  小僧  - 05/5/26(木) 14:32 -

引用なし
パスワード
   ▼バリュー さん:
こんにちは。

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質問箱」ということでマクロ処理は割愛させて頂きましたが、
「コードビルダ」でなく「マクロビルダ」を使用してマクロでも同じ事ができるかも
(すいません、確かめていないです…)です。
279 hits

【5112】続 フォーム作成 バリュー 05/5/26(木) 13:17 発言
【5119】Re:続 フォーム作成 小僧 05/5/26(木) 14:32 回答

8056 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078264
(SS)C-BOARD v3.8 is Free