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


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

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

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/18 14:49:00 [只看该作者]

需求:如果当前用户是入库明细的制单人,只能加载本人数据,如果当前用户是入库明细的制单人的主管,通过ID和ID2加载其下属所有数据,
用上面方法报错,如何解决?
或有更好的方法?

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/18 15:11:00 [只看该作者]

s = (dr2("ID") & "," & dr2("ID2")).Trim(",") '定义变量为S

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/18 16:33:00 [只看该作者]

如果当前用户是管理员,因为管理员可以看全部数据,他"ID2"的值会很多,如:"ID2"(2,3,4,5,6,、、、、),会影响加载数据速度,管理员如何加载数据?

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/18 16:57:00 [只看该作者]

如果确实是【全部】,去掉这个条件就行了。如果也只是【大部分】,没有其它办法,只能in查询,慢也只能忍着。

要真的想快,就尽量不要使用多值字段存储数据,改为按行存储,比如ID2有10个值,那么就存10行,然后通过2表关联的方式查询

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/19 8:39:00 [只看该作者]

全局变量
Public _UserName As String '
Public _UserGroup As String '
Public _UserBm As String '
Public _UserFz As String '


事件
If _UserGroup = "总监" Then
    Dim Sq-l2 = "selec-t * from  入库明细  where  (Bm= '" & _UserBm & "'')"
    Dim dt2 As system.data.DataTable = db.ExecuteDataSet(Sql-2).Tables(0)
    Dim t2 As Table = e.Form.Controls("Table1").Table
    t2.datasource = dt2.Copy
    t2.AllowEdit = False '
Else
    Dim Sq-l6 = "selec-t * from  入库明细  where  (制单人= '" & _Username & "')"
    Dim dt6 As system.data.DataTable = db.ExecuteDataSet(Sq-l6).Tables(0)
    Dim t6 As Table = e.Form.Controls("Table1").Table
    t6.datasource = dt6.Copy
    t6.AllowEdit = False '
End If

执行报错:
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:窗口,入库查询窗口,多条件1,Click
详细错误信息:
字符串的语法错误 在查询表达式 '(Bm= ''')' 中。

问题一:Public _UserGroup As String ',_UserGroup:User这个狐表固定写法?还是用户表的表名?
问题二:制单人= '" & _Username & "'这个使用全局变量,是正常使用,
              Bm= '" & _UserBm & "''这个同样使用全局变量,却报错,是什么原因,如何解决?

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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/19 8:44:00 [只看该作者]

1、就是跟变量名称而已,没有固定写法,可以使用任何自己喜欢的名称

2、很明显_UserBm没有值,是空值,并且sql里多了个单引号

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/19 9:37:00 [只看该作者]

全局变量
Public _UserName As String '
Public _UserGroup As String '
Public _UserBm As String '
Public _UserFz As String '


事件
If _UserGroup = "总监" Then
    Dim Sq-l2 = "selec-t * from  销售表  where  (Bm= '" & _UserBm & "')"
    Dim dt2 As system.data.DataTable = db.ExecuteDataSet(Sql-2).Tables(0)
    Dim t2 As Table = e.Form.Controls("Table1").Table
    t2.datasource = dt2.Copy
    t2.AllowEdit = False '
Else
    Dim Sq-l6 = "selec-t * from  销售表  where  (制单人= '" & _Username & "')"
    Dim dt6 As system.data.DataTable = db.ExecuteDataSet(Sq-l6).Tables(0)
    Dim t6 As Table = e.Form.Controls("Table1").Table
    t6.datasource = dt6.Copy
    t6.AllowEdit = False '
End If

有值却找不到,无效?

此主题相关图片如下:全局变量.png
按此在新窗口浏览图片


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


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/6/19 9:53:00 [只看该作者]

登录的时候没有给_UserBm赋值

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/19 15:10:00 [只看该作者]


[此贴子已经被作者于2024/6/19 15:25:34编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:7536 威望:0 精华:0 注册:2020/11/4 22:15:00
  发帖心情 Post By:2024/6/19 15:12:00 [只看该作者]


[此贴子已经被作者于2024/6/19 15:25:08编辑过]

 回到顶部
总数 24 上一页 1 2 3 下一页