@ 記号を使用して 1 つのデータ値をより広範なデータ セットに指定するデータ フィールドがあります。これは、「john@example.com」という電子メールに似ていますが、同等ではありません。最初の @ の左側にある情報は私が欲しいものですがInstr()
、 の正しいインデックスを返す関数を取得できないようです@
。の列を作成すると、列Instr(1,[DataSet],"[@]")
が 0 でいっぱいになります。私が対処している列のすべてのデータに@
記号があることに注意することが重要です。
アクセスが特殊文字を適切に処理しないことを読みましたが、問題の回避策について途方に暮れています。引用符内の特殊文字を括弧で囲みましたが、違いはないようです。参考までに、解析する値の例は次のとおりです。
MSE3.7 305ST 305@2000 275@3000 notes and things here
MGT5.0 505ST 2013 505@1800 450@2600 other notes w/comments
おわかりのように、「アットマーク」以外に区切る定数はありません (これらの異なる値は約 400 あります)。クエリをそのまま機能させることができない場合、これが問題の原因です。 .
過去の経験/回避策について聞くのを楽しみにしています。
編集:私の完全なクエリは以下の通りです:
SELECT First([QRY_ENGINES_2012-YTD].EngineOptionCd) AS [EngineOptionCd Field], Count([QRY_ENGINES_2012-YTD].EngineOptionCd) AS NumberOfDups, Option.OptionDes, InStr(1,[EngineOptionCd],"[@]") AS [Engine Horsepower] INTO [TBL_2012-13YTD_ENGINES]
FROM [QRY_ENGINES_2012-YTD] INNER JOIN Option ON [QRY_ENGINES_2012-YTD].EngineOptionCd = Option.OptionCd
GROUP BY Option.OptionDes, [QRY_ENGINES_2012-YTD].EngineOptionCd, InStr(1,[EngineOptionCd],"[@]")
HAVING (((Count([QRY_ENGINES_2012-YTD].EngineOptionCd))>1)
AND ((OptionDes) Like "*" & "MST" & "*" And (OptionDes) Not Like "*" & "MST12" & "*" And (OptionDes) Not Like "*" & "11.9" & "*")) OR (((OptionDes) Like "*" & "GT" & "*"));
匿名性を確保するために、一部の名前を編集しました。「重複を見つける」クエリとして開始しましたが、含まれている情報の一部を解析したかったのです。たぶんそれが問題ですか?別のクエリを作成する必要がありますか?
編集:問題は、コードで間違ったフィールドを参照していたことです。