Toon posts:

[Access/VBA] Importeren van bestand

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi Hoi,

Ik wil voor een museum een bestand inlezen in Access 2k3. Dit bestand is niet kommagescheiden en heeft geen vaste breedte.

Een voorbeeld
%0 1
BE Het model is uitgeust met een schrobnet, dat afzonderlijk geregistreerd is onder inventarisnummer 4716. Het model is verder uitgerust met 18 stuks scheepsuitrusting.
**
%0 152
DE Beschrijving
BE dit is een test
BE Omschrijving #3
BE Omschrijving #4
BE omschrijving #2
**
Dit is uiteraard maar een klein voorbeeld. Per regel is er één veld. Een record eindigt met ** en een regel begint met de veldnaam uit de originele database (%0, DE of BE). Ook kan een veld meerdere occurrences hebben (zoals hier BE). Ik wil bij het museum een regel maken dat er voor bijv. BE niet meer dan 4 of 5 occurrences mogen zijn om zo toch goed in te kunnen lezen (of dit in VBA af te vangen.

Mijn vraag is of dit via een vba-bestand in te lezen is. Zo ja, dan kan ik er zelf mee aan de slag als ik weet dat het kan. Heeft iemand een klein voorbeeld liggen dat ik ter referentie kan gebruiken? of een bron op internet. Ik heb de nodige boeken over Access nageslagen, maar niet iets tegengekomen over het importeren van aparte bestandsindelingen. Ook op internet en GoT ben ik het niet tegengekomen (of het week af van wat ik wil :))

Alvast bedankt voor de inzet!!

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Zolang je een set regels op kunt stellen die een dergelijk bestand onomstotelijk beschrijven: ja, het kan. Je moet dan alleen even de moeite nemen om de regels om te zetten in programmacode die de juiste gegevens op de juiste plaats neerzet.
Zo ja, dan kan ik er zelf mee aan de slag als ik weet dat het kan.
Het kan, dus nu kun je aan de slag... ;)

My personal website


Verwijderd

Topicstarter
OZ-Gump schreef op dinsdag 01 maart 2005 @ 19:39:
Zolang je een set regels op kunt stellen die een dergelijk bestand onomstotelijk beschrijven: ja, het kan. Je moet dan alleen even de moeite nemen om de regels om te zetten in programmacode die de juiste gegevens op de juiste plaats neerzet.


[...]

Het kan, dus nu kun je aan de slag... ;)
Mooi, als ik vragen heb, kan ik dan hier terecht ;)

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Verwijderd schreef op woensdag 02 maart 2005 @ 01:01:
[...]


Mooi, als ik vragen heb, kan ik dan hier terecht ;)
Als jij een mooi topic opent en je aan de QuickStart houdt? Ja ;)

Succes met het maken van je oplossing. Mocht je vragen hebben en er echt niet meer uitkomen: P&W is the place to be...!

My personal website


  • Boss
  • Registratie: September 1999
  • Laatst online: 08:21

Boss

+1 Overgewaardeerd

Anders zou ik lekker met VBA aan de slag gaan. Definieer een recordset en lees de tekstfile regel voor regel in. Kom je een ** tegen: nieuw record en anders gewoon de waardes in de betreffende velden stoppen.

Is 't eenmalig of moet deze conversie op regelmatige basis worden gedaan?

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


Verwijderd

Topicstarter
Boss schreef op woensdag 02 maart 2005 @ 11:45:
Anders zou ik lekker met VBA aan de slag gaan. Definieer een recordset en lees de tekstfile regel voor regel in. Kom je een ** tegen: nieuw record en anders gewoon de waardes in de betreffende velden stoppen.

Is 't eenmalig of moet deze conversie op regelmatige basis worden gedaan?
Dit zal op regelmatige basis moeten gaan gebeuren. De inhoud van het importbestand zal ook bestaande records bevatten. Heeft iemand een idee hoe ik dat kan opvangen?

In de trant van If(record bestaat) then <updatequery>?

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Gebruik daarvoor in Access de functie DCount.
En inderdaad,
Visual Basic .NET:
1
2
3
4
5
if DCount(Foo, Bar) = 0 then
  inserten(gegevens)
else
  bijwerken(gegevens)
end if

[ Voor 27% gewijzigd door OZ-Gump op 07-03-2005 13:10 ]

My personal website

Pagina: 1