#vba #ms-access
Вопрос:
Я протестировал найденный код, и он отлично работает для моего приложения Access, но я пытаюсь добиться следующего: подсчитайте все в папке (в данном случае) csv-файл и импортируйте их в небольшой пакет, например, 10 из 190 файлов. Это код, который используется
Sub LiveCheck() Dim Path, FilePathName, File, FileNameList() As String Dim FileCount As Integer, SQL_Append, SQL_Update As String Dim Numbers() As String Const TARGET_TABLENAME As String = "Land_controle" DoCmd.SetWarnings False Path = "J:MonitorLIVE" File = Dir(Path amp; "*.*") While File lt;gt; "" FileCount = FileCount 1 ReDim Preserve FileNameList(1 To FileCount) FileNameList(FileCount) = File File = Dir() Wend If FileCount gt; 0 Then For FileCount = 1 To UBound(FileNameList) FilePathName = Path amp; FileNameList(FileCount) DoCmd.TransferText transfertype:=acImportDelim, SpecificationName:="Land Import Specificatie", tableName:=TARGET_TABLENAME, Filename:=FilePathName, hasfieldnames:=True Next End If End Sub
Я застрял здесь, есть ли простой или упрощенный способ?
Комментарии:
1. Не совсем понимаю, чего ты хочешь. Если вы хотите импортировать все 190 CSV-файлов, что именно вы подразумеваете под «пакетным»? Или есть 190 файлов, и только 10 из них являются CSV?
2. Если вы хотите импортировать файлы «пакетами», вы можете рассмотреть возможность использования таблицы для хранения импортированных файлов, чтобы при циклическом перемещении файлов в папке вы могли проверить, что уже было импортировано. Но без разъяснений никто не сможет вам помочь. Обратите внимание, что
Path
,FilePathName
,File
все на самом делеVariants
так, как вам нужно объявитьDim Path As String, FilePathName As String,File As String,FileNameList() As String
. ИPath
иFile
— плохие названия для вариантов-это, вероятно, зарезервированные слова.