Import vanuit csv wil lange cijferreeks niet importeren.

Status
Niet open voor verdere reacties.

Visara

Gebruiker
Lid geworden
10 mrt 2019
Berichten
217
Goedeavond,

Bij het importeren van een csv-file in een Table worden alleen de korte cijferreeksen geïmporteerd (1, 2 en 4 cijfers lang).
De lange cijferreeksen (zijn EAN-codes oftewel streepjescodes van 13 cijfers lang) worden overgeslagen.
Het veld in de table heb ik opgemaakt als Short Text.

Ik heb allerlei dingen geprobeerd in die opmaak van dat veld, niks lukt.
Waarom vertoond Access dit gedrag? Een tekst van bijv 30 karakters lang worden gewoon geïmporteerd, maar de cijferreeksen van 13 karakters niet.
Ik VERTEL Access toch de cijfers als tekst te behandelen door de opmaak van het veld in de tabel? En de import is vanuit een csv-file, die neemt toch geen opmaak mee? Begrijp ik het verkeerd?

Het gaat om de kolom artikelnr

Ik begrijp niet wat ik verkeerd doe. Kan iemand me helpen? De frustratie is vrij groot ;)

Import EAN codes.jpg
 

Bijlagen

  • Visara.zip
    28,7 KB · Weergaven: 21
  • csv file voor import in acces.csv
    4 KB · Weergaven: 29
Laatst bewerkt:
Ik krijg 'm prima geïmporteerd; hoe doe jij het? Want ik mis eigenlijk een schermpje in je afbeelding. En dat is nu exact het scherm waarin je vermoedelijk de fout maakt :).
 
Bedankt voor uw reactie.
Wat fijn dat het dus wel gewoon kán :)

Dit is wat ik doe (Access 2016 Engelstalig):
'External Data' - 'New Data Source' - 'From file' - 'Text file'
Met de 'Browse'-knop selecteer ik de csv-file.
Ik kies de optie 'Append a copy of the records to the table'
Dan kom ik in een scherm terecht met de naam 'Import text wizard'. Ik kan er kiezen uit 'Delimited' en 'Fixed Width'. Ik kies 'Delimited'.
Onderin dit scherm staat de knop 'Advanced...'
Als ik daar op klik zie ik dit, dat lijkt me hetzelfde scherm als in uw bijlage:
Import EAN codes2.jpg
In uw afbeelding staan meer kolommen.
Ik krijg het niet voor elkaar in mijn scherm te krijgen wat u liet zien.
 
Laatst bewerkt:
Ik loop denk ik iets verder door in de wizard voordat ik op Advanced klik. Bovendien voeg ik nooit gelijk toe aan een bestaande tabel, maar importeer ik altijd in een nieuwe tabel. Op die manier weet ik zeker dat de data optimaal geïmporteerd wordt. Na controle importeer ik de data dan in de doeltabel.
 
Bij toevoegen gegevens aan bestaande tabel:
Bij de twee opvolgende stappen in de wizard kan de 'Advanced...'-knop ook worden gebruikt.
Maar ook dan krijg ik niet de extra kolommen te zien die u wel ziet.

Als ik er voor kies om de csv in een nieuwe tabel te importeren, dan lukt het wel. (Import the source data into a new table)
Als ik heb aangegeven dat de eerste rij titels zijn en dán op 'Advanced' klik zie ik die extra opties wel. Ik moet dan kiezen voor 'Double' als veldopmaak. 'Single' geeft het weer als wetenschappelijke notatie.
Maar het ís geen getal. Het is een lap tekst die toevallig uit cijfers bestaat.
Dus het gaat niet goed. Wat ik invoer is niet een paar biljoen, het is een stukje karakters.

