Kev*_*loy 3 sql ms-access vba delimiter access-vba
所以有人给了我一个订单电子表格,每个订单的唯一价值是PO,给我电子表格的人是懒惰的,并决定订单有多个PO,但相同的信息他们只是用"/"分隔它们.所以例如我的表看起来像这样
PO Vendor State
123456/234567 Bob KY
345678 Joe GA
123432/123456 Sue CA
234234 Mike CA
Run Code Online (Sandbox Code Playgroud)
我希望用"/"符号作为分隔符将PO分开,所以它看起来像这样.
PO Vendor State
123456 Bob KY
234567 Bob KY
345678 Joe GA
123432 Sue CA
123456 Sue CA
234234 Mike CA
Run Code Online (Sandbox Code Playgroud)
现在我一直在集思广益,通过几种方式解决这个问题.最终我想要Access中的这些数据.原始格式的数据在Excel中.我想要做的是在Access中编写一个vba函数,我可以将其与SQL语句结合使用来分隔值.我现在正在努力,因为我不知道从哪里开始.
关于这个:
1)将源数据导入名为SourceData的新Access表中.
2)创建一个新查询,直接进入SQL视图并添加以下代码:
SELECT * INTO ImportedData
FROM (
SELECT PO, Vendor, State
FROM SourceData
WHERE InStr(PO, '/') = 0
UNION ALL
SELECT Left(PO, InStr(PO, '/') - 1), Vendor, State
FROM SourceData
WHERE InStr(PO, '/') > 0
UNION ALL
SELECT Mid(PO, InStr(PO, '/') + 1), Vendor, State
FROM SourceData
WHERE InStr(PO, '/') > 0) AS CleanedUp;
Run Code Online (Sandbox Code Playgroud)
这是Access术语中的'make table'查询(尽管有嵌套的联合查询); 对于'追加'查询,改为将前两行改为
INSERT INTO ImportedData
SELECT * FROM (
Run Code Online (Sandbox Code Playgroud)
(其余部分不会改变.)不同之处在于重新运行make表查询将清除目标表中已有的内容,而追加查询将添加到任何现有数据.
3)运行查询.
| 归档时间: |
|
| 查看次数: |
8856 次 |
| 最近记录: |