• 締切済み

Access2003のコンボボックスで

テーブルにある ID 名前 誕生日 住所 データをフォームで IDをコンボボックスで選択し テキストボックスA,B,Cに 名前、誕生日、住所を表示させたいのですが どの様な処理を行なえばよろしいのでしょうか?

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

> ID 名前 誕生日 住所 がコンボボックスの列で、[ID] を連結列としているならば > テキストボックスA,B,Cに は保存しなくて良いのでしょうから、それぞれのコントロールソースに =dlookup("名前","テーブル名","id=" & me!コンボボックス名) =dlookup("誕生日",・・・ =dlookup("住所",・・・ とか =[コンボボックス名].[column](1) =[コンボボックス名].[column](2) =[コンボボックス名].[column](3) など

konbutarou
質問者

お礼

上手くできました! ありがとうございます。

回答No.1

コンボボックスの「値集合ソース」に、 テーブルまたはクエリーを連結させます。 テーブルの直連結より、クエリーを作ってかませたほうがいいと思います。 次に「更新後処理」のイベントプロシージャーで、 データベースより各項目「名前 誕生日 住所」 をフォームの項目に代入します。 ID更新後に、IDを使ってDBを読んで、各項目を拾います。 以下サンプルコード。 Private Sub ID_AfterUpdate() On Error GoTo Err_ID_AfterUpdate Dim criterion As String, mydb As Database, myset As Recordset Dim F As Form Dim msgtext As String Dim datedate As String Set F = Me criterion = "ID =" & F!ID Set mydb = DBEngine.Workspaces(0).Databases(0) Set myset = mydb.OpenRecordset("T_マスター", DB_OPEN_DYNASET) myset.FindFirst criterion If (myset.EOF) Or (myset.NoMatch) Then   msgtext = MsgBox("IDが見つかりません。" & Chr(13) & Chr(10) & _     "IDを確認して下さい!", 0, "IDなし") Else   F!名前 = myset!名前   F!誕生日 = myset!誕生日   F!住所 = myset!住所 End If Exit_ID_AfterUpdate:   Exit Sub Err_ID_AfterUpdate:   MsgBox Err.Description   Resume Exit_ID_AfterUpdate End Sub どうか、頑張って下さい。 コードをコピペすると、字下げがうまく行きません。 ごめんなさい。

konbutarou
質問者

お礼

長いサンプルソースまで書いていたただきありがとうございます。

関連するQ&A