我在SQL中发出以下查询并且工作正常
SELECT SUM(goudOpkoop.winst)
FROM goudOpkoop
WHERE goudOpkoop.date
BETWEEN '2015-1-10' AND '2015-1-22'
我希望在 Textbox 3 (名称Text183)中的表格中有两个日期的最后一个,一个在 Textbox 1 (名称Text179)和其他日期在文本框2(名称Text181)已被选中。
我想我需要为 Textbox 2 使用AfterUpdate
代码构建器,并在那里发出查询以最终在 Textbox 3 中显示结果。
我已经与SQL服务器链接。
信息:ODBC; DSN = Essence Test ;; TABLE = goudOpkoop
在我不是VBA的专业人士时,我不知道如何让这个工作。
答案 0 :(得分:0)
没有经过测试,但应该稍微做一点,除非我写了一个错字。
在“短日期”中更改2个日期文本框的格式,这样您将拥有日历选择器,并确保您的日期格式正确
在表单模块中创建此子目录:
Private Sub CheckSUM()
Dim RST As Recordset
Dim SQL As String
' Reset the result textbox
Text183.value = ""
' If your 2 date textboxes are not populated, cancel
If Text179.Value = "" or Text181.Value = "" Then Exit Sub
' Prepare the query, with proper formating of the dates
SQL = " SELECT SUM(goudOpkoop.winst) AS mySum " & _
" FROM goudOpkoop " & _
" WHERE goudOpkoop.Date " & _
" BETWEEN '" & Format(Text179.Value, "YYYY-MM-DD") & "' " & _
" AND '" & Format(text181.Value, "YYYY-MM-DD") & "'"
' Execute the query
Set RST = CurrentDb.OpenRecordset(SQL)
' If the query is valid and returned something, we recuperate the value
If Not RST.BOF Then
Text183.Value = RST!mySum
End If
' Cleaning
RST.Close
Set RST = Nothing
End Sub
然后,对于您的2个日期文本框,创建 afterupdate 事件并调用其中的上一个子项:
Private Sub Text179_AfterUpdate()
CheckSUM
End Sub
Private Sub Text181_AfterUpdate()
CheckSUM
End Sub