我正在使用此代码获取列日期为今天日期的列中的最后一个数字:
cn.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\bysys.mdb")
rs.Open("Select max(snum) From tblbill where idate = #" & Format(Today.Date, "dd/MM/yyyy") & "# ", cn, 1, 2)
If IsDBNull(Rs.Fields(0).Value) Then
TextBox6.Text = 1
Else
TextBox6.Text = Rs.Fields(0).Value + 1
End If
有时候它可以正常工作,但有时,它总会返回1 ..
答案 0 :(得分:3)
当您提交可以用 mm / dd / yyyy 格式表示有效日期的值时,Access会将其解释为此类型。您可以故意将其格式化为 mm / dd / yyyy 而不是 dd / mm / yyyy 。但我们中的许多人更喜欢 yyyy / mm / dd ,因为Access总是正确地解释这种格式,我们人类不必担心日期是否为 dd / mm / yyyy可能会产生混淆或 mm / dd / yyyy 格式。
"Select max(snum) From tblbill where idate = #" & Format(Today.Date, "yyyy/mm/dd") & "# "
然而,db引擎支持一个函数Date()
,您的查询可以使用该函数来引用当前日期而不必担心任何格式。所以这个替代方案对我来说似乎最简单......
"Select max(snum) From tblbill where idate = Date()"