背景:インポート特定のファイル
私は、自動的にアクセスにインポートしたいと思い、毎日の売上ファイルを受け取ります。彼らは現在、一貫した命名規則で特定のフォルダに保存されています。私はこれらのファイルを毎日見直さず、インポートプロセスをプッシュボタンの手順にしたいと考えています。フォルダには不要なファイルがありますので、ファイル全体をインポートするだけではありません。
ファイル命名規則: DAILY.SALES.20160611
(20160611は年である - 2016年、月 - 6月、および日の11日)に必要な
ヘルプ:
Iすべてのファイルをインポートできますが、 "Daily.Sales"で始まるファイルだけを指定する方法はわかりません。以下は、指定なしですべてをインポートできるコードです。私の前提は、パスやstrFileと何か関係がありますが、私が試したバリエーションのどれもうまくいきませんでした。
ファイルをアップロードする前にファイルが既にアップロードされているかどうかを実際に確認できれば便利ですが、使用するたびにテーブルを削除してさらに簡単なものをすべて再アップロードする必要がある場合に便利です。
Dim strFile As String 'Filename
Dim strFileList() As String 'File Array
Dim intFile As Integer 'File Number
Dim filename As String
Dim path As String
DoCmd.SetWarnings False
path = "C:\Desktop\Test\"
Dim objXL As Object
Dim wb As Object
Set objXL = CreateObject("Excel.Application")
strFile = Dir(path & "*.xls")
While strFile <> ""
Set wb = objXL.Workbooks.Open(path & strFile)
If wb.Sheets(1).Range("A1") <> "No Data" And wb.Sheets(1).Range("A1") <> "" Then
'add files to the list
intFile = intFile + 1
ReDim Preserve strFileList(1 To intFile)
strFileList(intFile) = strFile
End If
strFile = Dir()
Debug.Print strFileList(intFile)
wb.Close False
Set wb = Nothing
Wend
'see if any files were found
If intFile = 0 Then
MsgBox "No files found"
Exit Sub
End If
'cycle through the list of files
For intFile = 1 To UBound(strFileList)
filename = path & strFileList(intFile)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, "Stage", filename, False
Call Format_Staging_Table
Call Copy_from_Stage_to_Master
Call Clear_Staging_Table
Next intFile
DoCmd.SetWarnings True
あなたは、彼らは私が...
誰でも提供することができるかもしれないことを任意のヘルプやアドバイスのおかげで、それを得れば、データをフォーマットしている、コール片を無視することができます!
...基本的には...あなたのファイル名と一致するパスとフォルダを変更...あなたのニーズに合わせてそれを修正しますか? 'strFile = Dir(パス&" Daily.Sales * .xls ")' – HansUp
"私が試したバリエーションのどれもうまくいきませんでした" - あなたが試したことを理解するのは難しい - - @HansUpの提案は、「Daily.Sales。。xls」と「Daily Sales」と同様に十分シンプルで機能しています。コードがアップロード前に既にアップロードされているかどうかをコードが実際に確認できるかどうかを知ることができればいいですか? " - あなたはMS-Accessを使用しています - それはあなたが転送スプレッドシート以上のことをしていると仮定しているデータベースですか?シンプルなログファイルテーブルと更新レコードセットとそれがテーブルにあるかどうかを確認するためのクエリで簡単に処理できます。 – dbmitch