所以我将访问后端转换为SQL。我尝试了一些不同的工具(SSMA,升迁向导和简单的导入)。到目前为止,我发现SSMA工具和导入似乎工作得最好,从而消除了我所需的大部分工作。但是,我遇到了一个问题,我无法弄清楚如何克服。
两个字段允许多个值(带复选框的下拉列表)。在转换这些错误时,错误的方式是它不仅不会传递所有信息,还会从另一个字段中获取信息(并且不会传输该信息)。
我尝试强制访问只接受第一个值(并且一起摆脱多个值),但它不会让我。
有什么想法吗?
答案 0 :(得分:2)
这应该让你开始。它会将在多选字段中选择的所有值转换为它们自己的表。您需要在三个表之间建立关系,以便在事后建立真正的多对多关系。
Sub ExtractMultiValueFields()
Dim JoinTable As New DAO.TableDef
JoinTable.Name = "JoinTable"
With JoinTable
.Fields.Append .CreateField("MainTableId", dbInteger)
.Fields.Append .CreateField("JoinToValue", dbText)
End With
Dim joinRs As DAO.Recordset
CurrentDb.TableDefs.Append JoinTable
Set joinRs = CurrentDb.OpenRecordset("JoinTable")
Dim rs As DAO.Recordset
Dim childrs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("select * from table1")
Do While Not rs.EOF
Debug.Print rs("ID")
Set childrs = rs("col1").Value
Do While Not childrs.EOF
Debug.Print childrs("value") 'always "value"
joinRs.AddNew
joinRs("MainTableId") = rs("ID")
joinRs("JoinToValue") = childrs("value")
joinRs.Update
childrs.MoveNext
Loop
rs.MoveNext
Loop
End Sub