automatisch excel bestand importeren + maand en jaar handmatig toevoegen met inputbox

Status
Niet open voor verdere reacties.

edevries

Nieuwe gebruiker
Lid geworden
23 jan 2015
Berichten
1
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
 
Allereerst welkom bij HelpMij :). Code maak je op met de CODE knop, die je niet ziet in het gewone invoerscherm (wat bijzonder jammer is ;) ) maar wel als je naar de knop <Ga geavanceerd> gaat. Of doe zoals ik, en typ de codes er gewoon voor: [ code ] aan het begin van de code en [ /code ] er achter. Zonder spaties, maar die moeten nu even omdat je anders de codes niet ziet :).
Ik zou zelf altijd een losse import tabel gebruiken, die ik dan eerst leeg maak in het proces, en daarna dus vul met de import. Vervolgens kun je dan ofwel op je gemakje de import controleren, ofwel, als die toch altijd wel klopt, automatisch toevoegen aan je hoofd tabel (in dit geval is dat TblPers1 vermoed ik). Om de nieuwe records toe te voegen aan de hoofdtabel maak je dan een toevoegquery waarin je alleen de nieuwe records laat toevoegen door een criterium te maken op ontbrekende records. Veilig, snel en je kunt er eigenlijk geen fouten mee maken. Een eenmaal toegevoegd record zit niet meer in de selectie die je kan toevoegen, dus kan nooit 2 keer worden toegevoegd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan