1

我需要根据另一个字段的部分匹配来更新一个字段。“Field2”是一个长度为 4 个字符的常量。我想做的是让它查看 Field2,如果它以 F 开头,则将 Field1 更新为 340。然后,如果它以 F 开头并且第三个字符是 3,则将 field1 更新为 344,依此类推。

基本上,当 field2 以 F 开头并且 F*3* 将是例外并且需要称为 344 时,340 将是规则。

问题当然是使用'like F*3*'实际上并不是在第三个位置寻找一个3,而是在F之后的任何地方。

有没有办法做到这一点?我很感激任何帮助。

吉姆

DoCmd.RunSQL "UPDATE [Table] SET [Table].[Field1] = ""340"" WHERE (([Table]![Field2] Like ""F*""));", -1
DoCmd.RunSQL "UPDATE [Table] SET [Table].[Field1] = ""344"" WHERE (([Table]![Field2] Like ""F*3*""));", -1
DoCmd.RunSQL "UPDATE [Table] SET [Table].[Field1] = ""343"" WHERE (([Table]![Field2] Like ""F*4*""));", -1
4

1 回答 1

0

您的条件可以特定于您要匹配的内容,因此根本不要使用通配符。

考虑到您的第一个条件可以是LEFT([Field2],1) = 'F'

您的第二个条件可以使用SUBSTRING()

LEFT([field2],1) = 'F' AND SUBSTRING([field2],3,1) = '3'

这样,您匹配的第一个字符是“F”,第三个字符是“3”

于 2013-06-10T03:21:15.030 回答