Foxtable(狐表)用户栏目专家坐堂 → 类似于EXCEL中的XLOOKUP


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

主题:类似于EXCEL中的XLOOKUP

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


加好友 发短信
等级:幼狐 帖子:54 积分:741 威望:0 精华:0 注册:2017/9/13 19:13:00
类似于EXCEL中的XLOOKUP  发帖心情 Post By:2023/7/1 21:33:00 [只看该作者]

表A   第一列                  第二列                                第三列
        1                           海尔                                  空调
        2                           海尔                                 洗衣机
        3                          海尔                                   冰箱
        4                          美的                                   空调
        5                          美的                                  洗衣机
        6                           美的                                  冰箱
        7                          格力                                  微波炉
        8                           格力                                  风扇
        9                          格力                                   空调
   .......                         .......                                  .......
表B            第四列                          第五列         
        杭州美的智能冰箱GBX                   
          重庆海尔一匹空调                     
         上海格力电风扇


                    

如何在表B第五列输入表A中对应的序号?(前面的帖子我表达有误,请高手指教,给出代码)
[此贴子已经被作者于2023/7/3 16:11:29编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/2 20:26:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:54 积分:741 威望:0 精华:0 注册:2017/9/13 19:13:00
  发帖心情 Post By:2023/7/3 16:12:00 [只看该作者]

帖子已改过。请您再指教!

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/3 16:32:00 [只看该作者]

一样的用法,改为使用like查询即可

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


加好友 发短信
等级:幼狐 帖子:54 积分:741 威望:0 精华:0 注册:2017/9/13 19:13:00
  发帖心情 Post By:2023/7/3 16:52:00 [只看该作者]

LIKE查询总是引用列内容有误,版主写个代码例子吧

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/3 17:12:00 [只看该作者]

If e.DataCol.Name = "第四列" Then '如果内容发生变动的是品名列
    If e.NewValue Is Nothing Then '如果新值是空白,也就是品名列的内容为空
        e.
DataRow("
第五列") = Nothing '那么清空此行单价列的内容
    
Else
        Dim
 dr As DataRow
        
'否则在产品表查找同名的产品行,将找到的行赋值给变量dr
        dr = 
DataTables("表A").Find("'" & 
e.NewValue & "' like '%' + [第二列] +'%'  and '" & e.NewValue & "' like '%' + [第三列] +'%'")
        If
 dr IsNot Nothing Then '如果找到了同名的产品行,也就是dr不是Nothing
            e.
DataRow("
第五列") = dr("第一列")
        End
 If
    End
 If
End
 If

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


加好友 发短信
等级:幼狐 帖子:54 积分:741 威望:0 精华:0 注册:2017/9/13 19:13:00
  发帖心情 Post By:2023/7/3 17:30:00 [只看该作者]

System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.EvaluateException: 无法在 System.String 和 System.DBNull 上执行“Like”操作。


没遇到过,啥问题

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/3 17:37:00 [只看该作者]

dr = DataTables("表A").Find("'" & e.NewValue & "' like '%' + isnull([第二列],'') +'%'  and '" & e.NewValue & "' like '%' + isnull([第三列],'') +'%'")

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


加好友 发短信
等级:幼狐 帖子:54 积分:741 威望:0 精华:0 注册:2017/9/13 19:13:00
  发帖心情 Post By:2023/7/3 18:10:00 [只看该作者]

like '%' + isnull([第二列],'') +'%'  ,麻烦解释一下代码为什么这样写
[此贴子已经被作者于2023/7/3 18:17:36编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/3 20:08:00 [只看该作者]

这2列有空值,需要转换为空字符串,才能使用like

 回到顶部