Converting from Access to SQL Back End (Multi-Value Fields)

可紊 提交于 2021-02-05 10:20:47

问题


So I'm converting an access back-end to SQL. I've tried a few different tools (SSMA, Upsizing Wizard, and a simple import). I've found so far that the SSMA tool and importing seem to work the best, eliminating most of the work necessary for me. However, I'm running into one issue I can't figure out how to overcome.

Two fields allow multiple values (dropdown with check boxes). In converting these, it errors in a way that it not only doesn't carry all of the information over, but also grabs information from another field (and doesn't carry that information over).

I've tried forcing access to only accept the first value (and get rid of multi-values all together), but it won't let me.

Any ideas?


回答1:


This should get you started. It will turn all those values which are selected in the multi select field into their own table. You will need to establish the relationships between the three tables to create a true many to many relationship after the fact.

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


来源:https://stackoverflow.com/questions/24894271/converting-from-access-to-sql-back-end-multi-value-fields

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!