以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 类似于EXCEL中的XLOOKUP (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=187233) |
-- 作者:atlas77 -- 发布时间:2023/7/1 21:33:00 -- 类似于EXCEL中的XLOOKUP 表A 第一列 第二列 第三列 1 海尔 空调 2 海尔 洗衣机 3 海尔 冰箱 4 美的 空调 5 美的 洗衣机 6 美的 冰箱 7 格力 微波炉 8 格力 风扇 9 格力 空调 ....... ....... ....... 表B 第四列 第五列 杭州美的智能冰箱GBX 重庆海尔一匹空调 上海格力电风扇 如何在表B第五列输入表A中对应的序号?(前面的帖子我表达有误,请高手指教,给出代码)
[此贴子已经被作者于2023/7/3 16:11:29编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/7/2 20:26:00 -- 参考:http://www.foxtable.com/webhelp/topics/1451.htm |
-- 作者:atlas77 -- 发布时间:2023/7/3 16:12:00 -- 帖子已改过。请您再指教! |
-- 作者:有点蓝 -- 发布时间:2023/7/3 16:32:00 -- 一样的用法,改为使用like查询即可 |
-- 作者:atlas77 -- 发布时间:2023/7/3 16:52:00 -- LIKE查询总是引用列内容有误,版主写个代码例子吧 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2023/7/3 17:30:00 -- System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.Data.EvaluateException: 无法在 System.String 和 System.DBNull 上执行“Like”操作。 没遇到过,啥问题
|
-- 作者:有点蓝 -- 发布时间:2023/7/3 17:37:00 -- dr = DataTables("表A").Find("\'" & e.NewValue & "\' like \'%\' + isnull([第二列],\'\') +\'%\' and \'" & e.NewValue & "\' like \'%\' + isnull([第三列],\'\') +\'%\'") |
-- 作者:atlas77 -- 发布时间:2023/7/3 18:10:00 -- like \'%\' + isnull([第二列],\'\') +\'%\' ,麻烦解释一下代码为什么这样写 [此贴子已经被作者于2023/7/3 18:17:36编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/7/3 20:08:00 -- 这2列有空值,需要转换为空字符串,才能使用like |