我有一个数据字段,它使用 @ 符号将一个数据值指定给更广泛的数据集。它类似于但不等同于电子邮件“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
如您所知,除了“at 符号”之外没有其他常量供我分隔(大约有 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" & "*"));
我编辑了一些名字以提供匿名性。它以“查找重复”查询开始,但我想解析其中包含的一些信息。也许这就是问题?需要创建单独的查询?
编辑:问题是我在代码中引用了错误的字段。