data uit tabel opslaan als komma gescheiden text bestand

Status
Niet open voor verdere reacties.

galletje

Gebruiker
Lid geworden
8 jun 2010
Berichten
70
Beste Forumgebruikers,

Ik zit met een uitdaging op het gebied van het opslaan/exporteren van data uit een tabel/formulier.

Even een voorbeeld:

In de database vult een klant via de front end wat gegevens in een tabel genaamd medewerkersExtern. Deze tabel moet dan aan back end site dan omgezet worden naar een komma geschieden text bestand. Zie bijlage voor een voorbeeld zoals het eruit moet komen zien. De streepjes mogen ook komma's zijn.

Het geheel moet worden aangestuurd door een button op een formulier, welke het bestand dan omzet en opslaat op de c:/import directory.

Deze file moet worden ingelezen in een ander systeem voor registratie.

Is dit mogelijk met access. Ben al lang aan het proberen. Je kan hem wel handmatig converteren via het menu, maar dit wil ik de gebruikers niet laten doen.

Hoor graag om dit mogelijk is en hoe.

Thanks

John

Bekijk bijlage caImportTemplate.txtBekijk bijlage caImportTemplate.txtBekijk bijlage caImportTemplate.txt
 
Je laat een bestandje zien waar we niet zoveel mee kunnen; ik zie een hoop cijfertjes met een pipe als scheidingsteken, maar is dat één record met een hoop velden, of zijn dat een heleboel records met één veld?
 
Re opslaan als komma geschieden

Beste Octafish,


Excuus inderdaad ik zie het niet goed uitgelegd. Het bestand je met de pipe is het bestandje zoals we hem moeten inlezen.
De inhoud van dit bestandje en wat er tussen de pipe's staat, is de benodigde date/text wat men invoer vanuit de front end.

Voorbeeld op plaats nummer 1 staat bijvoorbeeld ID, op plaats nummer 2 staat dan achternaam, enz enz.

Grt John
 
Dus je ziet één record. Dat is in beginsel wel in t lezen; ik zou daar in ieder geval een importspecificatie bij gebruiken. Die gebruik je vervolgens bij de opdracht TransferText om de data juist in de tabel te krijgen.
 
re importspecificatie

Beste Octafish,

Ik heb ondertussen veel geleerd van jou en van dit forum, maar wat is een importspecificatie?? (Het txt bestandje wat ik als bijlage heb gedaan is het importfile van het programma waar het moet worden geïmporteerd.) Bedoel je dat?

Onderstaande heb ik geprobeerd in een formulier onder een button.

