Csv 部分。请参阅当前编辑。您可以在插入新信息之前清空表格。我只需更改HDR=Yes,所有内容都可以快速轻松地导入!虽然我仍然需要解决在替换表时删除关系的问题。我想保留所有的表关系,这样我就不必在输入新信息后再重新创建它们,这非常有帮助。我希望我从一开始就知道,

Csv 部分。请参阅当前编辑。您可以在插入新信息之前清空表格。我只需更改HDR=Yes,所有内容都可以快速轻松地导入!虽然我仍然需要解决在替换表时删除关系的问题。我想保留所有的表关系,这样我就不必在输入新信息后再重新创建它们,这非常有帮助。我希望我从一开始就知道,,csv,ms-access,vba,ms-access-2013,Csv,Ms Access,Vba,Ms Access 2013,部分。请参阅当前编辑。您可以在插入新信息之前清空表格。我只需更改HDR=Yes,所有内容都可以快速轻松地导入!虽然我仍然需要解决在替换表时删除关系的问题。我想保留所有的表关系,这样我就不必在输入新信息后再重新创建它们,这非常有帮助。我希望我从一开始就知道,实际上,对于我拥有查询级关系的应用程序来说,它可能也能正常工作。我没有明确地强制引用完整性,因为主键和外键ID基于实际的设施代码和数字组合,而这些代码和数字组合无论如何都不会重复或修改。 SiteCode FacilityNumber


部分。请参阅当前编辑。您可以在插入新信息之前清空表格。我只需更改HDR=Yes,所有内容都可以快速轻松地导入!虽然我仍然需要解决在替换表时删除关系的问题。我想保留所有的表关系,这样我就不必在输入新信息后再重新创建它们,这非常有帮助。我希望我从一开始就知道,实际上,对于我拥有查询级关系的应用程序来说,它可能也能正常工作。我没有明确地强制引用完整性,因为主键和外键ID基于实际的设施代码和数字组合,而这些代码和数字组合无论如何都不会重复或修改。
SiteCode    FacilityNumber  DocumentType    HyperlinkPath
DKFZ        10              DD1400          C:\FACILITIES DATABASE\path
DKFZ        10              FLRPLN          C:\FACILITIES DATABASE\path
SMQL        17              P1              C:\FACILITIES DATABASE\path
SMQL        17              P2              C:\FACILITIES DATABASE\path
C:\...\Output\scanResults.csv
Sub Import()
   Dim conn as new ADODB.Connection
   Dim rs as new ADODB.Recordset
   Dim f as ADODB.field

   conn.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};DBQ=c:\temp;"
   rs.Open "SELECT * FROM [test.txt]", conn, adOpenStatic, adLockReadOnly, adCmdText

   While Not rs.EOF
      For Each f In rs.Fields
         Debug.Print f.name & "=" & f.Value
      Next
   Wend
End Sub
DoCmd.TransferText acImportDelim, "YourCustomSpecificationName", _
    "tblImport", "C:\SomeFolder\DataFile.csv", False
SELECT *
INTO MyTable
FROM [Text;FMT=CSVDelimited;HDR=No;DATABASE=C:\...\Output].[scanResults#csv]
INSERT INTO MyTable
(SiteCode,    FacilityNumber,  DocumentType,    HyperlinkPath)
SELECT *
FROM [Text;FMT=CSVDelimited;HDR=No;DATABASE=C:\...\Output].[scanResults#csv]
Public Function DeleteRelationsGiveBackup(strTablename As String) As Collection
    Dim ReturnCollection As Collection
    Set ReturnCollection = New Collection
    Dim i As Integer
    Dim o As Integer
    Do While i <= (CurrentDb.Relations.Count - 1)
        Select Case strTablename 
            Case Is = CurrentDb.Relations(i).Table
                ReturnCollection.Add DuplicateRelation(CurrentDb.Relations(i))
                o = o + 1
                CurrentDb.Relations.Delete CurrentDb.Relations(i).NAME
            Case Is = CurrentDb.Relations(i).ForeignTable
                ReturnCollection.Add DuplicateRelation(CurrentDb.Relations(i))
                o = o + 1
                CurrentDb.Relations.Delete CurrentDb.Relations(i).NAME
            Case Else
                i = i + 1
        End Select
    Loop
    Set DeleteRelationsGiveBackup = ReturnCollection
End Function

Public Sub RestoreRelationBackup(collRelationBackup As Collection)
    Dim relBackup As Variant
    If collRelationBackup.Count = 0 Then Exit Sub
    For Each relBackup In collRelationBackup
        CurrentDb.Relations.Append relBackup
    Next relBackup
End Sub

Public Function DuplicateRelation(SourceRelation As Relation) As Relation
    Set DuplicateRelation = CurrentDb.CreateRelation(SourceRelation.NAME, SourceRelation.Table, SourceRelation.ForeignTable)
    DuplicateRelation.Attributes = SourceRelation.Attributes
    Dim i As Integer
    Dim fldLoop As Field
    Do While i < SourceRelation.Fields.Count
        Set fldLoop = DuplicateRelation.CreateField(SourceRelation.Fields(i).NAME)
        fldLoop.ForeignName = SourceRelation.Fields(i).ForeignName
        DuplicateRelation.Fields.Append fldLoop
        i = i + 1
    Loop
End Function
Dim colRelBackup As Collection
Set colRelBackup = DeleteRelationsGiveBackup("MyTable")
'Delete MyTable
'Import new version
RestoreRelationBackup colRelBackup