Foxtable(狐表)用户栏目专家坐堂 → 求助关于字符串函数


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

主题:求助关于字符串函数

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


加好友 发短信
等级:婴狐 帖子:43 积分:418 威望:0 精华:0 注册:2012/10/18 9:02:00
求助关于字符串函数  发帖心情 Post By:2012/11/2 9:50:00 [只看该作者]

 我写了一段循环生成查找公式的代码,运行出现错误,提示 And 后面缺少操作数.想了好久也没想明白,求高手

               tkj.text = e.node.text
                lj = e.node.FullPath
                mc = e.node.FullName
                czl = lj.split("\")
                lmc = mc.split("\")
                For sl = 0 To lmc.length - 1
                    czz = czz & "[" & lmc(sl) & "] = '" & czl(sl) & "' And "
                Next
                    czz = czz.Trimend(" And ")
                    czdj = DataTables(bmc).Find(czz)
                    Tables("产品报价单").Current("密度")=czdj("密度")
                    Tables("产品报价单").Current("材料单价")=czdj("单价")


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/11/2 9:53:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/2 9:58:00 [只看该作者]

 这样查对应的行多麻烦啊,狐爸,TreeNode有个Tag属性,存_Identify吧。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/2 10:02:00 [只看该作者]

tkj.text = e.node.text
lj = e.node.FullPath
mc = e.node.FullName
czl = lj.split("\")
lmc = mc.split("\")
For sl = 0 To lmc.length - 1
    If czz > "" Then
        czz  = czz & " And "
    End If

    czz = czz & "[" & lmc(sl) & "] = '" & czl(sl)
Next
czdj = DataTables(bmc).Find(czz)
Tables("产品报价单").Current("密度")=czdj("密度")
Tables("产品报价单").Current("材料单价")=czdj("单价")

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


加好友 发短信
等级:婴狐 帖子:43 积分:418 威望:0 精华:0 注册:2012/10/18 9:02:00
  发帖心情 Post By:2012/11/2 10:19:00 [只看该作者]

还是没有解决,应该是循环的问题,我用messagebox()输出czz结果[第一列.第二列.第三列]都在一起。提示找不到这个列。也不可能找到。难道我的循环有错误?

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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2012/11/2 10:23:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/2 10:25:00 [只看该作者]

 楼主的数据列,也应该包含数字、字符、日期,这些都是需要分开判断的,因为表达式格式不一样。

 等等,帮你写一个。

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


加好友 发短信
等级:婴狐 帖子:43 积分:418 威望:0 精华:0 注册:2012/10/18 9:02:00
  发帖心情 Post By:2012/11/2 10:27:00 [只看该作者]

以下是引用muhua在2012-11-2 10:23:00的发言:
把您 czz 结果列出来看下。

列名称的问题找到了我用split分割的是“\”换成“.”就可以了。但是trimend("And")之后 And 还是存在


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/2 10:53:00 [只看该作者]

如果多种类型,就要像下面代码那样,判断一下类型。

再有就是 czz = czz.Trimend(" And ") 这句不能这样用。

 tkj.text = e.node.text
 lj = e.node.FullPath
 mc = e.node.FullName
 czl = lj.split("\")
 lmc = mc.split("\")

 Dim dt As DataTable = DataTables(bmc)
 For i As Integer = 0 To czl.Length - 1
     If dt(lmc(i)).IsString Then
          ...
     Else If dt(lmc(i)).IsDate Then
          ...
     Else If dt(lmc(i)).IsNumeric Then
         ...
     Else If dt(lmc(i)).IsBoolean

     End If
 Next

 czz = czz.Trimend(" And ")
 czdj = DataTables(bmc).Find(czz)
 Tables("产品报价单").Current("密度")=czdj("密度")
 Tables("产品报价单").Current("材料单价")=czdj("单价")

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/2 10:56:00 [只看该作者]

最后代码写成这样就可以了。

                tkj.text = e.node.text
                lj = e.node.FullPath
                mc = e.node.FullName
                czl = lj.split("\")
                lmc = mc.split("\")
                czz = "1=1 "
                For sl = 0 To lmc.length - 1
                    czz = czz & " And " & "[" & lmc(sl) & "] = '" & czl(sl) & "'"
                Next
                    czdj = DataTables(bmc).Find(czz)
                    Tables("产品报价单").Current("密度")=czdj("密度")
                    Tables("产品报价单").Current("材料单价")=czdj("单价")
[此贴子已经被作者于2012-11-2 11:31:59编辑过]

 回到顶部
总数 17 1 2 下一页