设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2652|回复: 8
打印 上一主题 下一主题

[查询] 如何将文本框里的条件字符串传递给SQL查询

[复制链接]
跳转到指定楼层
1#
发表于 2009-10-28 23:30:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tuhaiyin2008 于 2009-10-29 19:47 编辑

SQL语句为:SELECT  单元,数量 FROM 电表  WHERE ([forms]![frm_能耗报表]![txt_strwhere]);
其中:[forms]![frm_能耗报表]![txt_strwhere]中文本内容为一条件字符串,由VBA根据判断条件产生,如:([电表]![年] =2009 And [电表]![月]=9),但是查询结果不对,where 后面的条件起不到限制作用。请帮忙解决。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-10-29 08:57:43 | 只看该作者
dim sql as string

sql="SELECT  单元,数量 FROM 电表  WHERE " &  ([forms]![frm_能耗报表]![txt_strwhere]) & ";"
然后执行sql.

这样试试,不行的话请上传示例。
3#
 楼主| 发表于 2009-10-29 19:49:28 | 只看该作者
还是不行,现已上传示例.请 KangKing 大侠帮忙解决.另外还有查询中条件格式闪烁怎么解决也请帮忙指点一下.
4#
 楼主| 发表于 2009-10-29 20:37:01 | 只看该作者
请帮忙指点一下.
5#
发表于 2009-10-29 20:55:15 | 只看该作者
搜索刘小军
6#
 楼主| 发表于 2009-10-30 11:18:32 | 只看该作者
非常感谢!
7#
发表于 2009-10-30 13:48:05 | 只看该作者
将你的单击事件的代码用下面的代码替换试一下。


    Dim sql As String
    Dim qd As DAO.QueryDef

    Dim strWhere As String  '定义条件字符串




    Set qd = CurrentDb.QueryDefs("qry_电")



    strWhere = ""    '设定初始值-空字符串

    If IsNull(Me.cmb_Year) And IsNull(Me.cmb_month) Then

        strWhere = ""

    ElseIf Not IsNull(Me.cmb_Year) And IsNull(Me.cmb_month) Then

        strWhere = "[年]=" & Me.cmb_Year

    ElseIf Not IsNull(Me.cmb_Year) And Not IsNull(Me.cmb_month) And IsNull(Me.cmb_add) Then

        strWhere = "[年]=" & Me.cmb_Year & " And [月]=" & Me.cmb_month
    ElseIf Not IsNull(Me.cmb_Year) And Not IsNull(Me.cmb_month) And Not IsNull(Me.cmb_add) Then
        strWhere = "[年]=" & Me.cmb_Year & " And ( [月]>=1" & " And [月]<=" & Me.cmb_month & ")"



    End If


    Me.txt_Product = DSum("[产量_吨]", "[产量表]", strWhere)
    Me.txt_strwhere = strWhere

    sql = "SELECT 电表.单元, Sum(电表.数量_度) AS [数量(度)], Sum(电表.费用_元) AS [费用(元)], [费用(元)]/" & [Forms]![frm_能耗报表]![txt_Product] & " AS [吨麦芽耗电(元)], [数量(度)]/" & [Forms]![frm_能耗报表]![txt_Product] & " AS [吨麦芽耗电(度)], 系统表.系统" & _
        " FROM 电表 LEFT JOIN 系统表 ON 电表.单元 = 系统表.单元" & _
        " WHERE " & ([Forms]![frm_能耗报表]![txt_strwhere]) & _
        " GROUP BY 电表.单元, 系统表.系统 " & _
        " UNION ALL SELECT """" as 单元, Sum(电表.数量_度) AS [数量(度)], Sum(电表.费用_元) AS [费用(元)], [费用(元)]/" & [Forms]![frm_能耗报表]![txt_Product] & " AS [吨麦芽耗电(元)], [数量(度)]/" & [Forms]![frm_能耗报表]![txt_Product] & " AS [吨麦芽耗电(度)], 系统表.系统 & ""合计"" as 系统" & _
        " FROM 电表 LEFT JOIN 系统表 ON 电表.单元 = 系统表.单元" & _
        " WHERE " & ([Forms]![frm_能耗报表]![txt_strwhere]) & _
        " GROUP BY 系统表.系统" & _
        " UNION ALL SELECT """" as 单元, Sum(电表.数量_度) AS [数量(度)], Sum(电表.费用_元) AS [费用(元)], [费用(元)]/" & [Forms]![frm_能耗报表]![txt_Product] & " AS [吨麦芽耗电(元)], [数量(度)]/" & [Forms]![frm_能耗报表]![txt_Product] & " AS [吨麦芽耗电(度)], "" 电总计"" as 系统" & _
        " FROM 电表 LEFT JOIN 系统表 ON 电表.单元 = 系统表.单元" & _
        " WHERE " & ([Forms]![frm_能耗报表]![txt_strwhere]) & ";"

    qd.sql = sql
    qd.Close
    Set qd = Nothing

    Me.Refresh
    DoEvents
8#
发表于 2009-10-30 17:24:59 | 只看该作者
关注一下
9#
发表于 2009-10-30 17:25:10 | 只看该作者
收藏了话题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-14 16:58 , Processed in 0.092656 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表