Access: Hoe van regels naar records?

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • MarcPV
  • Registratie: Oktober 2014
  • Laatst online: 07-08-2022
Een groot txt bestand (400 K regels) bevat hoofditems met subitems die in een hierarchische structuur zijn opgeslagen. Per hoofditem worden er feiten als subitem opgeslagen. Deze subitems (met verschillende structuren) zijn onderverdeeld in velden. Alles wordt in aparte regels opgeslagen.. Indien veld geen waarde heeft, wordt het niet in de txt opgenomen. Ik heb de txt al in Access ingelezen in een bestand en een beetje structuur ingebracht: Kolom ID t/m Waarde. De kolom Opmerking is ter verduidelijking en de kolom Persoon en Feit zou ik graag door Access laten genereren.

Voorbeeld van de ingeladen txt
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ID      Lv  RCFT   Waarde        Opmerking                                    Persoon Feit
100000  0   INDI   I1234         Eerste persoon
100001  1   NAME   Jan Janssen   1e feit, naam van de persoon                 100000
100002  2   NICK   Jantje        Onderdeel van naam is de roepnaam (NICK)     100000  100001
100003  1   BIRT                 2e feit, geboorte                            100000
100004  2   DATE   3 NOV 1900    1e veld van geboorte, Datum                  100000  100003
100005  2   PLAC   Eindhoven     2e veld van geboorte, Plaats1                100000  100003
100006  1   DEAT                 3e feit, overlijden                          100000
100007  2   DATE   3 OCT 1999    1e veld overlijden, datum, 2e veld ontbreekt 100000  100007
100008  1   OCCU   Visser        4e feit, beroep met meteen waarde            100000
100009  1   OCCU   Handelaar     5e feit, beroep met waarde                   100000
100010  2   PLAC   Den Bosch     1e veld van 5e feit, plaats                  100000  100009
100011  2   DATE   10 FEB 1930   2e veld van 5e feit, datum                   100000  100009
100012  0   INDI   I4324         Volgende persoon       
100013  1   NAME   Piet Peters                                                100012


Wat ik minstens zou willen bereiken, is dat in de Access de 2 rechtse kolommen extra komen:
eentje per feit met de persoon waar het bij hoort en eentje per veld bij welk feit het hoort.
Hiervoor heb je volgens mij alleen de kolommen ID en level nodig.
Idealerwijze komt er een kruistabel uit met in de rijen de personen en feiten en in de kolommen de velden en in de cellen de waarden.
code:
1
2
3
4
5
6
7
Pers ID Feit ID   Type   Waarde      NICK   DATE         PLACE  ....
100000  100001    NAME   Jan Janssen Jantje     
100000  100003    BIRT                      3 NOV 1900   Eindhoven  
100000  100006    DEAT                      3 OCT 1999      
100000  100008    OCCU   Visser             
100000  100009    OCCU   Handelaar          10 FEB 1930  Den Bosch  
100012  100013    NAME   Piet Peters

Alle reacties


Acties:
  • 0 Henk 'm!

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 29-07 11:23
Lijkt niet zo ingewikkeld. Je leest het bestand regel voor regel in, je split het en op basis van de waarde van de TYPE kolom bepaal je wat te doen: nieuw record aanmaken, of velden imvullen.
Tip: laat Access ook een ID bepalen, met een sleuteltje.
Je kan aan een enkele persoonstabel misschien al genoeg hebben, maar misschien ook zinvol om een beroepentabel te maken,aangezien een persoon meerdere beroepen kan hebben.

[ Voor 38% gewijzigd door Witte op 22-04-2019 19:14 ]

Houdoe


Acties:
  • 0 Henk 'm!

  • MarcPV
  • Registratie: Oktober 2014
  • Laatst online: 07-08-2022
Witte schreef op maandag 22 april 2019 @ 19:12:
Lijkt niet zo ingewikkeld. Je leest het bestand regel voor regel in, je split het en op basis van de waarde van de TYPE kolom bepaal je wat te doen: nieuw record aanmaken, of velden imvullen.
Tip: laat Access ook een ID bepalen, met een sleuteltje.
Je kan aan een enkele persoonstabel misschien al genoeg hebben, maar misschien ook zinvol om een beroepentabel te maken,aangezien een persoon meerdere beroepen kan hebben.
Het ID had ik al toegevoegd, en de manier die je beschrijft is inderdaad ook een mogelijke werkwijze, maar daarvoor heb je VBA kennis nodig, waarover ik niet beschik...