Vb6 命令包含未规范的短语/关键字

Vb6 命令包含未规范的短语/关键字,vb6,foxpro,Vb6,Foxpro,我有一个vb6项目,需要从记录集更新visual foxpro表格。我的问题是当我尝试更新表格时,我得到错误消息:命令包含未经授权的短语/关键字。我的问题是日期字段。我不知道我是否正确编写了代码的最后一部分。以下是我的代码: rs2.Open "update transac set no_ot_1_5 = " & rs1.Fields("ovt1") & ", no_ot_2_0 = " & rs1.Fields("ovt2") & ", no_ot_3_0" _

我有一个vb6项目,需要从记录集更新visual foxpro表格。我的问题是当我尝试更新表格时,我得到错误消息:命令包含未经授权的短语/关键字。我的问题是日期字段。我不知道我是否正确编写了代码的最后一部分。以下是我的代码:

rs2.Open "update transac set no_ot_1_5 = " & rs1.Fields("ovt1") & ", no_ot_2_0 = " & rs1.Fields("ovt2") & ", no_ot_3_0" _
& "= " & rs1.Fields("ovt3") & "where code = '" & rs1.Fields("emp_code") & "and transac.date = & trans.txtend &", cn1, adOpenDynamic, adLockPessimistic
试试这个:

rs2.Open "update transac set no_ot_1_5 = " & rs1.Fields("ovt1") & ", no_ot_2_0 = " & rs1.Fields("ovt2") & ", no_ot_3_0" _
& "= " & rs1.Fields("ovt3") & " where code = '" & rs1.Fields("emp_code") & "' and transac.date = '" & trans.txtend &"'", cn1, adOpenDynamic, adLockPessimistic

看起来您在WHERE关键字之前缺少了一个空格,在emp_代码之后缺少了一个引号。看起来您的transac date也有问题。

如果G Mastros的解决方案仍然不完整,可能是因为“日期”字段的数据类型不正确。您可能需要更改为

transac.date=CTOD(“&trans.txtend&”)


如果您发送的是文本字符串,但日期是日期类型字段,则需要将其转换为VFP可识别的函数…CTOD()将字符串转换为日期。

非常感谢DRapp您的解决方案!我已经尝试了两天,非常感谢。