Foxtable(狐表)用户栏目专家坐堂 → 甜总 这句SQL有啥问题


  共有2502人关注过本帖树形打印复制链接

主题:甜总 这句SQL有啥问题

帅哥哟,离线,有人找我吗?
jianjingmaoyi
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
甜总 这句SQL有啥问题  发帖心情 Post By:2014/8/31 14:21:00 [只看该作者]

Tables(e.Form.Name & "_Table1").Fill("select* from{企业所得税税收优惠备案管理台账} Where " & Filter ,"服务器",True)


 Filter 是筛选字符串 这个是没有的. 

---------------------------
提示
---------------------------
Select语句执行错误,请检查语法及数据源设置。
---------------------------
确定   
---------------------------


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/31 14:24:00 [只看该作者]

 Filter必须赋初值 = "1=1"


 回到顶部
帅哥哟,离线,有人找我吗?
jianjingmaoyi
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2014/8/31 14:28:00 [只看该作者]

不应该这个问题呀

Dim y As Integer = Date.Today.Year
Dim dt1 As New Date(y, 1, 1)
Dim dt2 As New Date(y, 12, 31)
Dim Filter As String = "1=1"
If Vars("开始日期") IsNot Nothing And Vars("结束日期") IsNot Nothing Then
    Filter = "录入时间 >= '" & Vars("开始日期") & "' And 录入时间 <= '" & Vars("结束日期") & "'"
Else
    Filter = "录入时间 >= '" & dt1 & "' And 录入时间 <= '" & dt2 & "'"
End If

Dim nms As String
Dim nmsx As String
Dim drs As List(of DataRow)  = DataTables("查询权限").SQLSelect("管理员ID = '" & _UserID & "'")
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        nms = nms & ",'" & dr("查询单位") & "'"
    Next
    For Each dr As DataRow In drs
        nmsx = nmsx & ",'" & dr("查询部门") & "'"
    Next
End If
If nmsx > "" And nms > "" Then
    nms = nms.Trim(",")
    nmsx = nmsx.Trim(",")
    Filter = Filter & " And " & "报表名称 Like '%" & e.node.Name & "%' And 纳税人识别号='" & e.Node.ParentNode.Name & "'And 主管税务机关 In (" & nms & ") And 主管部门 In (" & nmsx & ")"
End If

Tables(e.Form.Name & "_Table1").Fill("select* from{企业所得税税收优惠备案管理台账} Where " & Filter ,"服务器",True)

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/31 14:31:00 [只看该作者]

 你明明filter有内容,自己msgbox(filter)看看,拷贝sql语句到sql测试窗口测试,看提示什么错。


 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/8/31 18:41:00 [只看该作者]

以下是引用jianjingmaoyi在2014-8-31 14:28:00的发言:
不应该这个问题呀


Dim nms As String
Dim nmsx As String
Dim drs As List(of DataRow)  = DataTables("查询权限").SQLSelect("管理员ID = '" & _UserID & "'")
If drs.Count > 0 Then
    For Each dr As DataRow In drs
        nms = nms & ",'" & dr("查询单位") & "'"
    Next
    For Each dr As DataRow In drs
        nmsx = nmsx & ",'" & dr("查询部门") & "'"        这里和上面,似乎加上空值判断  更为合理
    Next
End If
If nmsx > "" And nms > "" Then                      这里分开判断比较好。并且直接把拼接变量做完   nmsx = " And 主管部门 In (" & nmsx & ")"   )              
    nms = nms.Trim(",")
    nmsx = nmsx.Trim(",")
    Filter = Filter & " And " & "报表名称 Like '%" & e.node.Name & "%' And 纳税人识别号='" & e.Node.ParentNode.Name & "'And 主管税务机关 In (" & nms & ") And 主管部门 In (" & nmsx & ")"
End If

Tables(e.Form.Name & "_Table1").Fill("select* from{企业所得税税收优惠备案管理台账} Where " & Filter ,"服务器",True)


 回到顶部