Office中国论坛/Access中国论坛
标题:
下面的代码在MDB中运行正常,升级到ADP后报错
[打印本页]
作者:
msf
时间:
2004-7-3 22:43
标题:
下面的代码在MDB中运行正常,升级到ADP后报错
错误提示:“对数据类型而言运算符无效。运算符为BOOLEAN AND,类型为VARCHAR。”
出错代码:
bh = Me.客户 & "-" & Me.直径 & IIf(。Len([容量]) < 3, "0" & [容量], [容量]) & Me.版本号
If IsNull(DLookup("[编号]", "产品信息", "Left([编号],9) & Right([编号],2)like'" & bh & "%'")) Then
其中[编号]为文本,其他是数字类型
作者:
yodong
时间:
2004-7-4 03:26
bh = Me.客户 & "-" & Me.直径 & IIf(。Len([容量]) < 3, "0" & [容量], [容量]) & Me.版本号是不是有笔误:改为:bh = Me.客户 & "-" & Me.直径 & IIf(Len([容量]) < 3, "0" & [容量], [容量]) & Me.版本号
作者:
阿罗
时间:
2004-7-4 06:45
正确的应该是If IsNull(DLookup("[编号]", "产品信息", "Left([编号],9) + Right([编号],2) like '" & bh & "%'")) Then...改动的地方是: Left([编号],9) + Right([编号],2)而不是原来的: Left([编号],9) & Right([编号],2)原因是:在MS SQLServer中, &是逻辑运算符。必须用“+”来连接字符串。
作者:
阿罗
时间:
2004-7-4 06:51
初次从MDB转ADP的用户需要特别注意这一点。在类似"Left([编号],9) + Right([编号],2) like '" & bh & "%'"这样的组合中,从第一个双引号开始推演,里面的公式是要被送到SQL服务器中去处理的(所以要按照SQL服务器的语法规范),而第一组双引号结束后,& bh & ,是在VBA中处理的,随后第二组双引号里的内容又是要原封不动地送到SQL服务器中去处理的。
作者:
msf
时间:
2004-7-5 05:21
谢谢!问题解决!佩服!
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3