我有超过一千个文件要导入ACCESS数据库。 每个文件都需要导入到单独的ACCESS表中。 它需要支持每天导入这些文件,因为,有波兰股票价格,所以每天,晚上08点左右。我正在下载包含1000 * .csv文件的* .zip文件,我需要再次导入它们才能获得今天的价格。
我需要更改一些设置才能正确导入数据。
看起来如何。
我不知道如何在VBA代码中编写这些高级更改。 在EXCEL中,我可以记录宏,然后使用我选择的设置查看语法,但是可以在ACCESS中执行相同的操作吗?
我在互联网上找到了两个代码。 第一:
功能Impo_allExcel()
Dim my_file As String
Dim my_path As String
my_path = "C:\Users\michal\SkyDrive\csv\bossa\mstcgl_csv"
ChDir (my_path) 'why my_path is inside the brackets??
my_file = Dir()
Do While my_file <> "" 'is not empty (<> means not equal to), Excel VBA enters the value into
'this line above doesn't work, when I'm trying to debug it with F8
If my_file Like "*.csv" Then
' this will import ALL the *.CSV files
'(one at a time, but automatically) in this folder.
' Make sure that's what you want.
DoCmd.TransferSpreadsheet acImport, 8, "Contacts_AVDC_NEW", my_path & my_file
' what this above line says ? please explain.
End If
my_file = Dir() ' what it means?
Loop
End Function
第二是:
功能Do_Import_from_CSV()
Dim strPathFile As String
Dim strFile As String
Dim strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
' Change this next line to True if the first row in CSV worksheet has field names
blnHasFieldNames = True
' real path to the folder that contains the CSV files
strPath = "C:\Users\michal\SkyDrive\csv\bossa\mstcgl_csv"
' Replace tablename with the real name of the table into which the data are to be imported
strFile = Dir(strPath & "*.csv") 'what this line means?
Do While Len(strFile) > 0
strTable = Left(strFile, Len(strFile) - 4)
strPathFile = strPath & strFile
DoCmd.TransferText acImportDelim, , strTable, strPathFile, blnHasFieldNames
' Uncomment out the next code step if you want to delete the
' EXCEL file after it's been imported
' Kill strPathFile
strFile = Dir() 'what this means?
Loop
End Function
请你简要解释一下这些代码, 告诉我他们之间有什么区别, 以及如何将我需要的设置合并到这些代码中, 或者更适合我的那个。 非常感谢。