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