求“查询”按钮代码。SQL语句筛选,如何用变量代替查询列,查询符,查询值
如果筛选结果要达到上面按钮1的效果,就用在查询列框中输入“产品”,在查询符框中选择“like” ,在查询值中输入“pd05”,点击“查询”。有哪位SQL高手给指点。
谢谢!具体见窗口
大概如此:
Dim t As Table=Tables( e.Form.name & "_table1")
Dim ct1,ct2,ct3,sql,str1, str2 As String
With e.Form
ct1 = .Controls("ComboBox1").value
ct2 = .Controls("ComboBox2").value
ct3 = .Controls("ComboBox3").value
End With
For Each dc As DataCol In DataTables("订单").DataCols
If dc.IsString Then
str1+="," & dc.Name
ElseIf dc.IsDate Then
str2+="," & dc.Name
End If
Next
If Str1.Contains(ct1) Then
if ct2.Contains("like") Then
sql = " ' %" & ct3 & "%'"
else
sql = " '" & ct3 & "'"
End if
ElseIf Str2.Contains(ct1) Then
sql = " #" & ct3 & "#"
Else
sql = " " & ct3
End If
sql= ct1 & " " & ct2 & sql & " group by 产品,客户,雇员,单价,数量"
sql = "Select distinct Max(日期) As 日期,产品,客户,雇员 ,单价,数量 from {订单} where " & sql
Dim cmd As New SQLCommand
cmd.CommandText = sql
t.DataSource = cmd.ExecuteReader
[此贴子已经被作者于2011-12-16 13:10:45编辑过]
直接引用系统的“高级筛选”--Syscmd.Filter.Advanced()
不是更方便?
谢谢don大师,基本可以,只是不能执行like 和not like 命令,不知是否还可以改进?
也谢谢kylin大师的关注,系统高级筛选是可以,做点练习,好进一步使用SQL语句
加個判斷就是了:
...........
If Str1.Contains(ct1) Then
if ct2.Contains("like") Then
sql = " ' %" & ct3 & "%'"
else
sql = " '" & ct3 & "'"
End if
ElseIf Str2.Contains(ct1) Then
sql = " #" & ct3 & "#"
Else
sql = " " & ct3
End If
............
注:如"%"不行請自行換為"*",我是"*"不行才換為"%"
利用DataType.Name还可以简化:
Dim t As Table=Tables( e.Form.name & "_table1")
Dim Lm,Bjf,Bjz,sql,str As String
With e.Form
Lm= .Controls("ComboBox1").value
Bjf= .Controls("ComboBox2").value
Bjz = .Controls("ComboBox3").value
End With
str = DataTables("订单").DataCols(Lm).DataType.Name
If Str = "String" Then
if Bjf.Contains("like") Then
sql = " ' %" & Bjz & "%'"
else
sql = " '" & Bjz & "'"
End if
ElseIf Str = "DateTime" Then
sql = " #" & Bjz & "#"
Else
sql = " " & Bjz
End If
sql= Lm & " " & Bjf & sql & " group by 产品,客户,雇员,单价,数量"
sql = "Select distinct Max(日期) As 日期,产品,客户,雇员 ,单价,数量 from {订单} where " & sql
Dim cmd As New SQLCommand
cmd.CommandText = sql
t.DataSource = cmd.ExecuteReader
谢谢don 老师!
不过like 和not like 还没有达到预期的效果,like 现在的效果同 = 一样 ,not like 同<>的效果
SQL 语句查询窗口,基本做出来了,这主要是dom老师的手笔,再次谢谢don老师!现将他分享给大家,这种查询的最大特点是可以模糊查询数值型记录。具体见窗口下面的说明。
现在还有一个难题,如何将【包含】、【首含】、【尾含】三个按钮合并为一个,还有待于大师的辛劳。
[此贴子已经被作者于2011-12-17 13:14:01编辑过]