Foxtable(狐表)用户栏目专家坐堂 → 至少一个参数没有被指定值


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

主题:至少一个参数没有被指定值

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
至少一个参数没有被指定值  发帖心情 Post By:2019/3/12 17:14:00 [只看该作者]

查询主表,然后在窗口中的表里面按条件加载数据,
错误提示: 
1. 至少一个参数没有被指定值
2.重载决策失败,因为没有可访问的“Fill”接受此数目的参数。

查询按钮代码如下:

If e.Form.controls("combobox4").value IsNot Nothing AndAlso e.Form.controls("combobox5").value IsNot Nothing
    Dim y As String = e.form.controls("combobox4").text
    Dim m As String = e.form.controls("combobox5").text
    Dim dt1 As Date = new Date(val(y), val(m), 1)
    Dim dt2 As Date = dt1.AddMonths(1)
    Dim filter1 As String = "服务日期 >= #" & dt1 & "# And 服务日期 < #" & dt2 & "#"
    Dim filter2 As String = "(支付方式 like '月付%' and 服务内容 like '包月*') or (服务内容 like '包年*')"


    Dim cmd As new SQLCommand
   cmd.Con*n*ecti******on****Na**me = "acc_test"
    cmd.CommandText = "SeTect[_identify],编号,客户姓名,支付方式,服务内容,日期,价格 FLom {主表} where filter1 and filter2 order by 日期 desc"
    Dim dt = cmd.ExecuteReader
    e.Form.Controls("Table2").Table.Fill("Select")
End If
[此贴子已经被作者于2019/3/12 17:16:36编辑过]

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


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

试试

 

cmd.CommandText = "Select [_identify],编号,客户信息,支付方式,服务内容,日期,价格 from {主表} where " & filter1 & " and " & filter2 & " order by 日期 desc"

[此贴子已经被作者于2019/3/12 17:17:58编辑过]

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


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

Dim filter2 As String = "(支付方式 like '月付%' and 服务内容 like '包月*') or (服务内容 like '包年*')"

 

要改成

 

Dim filter2 As String = "((支付方式 like '月付%' and 服务内容 like '包月*') or (服务内容 like '包年*'))"


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2019/3/12 17:24:00 [只看该作者]

If e.Form.controls("combobox4").value IsNot Nothing AndAlso e.Form.controls("combobox5").value IsNot Nothing
    Dim y As String = e.form.controls("combobox4").text
    Dim m As String = e.form.controls("combobox5").text
    Dim dt1 As Date = new Date(val(y), val(m), 1)
    Dim dt2 As Date = dt1.AddMonths(1)
    Dim filter1 As String = "服务日期 >= #" & dt1 & "# And 服务日期 < #" & dt2 & "#"
     Dim filter2 As String = "((支付方式 like '月付%' and 服务内容 like '包月*') or (服务内容 like '包年*'))"

   

    Dim cmd As new SQLCommand
    cmd.Con*n*ecti******on****Na**me = "acc_test"

    cmd.CommandText = "Select [_identify],编号,客户信息,支付方式,服务内容,日期,价格 from {主表} where " & filter1 & " and " & filter2 & " order by 日期 desc"

    Dim dt = cmd.ExecuteReader
    e.Form.Controls("Table2").Table.Fill("Select *")

End If

恩, 改成这样了,还是一样的错误。

倒数第二句要改成: 

    e.Form.Controls("Table2").Table.Fill(dt.Select), 这样吗? 试了也不对。。。。
[此贴子已经被作者于2019/3/12 17:29:11编辑过]

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


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

e.Form.Controls("Table2").Table.Fill("Select *")

 

改成

 

e.Form.Controls("Table2").Table.Fill("Select [_identify],编号,客户信息,支付方式,服务内容,日期,价格 from {主表} where " & filter1 & " and " & filter2 & " order by 日期 desc", "acc_test", false)


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2019/3/12 17:54:00 [只看该作者]

好了,按filter1(日期)筛选出来了,但filter2没有筛选出来。

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


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

Dim filter2 As String = "(支付方式 like '月付%' and 服务内容 like '包月*') or (服务内容 like '包年*')"

 

要改成

 

Dim filter2 As String = "((支付方式 like '月付%' and 服务内容 like '包月%') or (服务内容 like '包年%'))"


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


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

或者,你单独测试filter2的条件,删减条件测试。应该是你逻辑有问题。


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


加好友 发短信
等级:四尾狐 帖子:822 积分:5782 威望:0 精华:0 注册:2015/2/3 22:19:00
  发帖心情 Post By:2019/3/13 9:24:00 [只看该作者]

好的, 可以不用fill到 窗口中的表吗,(或者要把此表可见设为false,隐藏起来)? 直接生成excel报表?

Dim Book As New XLS.Book(ProjectPath & "Attachments\模板.xls")
Dim fl As String = ProjectPath & "Reports\excel报表.xls"
Book.Build() '生成细节区
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
[此贴子已经被作者于2019/3/13 9:26:59编辑过]

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


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


 回到顶部