将分隔字段拆分为多个字段

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