我有一个表tblPartnerships结构为
ID合作伙伴关系
1财务,IT,运营
2法律,合规,IT,HR
我需要从“合作伙伴关系”列中提取所有逗号分隔的关键字,并将其放在另一个可以与每个单词作为单独的行进行合作,以便显示为
金融
IT
操作
法律
遵守
IT
HR
我知道有一个分割函数,例如varList = Split(stTmp,“,”)但是我完全迷失了如何遍历整个列tblPartnerships.Partnerships将其插入到MasterTable中.Rowheading
任何Access查询或vba代码都将受到高度赞赏
答案 0 :(得分:2)
使用单个参数(要导入的单词)创建Append
查询。查询的源SQL应该是这样的:
PARAMETERS [prmWord] Text (50);
INSERT INTO T ( Words )
SELECT [prmWord] AS _Word;
其中T
是您的表(主)的名称,而Words
是该字段的名称。
然后循环访问Partnerships记录集,拆分值并使用上述查询导入每个单词。
Sub SplitAndImport()
On Error GoTo ErrorTrap
Dim rs As DAO.Recordset
Set rs = CurrentDb().OpenRecordset("SELECT Partnerships FROM tblPartnerships;", dbOpenSnapshot)
With rs
If .EOF Then GoTo Leave
.MoveLast
.MoveFirst
End With
Dim arr As Variant
Dim i As Long, ii As Long
For i = 1 To rs.RecordCount
arr = Split(rs![Partnerships], ",")
For ii = LBound(arr) To UBound(arr)
With CurrentDb().QueryDefs("QueryName")
.Parameters("[prmWord]").Value = Trim(arr(ii))
.Execute dbFailOnError
End With
Next
rs.MoveNext
Next
Leave:
If Not rs Is Nothing Then rs.Close
On Error GoTo 0
Exit Sub
ErrorTrap:
MsgBox Err.Description, vbCritical
Resume Leave
End Sub
答案 1 :(得分:0)
这可能与您当前的数据库设计不一样。 您可以尝试使用多值字段。稍后,如果您想在单行上查看多个值,请使用“AssignedTo”命令。
SELECT [title], [lcs].[AssignedTo].[value] AS Expr1
FROM Product;
其中 lcs 是一个多值字段,而 title 是一个文本字段。