我三流

いろいろ自分なりにやってみたことを書いています

某巨大掲示板Access板で質問されていた課題

某巨大掲示板Access板で質問されていた課題を
やってみた。何に使えるのかよくわかんないけど...

基本ADOしかわからんからADO参照設定必須 & DAOの人は読み替えヨロ

フォームで
カレントレコードの日付と同一の日付の累計を
テキストボックスに表示する。

テーブル:T出納帳
ID 年月日    金額
1 2010/02/01 1000
2 2010/02/10 500
3 2010/02/01 1000
4 2010/02/12 300
5 2010/02/01 100
6 2010/02/10 100

標準モジュールに、
Option Compare Database

Public Sub 更新()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim MySQL As String, SQL1 As String
Dim MyID As Long

MySQL = "SELECT t1.年月日, t1.ID, Sum(t2.金額) AS 累計 " & _
"FROM T出納帳 AS t1, T出納帳 AS t2 " & _
"WHERE (((t2.年月日) = ([t1].[年月日])) And ((t2.ID) <= ([t1].[ID]))) " & _
"GROUP BY t1.年月日, t1.ID, t1.ID " & _
"ORDER BY t1.年月日, t1.ID;"

Set cn = CurrentProject.Connection
rs.Open MySQL, cn, adOpenStatic

MyID = Forms!F出納帳!txtID.Value
Debug.Print "MyIDは、" & MyID
rs.Filter = "ID =" & MyID
Do Until rs.EOF
Debug.Print rs!ID, rs!年月日, rs!累計
Forms!F出納帳!txt累計.Value = rs!累計
rs.MoveNext
Loop
rs.Clone: Set rs = Nothing: cn.Close: Set cn = Nothing
End Sub

フォーム:F出納帳
フォームヘッダーには、
テキストボックス:txt累計
コンボボックス:cmd実行
フォーム詳細には、
テキストボックス:txtID
テキストボックス:txt年月日
テキストボックス:txt金額

フォームF出納帳のcmd実行:クリック時イベントに

Private Sub cmd実行_Click()
Call 更新
End Sub