将定界字段拆分为多字段

尤汉·格林伯格(Yohan Greenburg)

我有一个访问2013表,其中包含一个用逗号分隔的值的字段。我创建了第二张表,需要使用类似的结构将结果解析为

uPPID number
value1 short text
value2 short text
value3 short text
value4 short text

我正在动态创建表,因此它将始终具有足够的“值”字段来容纳将要解析的数字。样本数据如下:

 uppID   values
aeo031  boat, goat, hoat, moat

我希望字段映射像这样

uPPID = aeo031
value1 = boat
value2 = goat
value3 = hoat
value4 = moat

如何使用vba从一个字段解析出多个csv列表?

可能有比下面的VBA循环更快/更好的解决方案,后者在目标表中一一插入记录。但举例来说,它确实可以做到。

  • TableCSV 是源表的名称
  • TableFields 是目标表的名称
  • 该常数maxValues指定values可用的字段数
  • 查询INSERT INTO在组成values字段动态组成语句它完成了它以提供所有列,并添加了周围的引号'...'(ps可以简化,如果我们可以在不指定所有列值的情况下插入。)

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章