1

別の部分一致に基づいてフィールドを更新する必要があります。「Field2」は、長さが 4 文字の定数です。私がやろうとしていたのは、Field2 を見て、F で始まる場合は Field1 を 340 に更新することでした。次に、F で始まり、3 番目の文字が 3 の場合は、field1 を 344 に更新します。

基本的に、フィールド 2 が F で始まる場合は 340 がルールとなり、F*3* は例外であり、344 と呼ばれる必要があります。

もちろん問題は、'like F*3*' を使用すると、実際には 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'

2 番目の条件ではSUBSTRING()を使用できます

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

このように、最初の文字が 'F' で 3 番目の文字が '3' の場合に一致します。

于 2013-06-10T03:21:15.030 に答える