formulier naam is hier "frm_medewerkersbewerken" welke de uitkomst laat zien van een zoekquery op achternaam. (gebruiker typte achternaam in)
Dit gaat goed, juiste invoer word getoond. Op dit formulier staat nu een button met onderstaande code welke de data wat net is gevonden naar een komma gescheiden file zou moeten omzetten.
De data bevat tekst, en selectie boxen. (weet niet of selectie boxen wel kunnen worden geëxporteerd.

Code:
DoCmd.TransferText acExportDelim, , "queryname of tabel naam", "C:\test\exportfile.csv", -1

Zou je me beetje op weg kunnen helpen met een voorbeeld.

Thanks

John
 
Laatst bewerkt:
De specificatie komt precies daar waar jij niks hebt: tussen de twee komma's. Je moet hem echter wel eerst maken, en dat kan alleen als je data importeert met de wizard. En in dat proces op de knop <Geavanceerd> klikt. Je komt dan in een venster waarin je a) precies kunt aangeven wat en (vooral) hoe je de data wilt importeren, en b) de specificatie opslaan. En als de spec is opgeslagen, kun je hem zowel voor import als voor export gebruiken. Access exporteert of importeert de gegevens dan precies zo als jij ze wilt hebben. Nogmaals: er is geen andere manier om de specificatie te maken dan door exact dezelfde gegevensbron te importeren, en de opmaak aan te passen. Dat kan dan de veldopmaak zijn, of het te gebruiken scheidingsteken.

...weet niet of selectie boxen wel kunnen worden geëxporteerd.
Zolang de objecten zijn gekoppeld aan velden, exporteer je precies wat er in staat. Dus een keuzelijst cboKlanten die de klantnaam laat zien, zal waarschijnlijk het KlantID exporteren, want dat is de waarde die je opslaat.
 
Re import

`Best deze heb ik gemaakt en hij voert hem dan inderdaad uit. Staat ook netjes in de lijst export.
Kan ik deze nu aanroepen in een functie op een formulier? Of is dat alleen mogelijk via het menu. Dit menu is namelijk niet zichtbaar voor de gebruikers omdat alleen de formulieren zichtbaar zijn in pop up mode.

Zie bijlage hoe hij het nu exporteert, dit is perfect. Nu nog automatisch of via een button aanroepen op een formulier.
Heb het ook via een outlook taak geprobeerd maar daar geeft hij Fout aan.

Hoop dat dit mogelijk is.

John

Bekijk bijlage MedewerkersImport.txt
 
Het codevoorbeeld dat je eerder gaf was typisch een code voor een knop. Dus dat principe is prima te gebruiken.
 
re import

Dat had ik ook al geprobeerd zoals hieronder maar krijg het niet werkend. Ik had de exportfile opgeslagen als "exportmedewerker" en deze in de code verwerk. Kan ik deze niet als een docmd uitvoeren?

Code:
DoCmd.TransferText acExportDelim, , "nexportmedewerker", "C:\test\exportfile.csv", -1

Hier houd mijn ervaring op en zit ik muur vast.

Hoop dat je me op weg kan helpen met voorbeeld.

John
 
Ik zie nog steeds de naam van de specificatie niet terug in je code.
Code:
     DoCmd.TransferText acExportDelim, "Specificatie" , "exportmedewerker", "C:\test\exportfile.csv", -1
 
Beste Octafish

Ik zou niet weten hoe ik dat in me code zou moeten aanroepen. Dit gaat mijn pet te boven helaas.

Joh
 
Het is anders dezelfde code.... Enige wat je moet doen (en ik krijg niet de indruk dat je dat al gedaan hebt) is een importspecificatie maken die je kunt gebruiken. En dat moet toch echt door eenmaal handmatig een tekstbestand te importeren, en via de knop <Geavanceerd> alle velden te mappen op het juiste type, het scheidingsteken in te stellen etc. en de specificatie op te slaan. Zodra hij is opgeslagen, kun je hem zowel in import als in export gebruiken. Zoals door mij aangegeven.
Meer kan ik niet voor je doen, omdat importspecificaties niet zomaar zijn te exporteren of anderszins uit een db te halen. Ze zitten behoorlijk verstopt :).
 
Re export

Beste,

Ik heb de import aangemaakt volgens jouw uitleg. Staat netjes erin nu, heeft ook een extra tabel aangemaakt met zelfde naam. Echter zie ik hem niet onder export staan. En hoe koppel ik hem nu aan het formulier waarvan ik de data wil exporteren naar het text file.

I am lost now.

John
 
Je haalt nog steeds een paar dingen door elkaar. De import die je hebt moeten doen was puur om de importspecificatie te kunnen maken. Verder doe je daar niks mee, en de tabel mag ongetwijfeld ook weer weg. De enige reden om hem te doen was dus om de naam van de specificatie (en de specificatie zelf) vast te leggen. En die heb je weer nodig bij je export. Die je al hebt, maar dan dus zonder de specificatie.
 
Re export

Beste

Ik had dat inderdaad al gedaan zie code hieronder.

Code:
Private Sub Knop483_Click()
DoCmd.TransferText acExportDelim, import - medewerkerimport, "qry_MedewerkersBewerken1", "C:\import\Qry_MedewerkersImport.txt", -1
End Sub

Echter krijg ik bij uitvoer de foutmelding zoals in bijlage te zien.

fout.png

John
 
Kijk eens hoe de rest in de opdracht staat, en vergelijk dat ook eens met mijn voorbeeldcode :).
 
Re export

Goedenavond,

Heb gevonden wat jij bedoelde, gewoon 20 keer overheen gelezen. Grrrr

Echter nu doet hij het nog niet. De code is als volgend.

Code:
DoCmd.TransferText acExportDelim, "Import-MedewerkersImport1", "tbl_medewerkersExtern", "C:\import\exportmedewerker.txt"

Echter geeft hij foutcode 3625 aan. "De specificatie Import-MedewerkersImport1 voor het tekstbestand bestaat niet.

Ik heb hem voor de zekerheid nog een keer aangemaakt op jouw manier. Hij is zichtbaar in de lijst met Import onder deze naam. Voor de rest bestaan de Tabel en text bestand op de gegeven locatie.

Wat gaat hier nog fout?

John:shocked:
 
Het wordt tijd voor een voorbeeldje :).
 
Re export

Update: probleem met
De specificatie Import-MedewerkersImport1 voor het tekstbestand bestaat niet
is opgelost.
Ik ging er vanuit dat het na de wizard zelf opslaat echter moet je dat onder geavanceerd doen.

Echter gaat hij nu alleen zeuren om volgende probleem. Zie print screen.

fout 2.png

Code:
DoCmd.TransferText acExportDelim, "Import", "tbl_medewerkersExtern", "C:\import\Export.txt", -1

Pad bestaat zoals het er staat. Er staat geen export#txt in mijn pad????

Grt \\John
 
Zie bericht #18 :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan