将分隔字段拆分为多个字段
Split Delimited Field To Multi Fields
我有一个访问权限 2013 table,其中包含一个以逗号分隔值的字段。我创建了第二个 table,我需要将结果解析成这样的结构
uPPID number
value1 short text
value2 short text
value3 short text
value4 short text
我正在动态创建 table,因此它总是有足够的 "value" 字段来容纳将被解析出的数字。样本数据是这样的:
uppID values
aeo031 boat, goat, hoat, moat
我希望字段映射是这样的
uPPID = aeo031
value1 = boat
value2 = goat
value3 = hoat
value4 = moat
如何访问 vba 从一个字段到多个字段解析出 csv 列表?
可能有 faster/better 个解决方案,而不是下面的 VBA 循环,它在目标 table 中一条一条地插入记录。但例如它完成了工作。
TableCSV
是来源名称 table
TableFields
是目的地的名称table
- 常量
maxValues
指定字段数values
可用
- 查询在组成
values
字段后动态组成INSERT INTO
语句;它完成它以提供所有列,并添加周围的引号 '...'
。 (p.s。如果我们可以在不指定所有列值的情况下插入,则可以简化..)
.
Sub splitTable()
Const maxValues As Long = 4 ' <-- Set to number of value fields in destination table
Dim query As String, values As String, rs
Set rs = CurrentDb.OpenRecordset("TableCSV")
Do Until rs.EOF
values = rs!values ' next we add commas to provide all fields
values = values & String(maxValues - UBound(Split(values, ",")) - 1, ",")
values = "'" & Replace(values, ",", "','") & "'" ' 'a', 'b', '', '' etc
query = "INSERT INTO TableFields VALUES (" & rs!uPPID & "," & values & ")"
Debug.Print query
CurrentDb.Execute query
rs.moveNext
Loop
End Sub
我有一个访问权限 2013 table,其中包含一个以逗号分隔值的字段。我创建了第二个 table,我需要将结果解析成这样的结构
uPPID number
value1 short text
value2 short text
value3 short text
value4 short text
我正在动态创建 table,因此它总是有足够的 "value" 字段来容纳将被解析出的数字。样本数据是这样的:
uppID values
aeo031 boat, goat, hoat, moat
我希望字段映射是这样的
uPPID = aeo031
value1 = boat
value2 = goat
value3 = hoat
value4 = moat
如何访问 vba 从一个字段到多个字段解析出 csv 列表?
可能有 faster/better 个解决方案,而不是下面的 VBA 循环,它在目标 table 中一条一条地插入记录。但例如它完成了工作。
TableCSV
是来源名称 tableTableFields
是目的地的名称table- 常量
maxValues
指定字段数values
可用 - 查询在组成
values
字段后动态组成INSERT INTO
语句;它完成它以提供所有列,并添加周围的引号'...'
。 (p.s。如果我们可以在不指定所有列值的情况下插入,则可以简化..)
.
Sub splitTable()
Const maxValues As Long = 4 ' <-- Set to number of value fields in destination table
Dim query As String, values As String, rs
Set rs = CurrentDb.OpenRecordset("TableCSV")
Do Until rs.EOF
values = rs!values ' next we add commas to provide all fields
values = values & String(maxValues - UBound(Split(values, ",")) - 1, ",")
values = "'" & Replace(values, ",", "','") & "'" ' 'a', 'b', '', '' etc
query = "INSERT INTO TableFields VALUES (" & rs!uPPID & "," & values & ")"
Debug.Print query
CurrentDb.Execute query
rs.moveNext
Loop
End Sub