某巨大掲示板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