Gegevens vanuit Excel in tabellen laden

Status
Niet open voor verdere reacties.

conceal

Gebruiker
Lid geworden
29 mrt 2007
Berichten
73
Hallo,

In een boek van Access heb ik gelezen dat je gegevens vanuit Excel in Access kunt laden. De eerste rij moet dan de variabelen-naam bevatten en in de rijen moeten geen afwijkende cellen staan. Nu las ik echter ook dat dit zorgt voor een nieuwe tabel. Ik wil dit echter niet. Ik wil wel graag via Excel gegevens inladen, maar ik wil graag dat deze toegevoegd worden aan de bestaande tabellen zoals ik die al heb. Is dit uberhaupt wel mogelijk??? En hoe werkt dit dan?

Groet,
Maikel
 
Dan moet je met een Toevoegquery gaan werken. Feit blijft echter dat je met het importeren van Exceldata een nieuwe tabel krijgt.
Wanneer je de data van deze nieuwe tabel echter hebt toegevoegd aan een bestaande tabel kun je deze weer verwijderen. De hele procedure heb ik ooit al eens in een Access-macro gezet, werkt perfect.

Erik
 
je kunt het nog makkelijker doen,

als je het overzicht hebt van tabellen moet je rechtermuisknop doen en dan importeren, dan selecteer je het excel document. Hij vraagt dan of je het in een nieuwe tabel op wil slaan maar daar staat ook de mogelijkheid bij om het in een bestaande tabel te zetten, selecteer die tabel waar je het inwilt en hij zet er alles bij zonder geklooi met toevoeg query's.
(je moet wel zorgen dat de veldnamen hetzelfde zijn)

suc6
 
Hi Erik en boltc,

Ik zal maandag kijken of het werkt en of ik ermee uit de voeten kom. Alvast bedankt!!!

Groet,
Maikel
 
Of gewoon koppelen

Vanuit ACCESS kun je simpel een koppeling maken naar Exel (of andere bestanden zoals .csv). Kies voor bestand -> externe gegevens ophalen -> koppelen. Zet het type op Exel en selecteer het bestand. Zo ontstaat een koppeling waarop je een querie kunt maken als ware het dat het een tabel was (bv een toevoegquerie naar de tabel waar je de data wilt hebben). Suc6
 
Hi allemaal,

Omdat ik een Excel-sheet heb met 9 kolommen, maar niet alle kolommen in dezelfde tabel moeten, heb ik het volgende geprobeerd:
1. Exceltabel gelinkt aan Access
2. Toevoegquery gemaakt die enkele kolommen uit deze Exceltabel toevoegd aan een tabel uit Access.
3. Toevoegquery uitvoeren.
Op de een of andere manier voegt de query echter niks toe. Ik krijg alleen een melding dat er van de 100 records uit de Exceltabel 2 records toegevoegd zullen worden en daarna een melding dat geen record toegevoegd wordt, de 2 records die wel toegevoegd zouden worden staan er sowieso al in.
In principe wil ik het via Excel laten verlopen, omdat andere geen kennis hebben van Access en omdat zo ineens veel data toegevoegd kan worden. In de Excelsheet wil ik later dus een up to date overzicht hebben die zij eventueel wijzigen en dan in Access zetten. Hierbij wil ik alleen de nieuwe records toevoegen en de gewijzigde records wijzigen. Alle andere gegevens in Access (die gekoppeld zijn aan de records uit Excel) moeten ongewijzigd blijven. Is dit wel mogelijk zo?

Groet,
Maikel
 
Verschillende oorzaken

Dat kan verschillende oorzaken hebben. Bv de velden waarin je de info wilt toevoegen zijn tekstvelden lengte 50 en je oorspronkelijke Exel bestanden zijn groter. Of je Exel kolom is tekst en je nieuwe tabel is numeriek. Of je voegt per ongeluk ook je Id uit je Exel bestand toe (bv autonummering) terwijl dit nummer ook al bestaat in je nieuwe tabel enz. enz. Maak ipv toevoegquerie een tabelmaakquerie met alleen maar die kolommen die je over wilt zetten. Vergelijk de eigenschappen van deze tabel met die van de nieuwe tabel(len). Pas eventueel de eigenschappen van de nieuwe tabel(len) aan. Probeer het dan nog eens desnoods met de tussenstap naar de hulptabel die je net met de tabelmaakquerie gemaakt hebt want daarin krijg je je data altijd. Suc6
 
En hoe verwijder ik nu?

Hi Anne-Marie

Ik heb nu een kopietabel gemaakt en dacht dat de beste manier om deze te updaten de volgende volgorde was:
- Bijwerkquery (dus alle gewijzigde records aanpassen)
- Toevoegquery (dus alle nieuwe records toevoegen)
- Verwijderquery (dus alle records die vervallen zijn verwijderen)
Op de een of andere manier werkt m'n verwijderquery niet. Ik krijg als ik deze uitvoer de vraag of ik een waarde wil ingeven voor WerknemerKopie.personeelsnummer. Dit is m'n code:

DELETE Werknemers.personeelsnummer, Werknemers.voornaam, Werknemers.achternaam, Werknemers.tussenvoegsel, Werknemers.kloknummer, Werknemers.geboortedatum, Werknemers.ploeglijn, Werknemers.functie, Werknemers.startdatum
FROM Werknemers
WHERE (((Werknemers.personeelsnummer)<>[WerknemersKopie].[personeelsnummer]));

Hoe komt dat ik deze melding krijg? Wat voor voorwaarde moet ik opgeven als ik wil dat alle records met een personeelsnummer in de tabel werknemers, die niet meer voorkomt in de tabel werknemerskopie, wil verwijderen??? Alvast bedankt!

Groetjes,
Maikel
 
Code:
DELETE 
FROM Werknemers
WHERE NOT EXISTS
(SELECT *
FROM WerknemersKopie
WHERE Werknemers.personeelsnummer = WerknemersKopie.personeelsnummer
);

Groet,

Tardis
 
Bedankt allemaal!!! :thumb: Wat ik wilde werkt nu. Nu is het kijken of de andere dingen die ik wil ook werken/mogelijk zijn :D
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan