Private Sub chaxun_Click() '查询数据并冲入msflexgrid
Dim sq As String
Dim ti As Data
connecttoserver
sq = "select * from tb_cl where DATEADD(d, -14,fbytxrq) between'" & MaskEdBox1.Text & "' and '" & MaskEdBox2.Text & "'order by flzrq asc"********这个地方********** 提示错误:向列smalldatetime添加值时导致溢出,
时间超出的也会提示这个比如往后2100年,再有就是dateadd第二个参数如果写成负数,明明有相应的数据,却得不到结果 Call executesql(sq) '首先判断sql语句执行是否出错
If Err.Number <> 0 Then
MsgBox "错误代码:" & Err.Number & vbCrLf & _
"错误描述" & Err.Description, vbCritical + vbOKOnly, "连接错误"
disconnect
biaoge.Clear
biaoge.Rows = 1
Label3.Caption = 0
Form_Load
Exit Sub
End If
querydata (sq)
If rs.RecordCount = 0 Then '如果结果为空,或者sql语句出错
Set rs = Nothing
disconnect
biaoge.Clear
biaoge.Rows = 1
Label3.Caption = 0
Form_Load
Exit Sub
End If
Dim sq As String
Dim ti As Data
connecttoserver
sq = "select * from tb_cl where DATEADD(d, -14,fbytxrq) between'" & MaskEdBox1.Text & "' and '" & MaskEdBox2.Text & "'order by flzrq asc"********这个地方********** 提示错误:向列smalldatetime添加值时导致溢出,
时间超出的也会提示这个比如往后2100年,再有就是dateadd第二个参数如果写成负数,明明有相应的数据,却得不到结果 Call executesql(sq) '首先判断sql语句执行是否出错
If Err.Number <> 0 Then
MsgBox "错误代码:" & Err.Number & vbCrLf & _
"错误描述" & Err.Description, vbCritical + vbOKOnly, "连接错误"
disconnect
biaoge.Clear
biaoge.Rows = 1
Label3.Caption = 0
Form_Load
Exit Sub
End If
querydata (sq)
If rs.RecordCount = 0 Then '如果结果为空,或者sql语句出错
Set rs = Nothing
disconnect
biaoge.Clear
biaoge.Rows = 1
Label3.Caption = 0
Form_Load
Exit Sub
End If
On Error Resume Next
G_dbcon.Execute (strsql) '执行sql语句
If Err.Number <> 0 Then
'Err.Clear
executesql = False
Else
executesql = True
End If
End Function
属于用户输入格式为2009-01-01 select * from tb_cl where DATEADD(d, -14,fbytxrq) between'2009-05-01' and '2009-06-01 'order by flzrq asc如果后数14天没事,前数就不行,超过了也不行
如果你的字段 fbytxrq 的值就是 1900-01-01,再用 DATEADD 减 14 天当然会产生越界错误。
你可以在条件中将 between 两个边界值各加 14 天达到一样的目的。
sq = "select * from tb_cl where fbytxrq between'" & DATEADD(d, -14,cast(MaskEdBox1.Text as datetime))& "' and '" & DATEADD(d, -14,cast(MaskEdBox2.Text as datetime))& "'order by flzrq asc"
我要查出在一个时间范围内的数据,不用sql?如何拿?
sq = "select * from tb_cl where fbytxrq between'" & strBeginDate & "' and '" & strEndDate & "'order by flzrq asc"
如果是这样你直接把sq的语句放到查询分析器里运行一下看
把
DATEADD(d, -14,fbytxrq)改成
DATEADD(d, -14, convert(datetime,sdatae,20))就不用加减了