当前位置:编程学习 > VB >>

如何写这样的查询语句??难死我了 高分

常规查询条件
   部门__________
   岗位__________
   雇佣性质_______
   编号_____         姓名_____          性别______
   学历_____
其他查询条件(3个条件,前边有个复选框,可以选择用那几个!)
   年龄(是个下拉列表框,能列出表中所有的字段,选哪个就用哪个查询 ,年龄是其中一个) 介与_______ 与________间
   员工类别(是个下拉列表框,能列出表中所有的字段,选哪个就用哪个查询,员工类别是其中一个 )___________
   出生年月(是个下拉列表框,能列出表中所有的字段,选哪个就用哪个查询,民族是其中一个  )  > __________后
   
    

如何做这样一个查询?查询是在一个表中进行,如何把 常规查询和其他查询条件写上去??用一个查询语句    --------------------编程问答-------------------- 呵呵,给你点建议,使用recordset的Filter功能 --------------------编程问答-------------------- 先全部查询出,然后使用Filter设置条件就好了,给分吧,嘿嘿 --------------------编程问答-------------------- 那么心急啊,我到还没用过filter呢?怎么写不妨给个代码?谢谢了,一定给分 --------------------编程问答-------------------- 呵呵,例如:

recordset.filter="出生年月>'2000'" --------------------编程问答-------------------- 我刚才正在写一个类似的,呵呵,我的成功了! --------------------编程问答-------------------- 在其他查询条件中那3个是不固定的条件,如何实现 --------------------编程问答-------------------- 选出值放到比如strField

    " & strfield & " = '" & strvalue & "' "
--------------------编程问答-------------------- 判断啊,例如:

recordset.filter="出生年月>'"+text1.text+"'"

当然,你要先对text1.text进行异常处理

这样说明白了吧 --------------------编程问答-------------------- 给你看看我怎样做组合查询的 


 SQL = ""
If Check1.Value = 1 Then
    SQL = SQL & " and  size like '" & Trim(Text1) & "' "
End If

If Check2.Value = 1 Then
    SQL = SQL & " and  jsr='" & Trim(Text2) & "' "
End If

If Check3.Value = 1 Then
    SQL = SQL & " and  zb='" & Trim(Text3) & "' "
End If

If Check5.Value = 1 Then
    SQL = SQL & " and  coninv like '" & Trim(Text4) & "' "
End If

If Check8.Value = 1 Then
    SQL = SQL & " and  dwbh ='" & Trim(Text7) & "' "
End If


If Check10.Value = 1 Then
    SQL = SQL & " and  ck ='" & Trim(Combo1) & "' "
End If


If Option1.Value = True Then
    SQL = SQL & " and inout='出库' "
End If

If Option2.Value = True Then
    SQL = SQL & " and inout='入库' "
End If
'验收情况

If Option6.Value = True Then
    SQL = SQL & " and ( not  (ysr is null or rtrim(ysr)='')) "
End If

If Option5.Value = True Then
    SQL = SQL & " and (ysr is null or rtrim(ysr)='') "
End If

If Check4.Value = 1 Then
    SQL = SQL & " and rq>='" & Format(rq1, "yyyy-MM-dd") & "' " & " and rq<='" & Format(rq2, "yyyy-MM-dd") & "' "

End If

If Check9.Value = 1 Then
    SQL = SQL & " and YSrq>='" & Format(YSrq1, "yyyy-MM-dd") & "' " & " and YSrq<='" & Format(ySRQ2, "yyyy-MM-dd") & "' "

End If

If Check6.Value = 1 Then
    If Len(Text5) < 6 Then
        On Error Resume Next
        Text5 = Format(CDbl(Text5), "000000")
        On Error GoTo 0
    End If
    SQL = SQL & " and inno like '" & Text5 & "'"

End If

If Check11.Value = 1 Then
    SQL = SQL & " and kw like '" & Me.Text8 & "' "
    If Option9.Value = True Then
        SQL = SQL & " and ckbj<>'1' "
    End If
    
End If


If SQL = "" Then
    MsgBox "至少输入一个条件吧!"
    Exit Sub
End If
    SQL = "select * from tabinout where 1=1  " & SQL
    SQL = SQL & "  order by  idd"

r.Open SQL, cN


--------------------编程问答-------------------- sql=""
sql=sql & "select 部门" & vbnewline
sql=sql & "      ,岗位 " & vbnewline
………………
sql=sql & "  from 表 " & vbnewline
sql=sql & " where " & strfield1 & " between '" & strvalue11 & "' and '" & strvalue12 & "' "  & vbnewline
sql=sql & "   and " & strfield2 & " = '" & strvalue2 & "'  "  & vbnewline
……………… --------------------编程问答-------------------- 谢谢tongnaifu 不过我还不是很明白,我能给你发个界面吗!你看看具体如何实现!能给我你的qq,或email吗? --------------------编程问答-------------------- 从list选出值放到比如strField可以实现灵活查询
 
sql="" 
sql=sql & "select 部门" & vbnewline 
sql=sql & "      ,岗位 " & vbnewline 
……………… 
sql=sql & "  from 表 " & vbnewline 
sql=sql & " where " & strfield1 & " between '" & strvalue11 & "' and '" & strvalue12 & "' "  & vbnewline 
sql=sql & "  and " & strfield2 & " = '" & strvalue2 & "'  "  & vbnewline 
………………

--------------------编程问答-------------------- tongnaifu@126.com
补充:VB ,  数据库(包含打印,安装,报表)
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,