我在匯入excel檔案時遇到了在列中添加日期的問題。我的設定如下:
我有一個AccessDB,我想每天匯入一個Excel報告。
我有一個AccessDB,我希望每天都能匯入一份Excel報告。我有一個表單,我可以瀏覽該報告,并通過點擊第二個按鈕將其匯入一個名為 "tblImport "的表。這作業很好。
我現在在 "tblImport "中有一個空列,我想在其中為每一行添加報告的日期,而不是Null。這個空列已經被定義為一個日期列。日期是在檔案名 "YYYMMDD.xlsx "的最后。 完美的解決方案是直接從檔案名中獲取日期并將其添加到該列。但也可以在表單中添加一個輸入框或欄位,讓我添加日期。
然而,我發現的每一個解決方案都不能在我的代碼中發揮作用。
如果有任何建議,我將不勝感激。
預先感謝!
該表單的代碼如下:
Private sub btnBrowse_Click()
Dim diag As Office.FileDialog
Dim item As Variant
Set diag = Application.FileDialog(msoFileDialogFilePicker)
diag.AllowMultiSelect = False[/span]。
diag.Title = "請選擇一個Excel電子表格"。
diag.Filters.Clear
diag.Filters.Add "Excel電子表格", "*.xls, *.xlsx".
If diag.Show Then
For Each item In diag.SelectedItems
Me.txtFileName = item
下一個 下一個?
End If
End Sub
Private Sub btnImportSpreadsheet_Click()。
Dim FSO As New FileSystemObject
If Nz(Me.txtFileName, "") = "" Then
MsgBox "請選擇一個檔案!"
Exit Sub
End If
If FSO.FileExists(Me.txtFileName) Then
ExcelImport.ImportExcelSpreadsheet Me.txtFileName, FSO.GetFileName(Me.txtFileName)
Else Else?
MsgBox "未找到檔案!"。
End If
End Sub
匯入函式看起來如下:
Public Sub ImportExcelSpreadsheet(fileName As String, tableName As String)
On Error GoTo BadFormat
DoCmd.RunSQL ("DELETE * FROM tblImport;"/span>)
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "tblImport", fileName, True, "A1:F4"。
MsgBox "匯入成功!"。
Exit Sub
BadFormat:/span>
MsgBox "你試圖匯入的檔案不是Excel電子表格。"
End Sub
′′′
uj5u.com熱心網友回復:
你需要寫一個函式來獲取日期。 這是基于日期在提到的格式中處于同一位置。 你可以詳細說明這段代碼,可能最好在日期轉換函式中也添加一些錯誤檢查。 這里還很早,所以還沒有完全測驗:)
Public Sub ImportExcelSpreadsheet(fileName As String, tableName As String)
On Error GoTo BadFormat
docmd.runsql ("DELETE * FROM tblImport;"/span>)
docmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12, "tblImport", fileName, True, "A1:F4"。
' ***
docmd.runsql ("Update tblImport set DateImported='" & GetDateFromFileName(fileName) & "' ")
' ***.
MsgBox "匯入成功!"。
Exit sub
BadFormat:/span>
MsgBox "你試圖匯入的檔案不是Excel電子表格。"
End Sub
和
Function GetDateFromFileName(strInputFileName As String) As Date Date
Dim strDatePart As String
Dim intFinalDot As Integer
intFinalDot = InStrRev(strInputFileName, "。")
strDatePart = Mid(strInputFileName, intFinalDot - 8, 8)
GetDateFromFileName = DateSerial(Mid(strDatePart, 1, 4),Mid(strDatePart, 5, 2), Mid(strDatePart, 7, 2)
結束 功能
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/314451.html
標籤:
上一篇:由OleDbConnection.Open()拋出的AccessViolationException
下一篇:參與者R的Ifelse陳述句
