배경 :가져 오기 특정 파일
은 내가 자동으로 액세스로 가져 싶습니다 매일 판매 파일을받을 수 있습니다. 현재 일관된 이름 지정 규칙을 사용하여 특정 폴더에 저장됩니다. 필자는 매일 이러한 파일을 검토하지 않고 가져 오기 프로세스를 푸시 버튼 절차로 만들고 싶습니다. 폴더에는 다른 파일들이 필요하지 않으므로 전체 파일을 가져올 수 없습니다.
파일 명명 규칙 : DAILY.SALES.20160611
합니다 (20,160,611 올해입니다 - 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
"내가 시도한 유사 콘텐츠는 아무 것도 작동하지 않았다"- 당신이 시도한 것을 이해하기가 어렵다. - 모든 DOS 파일에 대해 seacrh 스펙이 작동 할 것이다. - @HansUp 제안은 "Daily Sales. *. xls"및 ""Daily Sales. *. xls "와 마찬가지로 충분히 간단하고 효과적입니다. 그러면"t would 코드가 실제로 업로드 전에 업로드되었는지 여부를 코드가 실제로 확인할 수 있다면 좋을 것 "- MS 액세스를 사용하고 있습니다. - 데이터베이스는 전송 스프레드 시트 이상의 것을 사용하고 있다고 가정합니다. 단순한 로그 파일 테이블과 업데이트 레코드 세트 및 테이블에 있는지 확인하기위한 쿼리로 쉽게 처리 할 수 있습니다. – dbmitch