Nu kan ik het invoeren, maar ik heb er geen goed gevoel over.
Als ik Access vertel dat data die in een veld geplaatst gaat worden 'tekst' is (Short Text), waar slaat het dan op om cijfers die ik importeer vanuit een csv-file dan ineens anders te behandelen?
En waarom zou ik er omheen moeten werken door het eerst in een andere tabel te plaatsen? Iets toevoegen aan een bestaande tabel is toch een ingebouwde functie?
Ik importeer het uit csv, dan importeer ik geen opmaak mee. Dus als ik een cijferreeks in een 'Short Text' veld wil importeren, dan moet Access het als tekst accepteren. 3 cijfers ziet 'ie wel als tekst, 13 cijfers ineens niet.

Herstel: ik kan kiezen voor 'Short Text' in die lijst die u liet zien in het screenshot.
Blijft overeind staan dat het vervelend en raar is dat ik dit niet gelijk kan plaatsen in een al bestaande tabel :(
 
Laatst bewerkt:
Ik moet dan kiezen voor 'Double' als veldopmaak. 'Single' geeft het weer als wetenschappelijke notatie. Maar het ís geen getal. Het is een lap tekst die toevallig uit cijfers bestaat.
Kan dus allemaal, en ik heb alle varianten uitgeprobeerd. Single geeft een wetenschappelijke notatie, die je simpel kunt herstellen door daarna in de tabel de eigenschap alsnog om te zetten naar Double (vandaar mijn plaatje; dat was namelijk de laatste variant die ik testte). Daarnaast heb ik geïmporteerd als Double (ging gelijk goed) én als Tekst, en dat ging (uiteraard) óók goed, want bij Korte Tekst wordt er überhaupt niks veranderd aan de veldwaarden. 't Is maar waar je zelf wilt.
En, zoals ik al had uitgelegd, volgens mij moet je niet rechtstreeks willen importeren in je doeltabel. Al was het maar om doublures te voorkomen.
 
En, zoals ik al had uitgelegd, volgens mij moet je niet rechtstreeks willen importeren in je doeltabel. Al was het maar om doublures te voorkomen.
Dat zou een verstandige manier van werken kunnen zijn, ik geloof u. Maar dat maakt het niet praktisch, aangezien ik hoopte op het dagelijks / wekelijks automatisch toevoegen van nieuwe records aan de tabel.
Als er allemaal nieuwe, losse tabellen worden gemaakt maakt dat de zaak gecompliceerder.

Bent u het er eigenlijk wel of niet mee eens dat Access hier raar gedrag vertoond? Een reeks van 4 cijfers wél accepteren als invoer in een veld met opmaak 'tekst' en een reeks van 13 cijfers niet. Ik kan geen reden bedenken waarom dat zo zou zijn bedacht.
 
Ik heb de import geprobeerd naar een bestaande tabel met een tekstveld voor artiklenummer (ook access 2016, engelstalig) , en wat ik zie is dat de wetenschappelijke notatie wordt omgezet tot een tekst, wat waarschijnlijk niet de bedoeling is. Probeer eens het formaat van je csv aan te passen: kan je niet exporteren met een gewoon numeriek formaat in plaats van een wetenschappelijk formaat?
 
kan je niet exporteren met een gewoon numeriek formaat in plaats van een wetenschappelijk formaat?
Een csv is een tekstbestand, daar zit geen opmaak in.

@TS: ik heb nergens gezegd dat je voor elke import een nieuw bestand moet maken. Ik die dat in ieder geval nooit:ik gebruik altijd hetzelfde bestand voor de import. Ik gooi de oude dus eerst weg. Geheel geautomatiseerd overigens.

Het gedrag is overigens niet zo vreemd; als je gebruik maakt van de standaard instellingen evalueert Access, net als Excel waar dit ook speelt, de eerste waarden. Op basis daarvan wordt een veldtype gebruikt. Als andere waarden daarvan afwijken, heb je een probleem. Door de import vast te leggen in een importspecificatie omzeil je dat probleem. Overigens moet je, met de juiste importspecificatie, ook in een bestaande tabel moeten kunnen importeren, mocht dat echt nodig zijn.
 
Ik werk bijna dagelijks met csv bestanden, en je kan wel degelijk bepalen hoe en met welk formaat deze geëxporteerd worden :rolleyes:. De export specificaties geef je gewoon mee in het programma waar ze aangemaakt worden
 
Om het verhaal compleet te maken: ik heb het csv bestand eerst geïmporteerd naar een nieuwe tabel, waarbij ik via Geavanceerd de juiste veldtypes heb ingesteld. (tekstveld voor Artikelnummer dus). Vervolgens de Importspecificatie opgeslagen (hier: Kassabon) en de tabel vervolgens geïmporteerd. Deze tabel kan je nu rustig weggooien, mocht je dat willen. Daarna de import opnieuw uitgevoerd op de tabel Kassabonnen, en via Geavanceerd en de knop <Specificaties> de zojuist aangemaakte specificatie "Kassabon" geselecteerd. Vervolgens het importeren afgemaakt. Geen probleem, perfecte import :).
 
