Csv met variable inhoud

Status
Niet open voor verdere reacties.

trem89

Gebruiker
Lid geworden
21 mei 2008
Berichten
40
Beste mensen,

Ik zit in (in mijn ogen)met een lastig vraag.

Namelijk: ik heb een csv bestand. het ziet een beetje zo uit:
Fictie wel

Van henken, ARE Jan Bernand Geboren 1 jun 1976

1970-80 Geboren in Maaspit
1980-90
1990-00
2000-10 Getrouwd met Elisabet, zie 4 - 4 - 8
Einde Fictie

Hierboven zie je dat bij 1980-90 1990-00 niets is. Ik wilde dit in access invoeren met de kolom met jarentallen erin, maar dat lukte niet want niet elke jaartelling is is gebeurd. Mijn vraag is hoe kan ik er voor zorgen dat de "lege jaren" over worden geslagen zonder dat ik iets doe. Hierbij ik dit automatiseren omdat het over duzienden papieren gaat.

Dank U.

Groet,

Femke:D
 
Hallo Femke,

De vraag is ook zonder het probleem van de lege jaartallen al lastig genoeg, omdat je zo te zien met een tamelijk inconsistent tekstbestand te maken hebt.

Begrijp ik het goed dat je blokken tekst hebt, die gescheiden zijn met de regels:

Fictie
..
..
Einde Fictie

Je zegt dat de import niet lukt omdat je lege jaartallen hebt. In je voorbeeld zie ik dan 1980-90 staan, maar Access zal dat nooit als een (moeten) jaartal pakken. Als je dit zo zou importeren, loop je een goede kans dat het getal 1890 wordt geïmporteerd...
En de waarde erachter zou dan leeg blijven. Maar het record wordt neem ik aan wel aangemaakt.

Dus de eerste vraag is eigenlijk: heb je een wat uitgebreider voorbeeldbestand dat je laat importeren, en met welke importspecificatie doe je dat? Of importeer je het bestand met VBA, waarbij je het dan regel voor regel inleest en interpreteert?
 
Hallo Femke,

De vraag is ook zonder het probleem van de lege jaartallen al lastig genoeg, omdat je zo te zien met een tamelijk inconsistent tekstbestand te maken hebt.

Begrijp ik het goed dat je blokken tekst hebt, die gescheiden zijn met de regels:

Fictie
..
..
Einde Fictie

Je zegt dat de import niet lukt omdat je lege jaartallen hebt. In je voorbeeld zie ik dan 1980-90 staan, maar Access zal dat nooit als een (moeten) jaartal pakken. Als je dit zo zou importeren, loop je een goede kans dat het getal 1890 wordt geïmporteerd...
En de waarde erachter zou dan leeg blijven. Maar het record wordt neem ik aan wel aangemaakt.

Dus de eerste vraag is eigenlijk: heb je een wat uitgebreider voorbeeldbestand dat je laat importeren, en met welke importspecificatie doe je dat? Of importeer je het bestand met VBA, waarbij je het dan regel voor regel inleest en interpreteert?

Nee Eigenlijk niet, want op deze pc is Access niet geinstalleerd.

Ik zal je vanaf begin vertellen. Ik moet eerste kaarten in scannen en via het programma Omnipage 17 inlezen en exporteren als csv bestand. Dan krijg je alles onder elkaar in verkeerde volgorde, maar hier heb ik iets op gevonden net.

Ik kreeg nu twee kolom, zie hier onder.

Van Boom Johan;

echtg. 1);
2);
;geb. Remond,
;26-jul-06
huw. 1:;
2:00;
overl.;
1850-60;
1860-70;
1870-80;
1880-90;
1890-00;
1900-15;A , 48-6
1915-39;
DW
Instellingen
6

ik kies de optie gescheiden door " ; ". voor de rest pas ik niets aan de wizard instellingen van access 2003
 
En als je dit bestand importeert, gaat het dan nog steeds fout? En zo ja, wat gebeurt er dan?
 
En als je dit bestand importeert, gaat het dan nog steeds fout? En zo ja, wat gebeurt er dan?

