Alleen nieuwe items toevoegen

Status
Niet open voor verdere reacties.

hmfjohan

Gebruiker
Lid geworden
9 jun 2012
Berichten
16
Regelmatig moet ik een aantal tabellen updaten met nieuwe gegevens die in een extern ERP systeem vastgelegd zijn.
Als voorbeeld de klanten tabel, die zowel in ERP als mijn Access applicatie gebruikt wordt. een life koppeling is helaas niet mogelijk, dus voeren we handmatig een export uit ERP - Import in Access uit. De export vindt naar Excel plaats. Daar zorg ik dan dat alleen nieuwe klantnummers overblijven en die importeer ik vervolgens in mijn Access tabel.
Ik wil dit graag automatiseren en dat zou als volgt moeten:
Klantnummer in Access en Excel wordt vergeleken. bestaat het nummer in Access al dan moeten de bijbehorende velden "adres", "plaats", enz. geupdate worden.
Bestaat het klantnummer nog niet dan moet deze toegevoegd worden aan Access met alle bijbehorende velden.
Ik zou dit graag automatseren in VBA, maar kom er niet uit hoe ik dit moet doen.
Kan iemand me op weg helpen ?

Groeten, Johan
 
Een update is niet hetzelfde als een import, dus je moet zowiezo twee queries gebruiken.
In de toevoegquery maak je een criterium op KlantID: Not In(Select KlantID FROM Klanten). Hiermee filter je alle klanten uit die al in de tabel Klanten staan. De import/toevoegquery wordt dus per klant altijd maar één keer uitgevoerd, want zodra de klant is toegevoegd, valt hij weg vanwege het filter.
De Updatequery doet juist het omgekeerde: je werkt alleen klanten bij die in beide tabellen (Klanten en Import) staan. Die twee tabellen koppel je dus op KlantID. Vervolgens is het een kwestie van de velden matchen die aangepast moeten worden.
Beide queries kun je met een macro laten starten, of met VBA. In dit geval is een macro een stuk makkelijker te maken, want je hoeft alleen maar aan te geven welke twee macro's moeten worden uitgevoerd.
 
Dag Michel,

Bedankt voor de snelle reactie. Even voor de opbouw van het proces:
Ik neem aan dat dit niet rechtstreeks vanuit de Excel file kan, dus eerst de Excel sheet volledig importeren in een import tabel in Acces.
dan met de Queries van de importtabel de nieuwe gegevens naar de werktabel. zie ik dat zo goed ?

Groeten,
Johan
 
Je kunt ook een procedure maken die de import automatiseert.
Code:
Private Sub cmdImportRegulier_Click()

DoCmd.SetWarnings False
sUser = VBA.Environ("UserName")
sFile = "C:\Documents and Settings\" & sUser & "\Bureaublad\ImportRegulier.xls"

DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "ImportRegulier", sFile, True

DoCmd.SetWarnings True

End Sub
Deze code gaat uit van een importbestand met een vaste naam. Die is natuurlijk ook nog wel flexibel te maken.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan