excel sheets inlezen in Acces lijst

Status
Niet open voor verdere reacties.

ArsScribendi

Nieuwe gebruiker
Lid geworden
8 aug 2018
Berichten
2
beste Forum leden,

na een lange afwezigheid in Excel (het beter werk) en Acces ben ik er toch weer ingedoken. Wat is mijn uitdaging

Voor onze uitgeverij wil ik een fondslijst maken met heel veel velden. deze wil ik daarna opflitsen in diverse losse lijsten om met relaties linken te leggen, maar de data komt van een diversitied van websites, excekls en ; gescheiden CSV's.


Ik heb inmiddels ene aardige hoofdlijst in Acces, met daarin allemaal producten met kollomnamen
De primaire sleutel moet worden het ISBN, maar dit is een speciale samenstelling, die ik later wellicht in een format kan zetten, maar nu moet ik de juiste waardes opgeven om te zorgen dat deze primaire sleutel werkt.

  1. Wat is de beste veld instelling voor een ISBN nummer
  2. Excel, maakt er standaard een raar getal van, als ik een juiste weergave wil moet ik hem zetten op getral zonder decimalen, maar ik krijg dit niet zo ingesteld in acces om een juiste proimaire sluetel te maken
  3. ik wil namelijk op basis van het ISBN velden overschriven van dat record met overeenkomstige kollomnamen

Dus wie kan mij een duw de goede kant opgeven dat ik weet welke waarde/instellingen ik in moet geven als primaire sleutel voor acces, en welke cel waarde ik dan steeds in de excel aanhoud die ik steeds importeer om weer meer data op zijn plaats te krijgen.

In de bijlage dus een kleine acces database met een paar velden, wat ik dus wil als ik de excel inlees, dat hij de velden overschrijft van de juiste kolommen, en de niet bestaande toevoegt. Ik gebruik dar deze import voor http://prntscr.com/kg1gph
 

Bijlagen

  • test import.xlsx
    8,6 KB · Weergaven: 26
  • test fondslijst.zip
    19,2 KB · Weergaven: 23
Een mens is nooit te oud om nieuwe woordjes te leren:
Deze wil ik daarna opflitsen in diverse losse lijsten om met relaties linken te leggen,
Maar even zonder gekheid. Een ISBN nummer is geen veld waar je mee gaat rekenen, zoals een boekprijs of een datum. In beginsel kun je velden die wél getallen bevatten, maar die geen rekenkundige waarde vertegenwoordigen, gewoon als tekstveld beschouwen. Zoals telefoonnummers en dus ISBN nummers. Huisnummers bijvoorbeeld sla je wél op in een getalveld, niet zozeer omdat je er mee rekent, maar je wilt ze numeriek kunnen sorteren. En dan moet je ze wél als getal opslaan.
Tekstvelden kunnen een lengte hebben van 255 tekens, die alleen de gebruikte tekens opslaan. Toch zou ik de veldlengte altijd zo kort mogelijk instellen. Een ISBN nummer zal nooit meer dan 20 tekens bevatten, dus dat lijkt mij een betere veldlengte dan 255.

Ik snap eerlijk gezegd niet wat je bedoelde met 'losse lijsten om met relaties linken te leggen'. Om te beginnen is een relatie een link. Je legt dus geen link met een link, en dat is wat er staat. Maar waarom zou je dat "uberhaupt willen doen? Je krijgt losse bestanden aangeleverd, die allemaal in één hoofdtabel ([Fondlijst]) zouden moeten komen. Althans: dat lijkt mij de meest zinnige oplossing. Al die bestanden te importeren en aan elkaar te knopen is een hele moeizame weg.

Wat ik zou doen:
1. Maak een (tijdelijke) importtabel met de juiste velden en importeer daar je externe bestanden in.
2. Maak een toevoegquery die de (eventueel geschoonde) importtabel toevoegt aan de tabel [Fondslijst]
3. Maak een bijwerkquery die de bestaande ISBN nummers in de tabel [Fondslijst] bijwerkt met de nieuwe gegevens
3. Maak na het importeren van de import de imporrtabel weer leeg voor volgend gebruik.

Bij stap 2 zit in de query een filter op bestaande ISBN nummers. Je wilt in de tabel [Fondslijst] geen dubbele ISBN nummers hebben (ik zou dat veld ook een sleutelveld maken, en niet het ID veld). Dus als je een excel bestand importeert met bestaande boeken, dan wil je die niet toevoegen. Dus filter je die er uit.
Bij stap 3 gebeurt het omgekeerde: ISBN nummers die je al hebt staan, moeten wellicht worden bijgewerkt op basis van de importgegevens. Daarvoor gebruik je dus een bijwerkquery waarbij je de ISBN nummers aan elkaar koppelt.
 
Beste OctaFish,

bedankt voor je reactie, en ja je hebt gelijk een relatie is een link. Maar dat terzijde. even voor mij.

1 acces bestand

tabel 1 (importgegevens) - deze gebruik ik steeds om nieuwe gegevens in mijn acces bestand toe te voegen van de diverse excel lijsten!
Tabel 2 (fondslijst) - Hier staat de meest courante data waar ik steeds aan toe wil voegen/wijzigen

De stap moet dus in twee keer gedaan worden, als ik het goed begrijp.
query 1 voor alle ISBNnummers van de importlijst die niet voorkomen aan toevoegen met de diverse data
query 2 voor het bijwerken van alle bestaande ISBNnummers

het ISBNnummers is een getal maar kan ook een tekst zijn, in het begin zal het het niet meer zijn dan dit, maar er is een speciale formule die een ISBNnummer uitrekend en zo controleert. dus je kunt niet zomaar een willekeurig getal ingeven als ISBNnummer, nu wel gedaan, omdat ik van sommige producten geen ISBNnummer beschikbaar heb. en dit veld als sleutel wilde gebruiken en dan moet hij natuurlijk een uniek waarde hebben.

bedankt voor het uiteenzetten van de stappen, nu ga ik opzoek naar een voorbeeld van de door jouw twee beschreven query's. om dit goed verder te laten verlopen!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan