Hallo,
Ik wil elke maand een excel bestand automatisch importeren in mijn database (daarvoor heb ik de volgende code opgenomen in mijn database).
Nu wil ik bij het importeren dat er een pop-up wordt getoond (inputbox) die vraagt om ingave van jaar en maand.
In het excel-bestand zit dat niet opgenomen, en ik kan de bron niet aanpassen. Dus vandaar deze oplossing in de database zelf.
Dus als ik het excel-bestand van januari 2015 inlees, dat ik een inputbox in mijn scherm krijg waarin ik als [jaar] 2015 intik en daarna [maand] 1.
Deze 2 waarden 2015 en 1 dient op elke regel in de database in de tabel er bij te komen, zodat ik daar makkelijk op kan rapporteren.
Hoe doe ik dat?
En hoe voorkom ik dat bestanden onbedoeld dubbel ingelezen worden?
Ik heb nu de volgende code:
Option Compare Database
Option Explicit
Function DoImport()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
' Change this next line to True if the first row in EXCEL worksheet
' has field names
blnHasFieldNames = True
' Replace C:\Documents\ with the real path to the folder that
' contains the EXCEL files
strPath = "C:\temp\"
' Replace tablename with the real name of the table into which
' the data are to be imported
strTable = "TblPers1"
strFile = Dir(strPath & "*.xls")
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
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()
Loop
End Function
Ik wil elke maand een excel bestand automatisch importeren in mijn database (daarvoor heb ik de volgende code opgenomen in mijn database).
Nu wil ik bij het importeren dat er een pop-up wordt getoond (inputbox) die vraagt om ingave van jaar en maand.
In het excel-bestand zit dat niet opgenomen, en ik kan de bron niet aanpassen. Dus vandaar deze oplossing in de database zelf.
Dus als ik het excel-bestand van januari 2015 inlees, dat ik een inputbox in mijn scherm krijg waarin ik als [jaar] 2015 intik en daarna [maand] 1.
Deze 2 waarden 2015 en 1 dient op elke regel in de database in de tabel er bij te komen, zodat ik daar makkelijk op kan rapporteren.
Hoe doe ik dat?
En hoe voorkom ik dat bestanden onbedoeld dubbel ingelezen worden?
Ik heb nu de volgende code:
Option Compare Database
Option Explicit
Function DoImport()
Dim strPathFile As String, strFile As String, strPath As String
Dim strTable As String
Dim blnHasFieldNames As Boolean
' Change this next line to True if the first row in EXCEL worksheet
' has field names
blnHasFieldNames = True
' Replace C:\Documents\ with the real path to the folder that
' contains the EXCEL files
strPath = "C:\temp\"
' Replace tablename with the real name of the table into which
' the data are to be imported
strTable = "TblPers1"
strFile = Dir(strPath & "*.xls")
Do While Len(strFile) > 0
strPathFile = strPath & strFile
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, _
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()
Loop
End Function