2017-05-23 170 views
2

我有訪問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名單多少?

回答

0

有可能比在目標表中逐一插入記錄的以下VBA循環更快/更好的解決方案。但是,例如它可以完成這項工作。

  • TableCSV是源表
  • TableFields的名稱是目標表
  • 恆定maxValues的名稱指定構成後構成動態的INSERT INTO語句可用
  • 的查詢字段values的數量values字段;它完成它提供所有列,並添加周圍的報價'...'。 (如果我們可以在不指定所有列值的情況下插入,則它可以被簡化。)

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