@noella: nogmaals, ik kan het blijven zeggen, niet iedereen werkt volgens jouw standaarden. Ik werk bijvoorbeeld met pakketten waarin ik het niet kan instellen. Tenzij je een sublieme glazen bol hebt, en bij TS in het hoofd kan kijken, zou ik mij wat minder stellig uitdrukken als je de juiste situatie niet kent.
 
Laten we de antwoorden tot de feitelijke vraag beperken. Dit is niet de plek voor discussies
 
Laat ik nu van mening zijn dat ik een goede oplossing heb gegeven? Nu jij nog :).
 
Ik werk bijna dagelijks met csv bestanden, en je kan wel degelijk bepalen hoe en met welk formaat deze geëxporteerd worden :rolleyes:. De export specificaties geef je gewoon mee in het programma waar ze aangemaakt worden
Bedankt voor uw reacties.
Ik heb geen invloed op het aanmaken van de oorspronkelijke csv-bestand(en), dus het is handiger als ik mijn oplossing zoek in de fase van het importeren in Access (denk ik).
 
Om het verhaal compleet te maken: ik heb het csv bestand eerst geïmporteerd naar een nieuwe tabel, waarbij ik via Geavanceerd de juiste veldtypes heb ingesteld. (tekstveld voor Artikelnummer dus). Vervolgens de Importspecificatie opgeslagen (hier: Kassabon) en de tabel vervolgens geïmporteerd. Deze tabel kan je nu rustig weggooien, mocht je dat willen. Daarna de import opnieuw uitgevoerd op de tabel Kassabonnen, en via Geavanceerd en de knop <Specificaties> de zojuist aangemaakte specificatie "Kassabon" geselecteerd. Vervolgens het importeren afgemaakt. Geen probleem, perfecte import :).

Zo werkt het inderdaad.
Tja, de weg die ik koos (direct aan een bestaande tabel toevoegen mbv de wizard) gaf me onderweg geen optie voor het instellen van veldtypen (cijfers/tekst etc).
Ik kwam ook niet op het idee het het op een andere manier te importeren, omdat ik dacht kale karakters (zonder opmaak) vanuit csv in access te plaatsen en dat Access niet zou gaan rommelen aan de opmaak.
Ik ging er zonder twijfel vanuit dat Access het dan op zou maken zoals ik de velden in de Access-tabel had opgemaakt. In dit vb: alle cijfers worden dus tekst.
Met mijn beperkte leken-inzicht lijkt me dat ook een veel logischere manier. Zolang ik iets importeer dat in het veld zou kunnen passen qua veldopmaak zou Access het naar mijn beleving dus op moeten maken zoals het veld is.

Ik kan weer verder!
Mijn dank is groot.
 
Prima dat je er uit bent. Nu nog afleren om complete berichten te quoten :).
 
Ik zal er in het vervolg aan proberen te denken, meneer OctaFish ;)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan