前提・実現したいこと
Accessのフォームに入力した値を基にデータを抽出し、それをサブフォームに表示させたい。
理想としては勤怠管理システムの管理者フォームを目指して作っています、
発生している問題・エラーメッセージ
・サブフォームに一件しか抽出されない。
・フィルターが上手く動作しない。
該当のソースコード
[T-社員]テーブル
フィールド名 | 型 | ???? |
---|---|---|
社員ID | オート | 主キー |
氏名 | 文字列 |
[T-勤務]テーブル
フィールド名 | ???? | |
---|---|---|
データナンバー | オート | 主キー |
出勤時刻 | 日付 | |
外出 | 日付 | |
再入 | 日付 | |
退勤時刻 | 日付 | |
有給 | 数値 | |
欠勤 | 数値 | |
社員ID | 数値 | 外部キー |
[F-勤務時間検索]メインフォーム:単票フォーム
[subsub]サブフォーム:帳票フォーム
サブフォーム・サブフォームコントロール(テキストボックス)ともに非連結状態です。
MsgBoxの時点では社員IDが正常に送られていましたが、抽出が上手く行えず引数として渡した社員IDと関係の無いレコードが一件だけ表示されます。(どの社員IDの値を引数として渡しても常に同じレコードが一件表示されます。)
VBA
1Private Sub コマンド41_Click() 2MsgBox Me.コンボ0 3 4 Call DataRead(Me.コンボ0) 5End Sub 6 7Function DataRead(Datakey As Long) 8 Dim oRS As Recordset 9 With Application.CurrentDb 10 Set oRS = .OpenRecordset("T-勤務", dbOpenDynaset) 11 12 oRS.FindFirst "社員ID=" & Datakey 13 14 Me!subsub.Form!出勤時刻.Value = oRS("出勤時刻").Value 15 Me!subsub.Form!外出.Value = oRS("外出").Value 16 Me!subsub.Form!再入.Value = oRS("再入").Value 17 Me!subsub.Form!退勤時刻.Value = oRS("退勤時刻").Value 18 Me!subsub.Form!有給.Value = oRS("有給").Value 19 Me!subsub.Form!欠勤.Value = oRS("欠勤").Value 20 21 oRS.Close 22 End With 23 24End Function
試したこと
試そうとしている事ですが、連想配列に一度代入し繰り返し文で記述を行おうとしています。(現時点で自力では難しそうですが。。。)
補足情報(FW/ツールのバージョンなど)
Access2016
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/14 09:49
2020/07/15 07:58