Het gaat wel goed, maar wat ik wil is dat elke gegevens die geimporteerd worden in een kolom komen ipv onder elkaar in een kolom.

en dan de waarde jaartal niet er in komt maar enkele de gegevens na de jaartal.


Voorbeeld kolomen

Naam Geboorte Echt. Overl. 1850-06 1900-15
Van Boom Johan Remond - - - A , 48-6.

Dit is wat ik graag zou willen. Maar Acces zet ze gewoon onder elkaar.

Bedankt voor de reactie OctaFish.:thumb:
 
De reden dat je alles in één kolom krijgt, is waarschijnlijk dat je csv bestand niet goed is. Normaal gesproken moet je bij een import bestand onderscheid kunnen maken tussen de Gegevens (Velden dus) en de Rijen (Records). Daarom wordt er onderscheid gemaakt tussen Veldscheidingstekens, en Recordscheidingstekens. Access weet dan hoeveel kolommen er gebruikt worden, vult die, en gaat naar een nieuw record als het Recordscheidingsteken wordt bereikt.
Het probleem ligt dus bij het bronbestand. Vandaar dat ik in mijn eerste reactie vroeg of de tekst Fictie... - ... Einde Fictie het begin en einde van een gegevensblok markeert. Je moet namelijk op de een of andere manier van het doorlopende gegevensblok een verdeling naar Records kunnen maken.
 
De reden dat je alles in één kolom krijgt, is waarschijnlijk dat je csv bestand niet goed is. Normaal gesproken moet je bij een import bestand onderscheid kunnen maken tussen de Gegevens (Velden dus) en de Rijen (Records). Daarom wordt er onderscheid gemaakt tussen Veldscheidingstekens, en Recordscheidingstekens. Access weet dan hoeveel kolommen er gebruikt worden, vult die, en gaat naar een nieuw record als het Recordscheidingsteken wordt bereikt.
Het probleem ligt dus bij het bronbestand. Vandaar dat ik in mijn eerste reactie vroeg of de tekst Fictie... - ... Einde Fictie het begin en einde van een gegevensblok markeert. Je moet namelijk op de een of andere manier van het doorlopende gegevensblok een verdeling naar Records kunnen maken.

Dit is de csv bestand.

"AMAN, Jannet Fan"
"echtg. 1)";""
"91";""
"";"geb. Lembret,"
"";"6 aug 1871"
"huw. 1:";""
"2:";""
"overl.";""
"1850-60";""
"1860-70";""
"1870-80";""
"1880-90";""
"1890-00";"10, 165-4"
"1900-15";""
"1915-39";""
"DW";""
"Instellingen";""
"000031"
Wat moet ik hier aan doen?:(
 
En dit is één record?
Kun je een tekstbestandje posten met een paar records er in?
 
En dit is één record?
Kun je een tekstbestandje posten met een paar records er in?

Ja natuurlijk, maar ik heb het wel handmatig in gezet uit drie aparte csv bestanden. Voor elke persoon wordt een nieuw csv aangemaakte. Zie de bijlage.

And Thanks agian OctaFish
 

Bijlagen

In je voorbeeld heb je op regel 17 en 18 staan:
"Instellingen";""
"000029"

Regel 35 en 36:
"Instellingen";""
"000030"

Regel 53 en 54:
"Instellingen";""
"~~~~~31"

Er maar even van uit gaande dat je de verkeerde toets hebt ingedrukt op regel 54: is de regel Na Instellingen altijd de laatste regel?
En maak je één bestand aan, of heb je voor elk record een eigen bestand?
 
OctaFish,

Elke csv bestand bevat als laatste zin de nummer die uit zes tekens bestaan.
Omdat het via scanner automatische herkent wordt is regel 54 fout, het moet 000031 zijn
ivp ~~~~~31`.

Ik heb even drie csv bestand samen gevoegd. Ik zou het liefste een tabel willen.
Ik heb de mogelijkheid om zowel als alles in een als alles apart.

Wat is je tip of wat zou ik kunnen doen OctaFish?

Dank je wel voor reactie
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan