Foxtable(狐表)用户栏目专家坐堂 → in的动态合成表达式总提示出错


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

主题:in的动态合成表达式总提示出错

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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
in的动态合成表达式总提示出错  发帖心情 Post By:2014/6/16 18:29:00 [显示全部帖子]

如下代码:

 '集合选择的单据编号加载数据
    Dim ids As String
    For Each r As Row In tbl.Rows
        If r("选择") = True Then
            ids = ids & ",'" & r(Vars("Idc")) & "'"
        End If
    Next
    ids= ids.Trim(",")
    msgbox(Vars("Idc") & " In (" & ids & ")")
    DataTables(Mtb & "_主表").LoadFilter = Vars("Idc") & " In (" & ids & ")"
    DataTables(Mtb & "_主表").Load()

 

msgbox显示出来是:

订单编号 In ('D1404-027','D1404-028','D1404-029')

 

请教是哪里错了,为何总提示 ')' 附近有语法错误。

谢谢!

 



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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/6/16 19:24:00 [显示全部帖子]

因关联到的表太多都是动态加载的表,所以一时半会做不出例子来。

[此贴子已经被作者于2014-6-16 21:40:53编辑过]

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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/6/16 21:26:00 [显示全部帖子]

做了一个晚上,还是没办法让问题重现,后来将语句改为

    Dim ids As String
    For Each r As Row In tbl.Rows
        If r("选择") = True Then
            ids = ids & ",'" & r(Vars("Idc")) & "'"
        End If
    Next
    ids= ids.Trim(",")
    Dim sql As String = "Select * from " Mtb " &  where " & Vars("Idc") & " In (" & ids & ")"
    DataTables(Mtb & "_主表").SQLLoad(sql)

 

后面两名改为sqlload的形式就可以了,因为原来的主表也是用sqlLoad加载的,

就此想请问一下,是不是原来是用SQLLoad加载的表,后续重新加载时也必须用SQLLoad加载?

谢谢!

 



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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/6/16 21:40:00 [显示全部帖子]

谢谢了!我的窗口全部都是sqlTable动态加载的,怪不得弄了很久总找不到原因,原来是这种表只能用sqlload,一直不知道这个。

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


加好友 发短信
等级:童狐 帖子:292 积分:2488 威望:0 精华:0 注册:2011/11/4 17:32:00
  发帖心情 Post By:2014/6/17 21:09:00 [显示全部帖子]

谢谢,明白了,原来的sql语句确实比较复杂,而且是写在函数里面的,知道了原因,改用sqlolad也很方便。

 回到顶部