Importeren vanuit Excel - Overschrijven?

Status
Niet open voor verdere reacties.

Schrijfblok

Gebruiker
Lid geworden
7 dec 2010
Berichten
55
Hoi,

Ik heb een Access tabel met dezelfde velden (m.u.v. 1, zie verderop deze post) als een Excel file, het importeren van deze Excel file in de Access tabel d.m.v. een macro gaat prima. Het enige probleem is dat deze Excel file vanuit een ander programma geëxporteerd wordt en er dus elke keer wat gegevens gewijzigd zijn. Deze gegevens worden niet overschreven in de Access tabel, alleen de nieuwe records komen erbij. Enig idee hoe ik dit kan oplossen? ik had al iets gelezen over een verwijderquery en daarna opnieuw importeren maar het probleem is dat de Access tabel 1 extra veld heeft die in Access zelf bijgehouden wordt en dus niet verwijderd mag worden.

Hoop dat ik het zo duidelijk heb uitgelegd :confused:

Bvd
 
Laatst bewerkt:
Ik zou met een importtabel werken, waarna je de produktietabel (om hem zo maar te noemen) kunt updaten met een bijwerkquery.
 
nm....ff testen

edit: snelle Octafish, post net verwijderd
 
Laatst bewerkt:
Ik lach niet :d Wat mij betreft werk je met de enige fatsoenlijke access versie! (al bedoel je dat waarschijnlijk niet ;) )
Een Bijwerkquery maak je in het ontwerpscherm van een query, Daarbij moet je het type query aanpassen, omdat je standaard met een Selectiequery begint. Jij hebt dus een Bijwerkquery nodig, en die kies je in het menu <Query>.
Voeg vervolgens beide tabellen toe, koppel ze aan elkaar (je wilt tenslotte overeenkomende records bijwerken) en kies dan de velden die je wilt bijwerken uit de hoofdtabel, en verwijs naar de importtabel op de regel <Bijwerken met>
 
Ik lach niet :d Wat mij betreft werk je met de enige fatsoenlijke access versie! (al bedoel je dat waarschijnlijk niet ;) )
Een Bijwerkquery maak je in het ontwerpscherm van een query, Daarbij moet je het type query aanpassen, omdat je standaard met een Selectiequery begint. Jij hebt dus een Bijwerkquery nodig, en die kies je in het menu <Query>.
Voeg vervolgens beide tabellen toe, koppel ze aan elkaar (je wilt tenslotte overeenkomende records bijwerken) en kies dan de velden die je wilt bijwerken uit de hoofdtabel, en verwijs naar de importtabel op de regel <Bijwerken met>

Thx voor je snelle reactie, maar nadat ik de post gemaakt had dacht ik doh...updatequery is natuurlijk gewoon bijwerkquery in het Nederlands.

Ik heb nu bij de optie wijzigen in [doeltabel].[doelveld] gedaan en de tabellen gekoppeld. Welke join eigenschap moet ik kiezen? Neem aan de eerste..

edit23492934: er gebeurd weinig "U staat op het punt 0 rijen bij te werken"
 
Laatst bewerkt:
Dan heb je ofwel de gegevens niet goed aan elkaar gekoppeld, ofwel de gegevens zijn niet gelijk, ofwel de gegevenstypen komen niet overeen. Iets in die hoek. Om goed bij te werken moet er een één-op-één match zijn tussen de twee tabellen.
Het kan natuurlijk zijn dat je gegevens in de importtabellen nog niet in je hoofdtabel staan. In dat geval heb je een Toevoegquery nodig.
 
Dan heb je ofwel de gegevens niet goed aan elkaar gekoppeld, ofwel de gegevens zijn niet gelijk, ofwel de gegevenstypen komen niet overeen. Iets in die hoek. Om goed bij te werken moet er een één-op-één match zijn tussen de twee tabellen.
Het kan natuurlijk zijn dat je gegevens in de importtabellen nog niet in je hoofdtabel staan. In dat geval heb je een Toevoegquery nodig.

ah nu werkt het, alleen verkeerd om :D ff omdraaien dus

Heb dit gedaan: Gevulde importtabel gekopieerd, 1 record gewijzigd en bijwerkquery uitgevoerd.

Nu ff verder testen, zal hierna ff laten weten als alles goed werkt en dan kan dit topic gesloten (of hoe gaat dat hier) worden. Iig al bedankt voor je hulp dusver.
 
Hmmm alles werkt er is alleen 1 nieuw probleem......

De Excel file bevat de ene keer record 4001 t/m 4020 en de andere keer bijv. 4001 t/m 4220 omdat hij bijgewerkt is in het "andere programma".

Dan moet ik zeker weer een toevoegquery gebruiken? :(

Dit zou dan eigenlijk de volgorde worden:
Importeren
Toevoegen
Bijwerken

Gelukkig hoef ik geen records te verwijderen anders kwam dat er ook nog bij :p
 
Zoals ik al eerder aangaf, kun je alleen records bijwerken die in beide tabellen zitten. Dus je hebt dan een Toevoegquery nodig om de ontbrekende records uit je import toe te voegen.

Op zich is dat een vergelijkbare query, die vrij simpel te maken is. Je gebruikt daarvoor je Importtabel als basis, en je andere tabel om aan toe te voegen. Het enige waar je op moet letten, is dat je geen records dubbel toevoegt. Zelf gebruik ik daarom altijd een criterium op het sleutelveld:

Code:
Not In(Select [Sleutelveld] From [Hoofdtabel])

Deze code zorgt ervoor dat alleen ontbrekende records worden toegevoegd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan