两个日期间数据查询的主要代码 copy如下:
数据库名字为 “ student4 ” 表名 :“通信录”
express1 = ComboBox3.SelectedItem + ComboBox4.SelectedItem + "cdata('" + _ComboBox5.Text + " ')"
express2 = ComboBox6.SelectedItem + ComboBox7.SelectedItem + "cdata('" + _ComboBox8.Text + " ')"
express = express1 + logic + express2
OleDbDataAdapter1.SelectCommand.CommandText = " select * from 通信录 where " + express
DataGrid1.DataSource = newdataset.通信录
程序一直报错 “ 语法错误(操作符丢失)在查询表达式: 出生年月》=cdata(1986-12-1)or 出生年月《=cdata (1986-12-11)中。
我知道这很可能是我sql语言写错了,但我查阅了很多网上资料就是不会写,请各位大侠改好发给我,好吗
这段全部程序如下:
Dim newdataset As New TXLDataSet1
Dim express, express1, express2, logic As String
If ComboBox5.Text = "" Then Exit Sub
If CheckBox1.Checked And ComboBox8.Text = "" Then Exit Sub
If ComboBox3.SelectedItem = "出生年月" Then
express1 = ComboBox3.SelectedItem + ComboBox4.SelectedItem + "cdata('" + _ComboBox5.Text + " ')"
Else
express1 = ComboBox3.SelectedItem + ComboBox4.SelectedItem + "" + ComboBox5.Text + ""
End If
If ComboBox6.SelectedItem = "出生年月" Then
express2 = ComboBox6.SelectedItem + ComboBox7.SelectedItem + "cdata('" + _ComboBox8.Text + " ')"
Else
express2 = ComboBox6.SelectedItem + ComboBox7.SelectedItem + "" + ComboBox8.Text + ""
End If
If RadioButton3.Checked Then logic = "and" Else logic = "or"
If CheckBox1.Checked Then
express = express1 + logic + express2
Else
express = express1
End If
OleDbDataAdapter1.SelectCommand.CommandText = " select * from 通信录 where " + express
Try
OleDbDataAdapter1.Fill(newdataset)
Catch ex As Exception
MsgBox(ex.Message)
End Try
DataGrid1.DataSource = newdataset.通信录
End Sub
------解决思路----------------------
cdata 是啥?不是cdate吗?
access把字符串变为日期一般做法是在字符串的前后拼接上#,如"#2014-09-28#"
另外》=是咋回事?不应该是>=吗?