vb 按日期查询问题。

来源:百度知道 编辑:UC知道 时间:2024/05/26 09:36:50
form_load时,显示全部的记录

直接使用DTPicker控件选择好日期后,点击查询按钮,显示的还是全部记录。

当我用其他条件查询后,再用这个日期查询时,才能查询出正确的记录。

这是为什么呢?请高手指教~
Private Sub cmd_OK_Click()
If txtbox.Text = "" Then
sql = "select Checks.CardID,Checks.CheckDate from Checks,Records where Checks.CardID=Records.CardID"
rs.Open sql, Conn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
MSHFlexGrid1.Refresh
rs.Close
Else
sql = "select Checks.CardID,Checks.CheckDate from Checks,Records where Checks.CardID=Records.CardID"
If OpCard.Value = True Then
sql = sql & " and Checks.CardID like '%" & Trim(txtbox.Text) & "%'"
End If
If OpDate.Value = True Then
sql = sql & " and Checks.CheckDate= '" & Trim(DTPicker1.Value) & "'"
End If
rs.Open sql, Conn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
MSHFlexGrid1.Refresh

你的 If txtbox.Text = "" Then 判断有问题,
正篇代码可以这样规划:

Private Sub cmd_OK_Click()

sql = "select Checks.CardID,Checks.CheckDate from Checks,Records where Checks.CardID=Records.CardID"
If OpCard.Value = True Then
sql = sql & " and Checks.CardID like '%" & Trim(txtbox.Text) & "%'"
End If
If OpDate.Value = True Then
sql = sql & " and Checks.CheckDate= '" & Trim(DTPicker1.Value) & "'"
End If
rs.Open sql, Conn, adOpenDynamic, adLockOptimistic
Set MSHFlexGrid1.DataSource = rs
MSHFlexGrid1.Refresh
rs.Close
End Sub

必须看看你的 查询公式和相关代码 帖出来看看

看看代码没啥大问题~

下面简单调整一句:
sql = sql & " and Checks.CheckDate= '" & Trim(DTPicker1.Value) & "'"
简单调整为下面:
sql = sql & " and Checks.CheckDate= #" & DTPicker1.Value & "#"

是不是sql语句存在冲突,这样的问题一般都是sql查询语句的问题。