我正在将sql导入到我的Access数据库中,并且正在将数据解析到正确的表和字段中。我再次转向你们的大师们以帮助解决问题解析Access中的字符串值
其中一个导入的字段包含逗号分隔的值,需要进行分隔。字符串中可能存在1到10个可能的值。
PHO,Rosgen,NRCS,EMAP,T-DL,YSI-DL
我已经想通了,如果我做的所有值相同的长度(比如4个字符),我可以得到第一,最后和第一逗号之后解析,但似乎无法得到提取的中间值正确。
SELECT Left([FieldForms],InStr([FieldForms],",")-1) AS DEQ_SampleTypeID
FROM tblSiteVisit
UNION ALL
SELECT Mid([FieldForms],InStr([FieldForms],",")+1,4) AS DEQ_SampleTypeID
FROM tblSiteVisit
UNION ALL
SELECT Mid([FieldForms], 11, 4) AS DEQ_SampleTypeID
FROM tblSiteVisit
UNION ALL
SELECT Mid([FieldForms], 16, 4) AS DEQ_SampleTypeID
FROM tblSiteVisit
UNION ALL
SELECT Mid([FieldForms], 21, 4) AS DEQ_SampleTypeID
FROM tblSiteVisit
UNION ALL
SELECT Mid([FieldForms],InStrRev([FieldForms],",")-4,4) AS DEQ_SampleTypeID
FROM tblSiteVisit
UNION ALL
SELECT Right([FieldForms],InStr([FieldForms],",")-1) AS DEQ_SampleTypeID
FROM tblSiteVisit
如果我使用InStrRev或右边的功能,我得到重复,如果有比也使用空行的中期功能结果的最大较少。
有没有办法来解析出像这样的字符串,只能从字符串
这将是更容易的IMO与Access VBA过程而不是查询。这对你来说会是一个合适的选择吗? – HansUp
任何可以工作的东西都是一个选项 – pja
'Split(FieldForms,“,”)'会给你一个字符串数组。向数组中的每个项添加一行到目标表。 – HansUp