Draaien Dos batchfiles in Access

Status
Niet open voor verdere reacties.

Marcel Boekhout

Gebruiker
Lid geworden
19 mrt 2007
Berichten
9
Hallo allemaal

Ik gebruik zakelijk een database die informatie die niet op een andere wijze verkregen kan worden ophoest uit het bedrijfsmanagementsysteem . Daartoe worden een aantal teksttabellen uit dat managementsysteem gekopieerd, vervolgens geindexeerd, dan aan Access gekoppeld om er ten slotte middels een aantal verwijder- en toevoegquery's in een macro de tabellen mee bij te werken. Het probleem is dat als je dat automatiseert, de batchfile nog in volle gang is terwijl de query's al gestart worden. Met als resultaat oude, onbetrouwbare data. Er moet dus worden gewacht tot de batchfile gereed is voordat verder gegaan mag worden. Of mogelijk kun je ook met behulp van een soort 'íf exist' het bestaan van een dummyfile afvragen? Mijn idee is dit proces met behulp van een stukje code onder te brengen in 'Modules', maar mijn kennis van VBA is minimaal. Who helps me out?

Groet, Marcel.
 
dos

beste

naar aanleiding van uw vraag heb ik ook een vraag aan u toe. als ge in vista in dos mode gaat (cmd) sta je in azerty. als ge daar dan een doscommando geeft sta je dan in qwerty of blijf je in azerty staan? bij mij sta ik in qwerty ipv in azerty te blijven staan.3 en dat is knap vervelend. heb je daar misschien een oplossing voor?
thanx
 
Beste Alambra,

Even los van het gegegen dat Tardis natuurlijk wel gelijk heeft - we zijn er tenslotte om elkaar het leven te veraangenamen - moet ik je helaas meedelen je vraag niet te kunnen beantwoorden. Ik werk nog niet in Vista en zie vooralsnog ook niet het nut op korte termijn over te stappen. Sorry en succes gewenst verder.

Marcel.
 
Hallo Marcel,

je zou met telletjes kunnen werken.
Tel aan de kant van je managementsysteem per tabel om hoeveel rijen het gaat.
Doe hetzelfde aan de kant van Access.
Vervolgens exporteer je je gegevens naar Access, en laat in code de teller meelopen.
Als een tabel in Access nu zoveel extra rijen heeft gekregen als er vanuit de export zijn aangeleverd, weet je dat alles geexporteerd is.
Op dat moment start je je andere akties.

Als je het goed wilt doen, zul je wel voor een "error afhandeling" moeten zorgen.
Kan namelijk gebeuren dat een rij niet geimporteerd wordt, dan ga je met je teller de mist in.
Daarvoor is dan weer het gebruik van tijdelijke tabellen handig.

Kijk eens of je hiermee verder komt.

Groet,

Tardis
 
@Tardis,
Graag de knop misbruikmelding gebruiken, in plaats van opmerkingen te maken. Hiervoor zijn er (Super)Moderators op het forum. Graag rekening houden met de volgende mededeling:
http://www.helpmij.nl/forum/showthread.php?t=214634

@alambra,
Voor jou hetzelfde verhaal. Meld het aan een (Super)Moderator in plaats van er tegen in te gaan. Daarbij is het inderdaad niet echt gebruikelijk in iemand zijn/haar topic een eigen vraag te stellen. Ik laat het nu zo staan, omdat de topic starter jou beantwoord heeft. Wil je verder je probleem oplossen, raad ik je toch aan een eigen topic aan te maken in de juiste sectie.

PS de rest van de offtopic berichten zijn verwijderd.
 
@crash,

Graag de knop misbruikmelding gebruiken, in plaats van opmerkingen te maken

Okido.

de rest van de offtopic berichten zijn verwijderd.

inclusief de on-topic suggestie mijnerzijds richting Marcel, lekker handig, bedankt :(

Groet,

Tardis
 
Ha Tardis!

Allereerst bedankt voor je suggestie. Ik heb daar dinsdag al op gereageerd, maar ik denk dat ook die reactie prooi van Crash geworden is ;-). Jouw antwoord gelezen hebbende denk ik dat mijn uitleg toch niet helder genoeg geweest is. Vandaar deze nieuwe poging: Allereerst kopieer ik een aantal systeemtabellen naar een alternatieve lokatie. Vervolgens draai ik een programma over die tabellen heen. Dat zorgt er o.m. voor dat de data horizontaal wordt uitgelijnd waardoor het bruikbaar wordt voor gebruik in Access. De database bevat een aantal gekoppelde tabellen, die naar de bewerkte data ‘kijken’ en middels verwijder- en toevoegquery’s gebruikt worden om zelfstandige tabellen mee te vullen. De uiteindelijke output wordt uiteraard door afzonderlijke selectiequery’s verzorgd. Mijn probleem bestaat eruit dat als je de bovenomschreven acties achter elkaar door macro’s laat uitvoeren de verwijder- en toevoegquery’s al gaan draaien voordat de systeemtabellen bewerkt zijn. Omdat de kopieer- en indexeeractie in een batchfile zijn opgenomen moet dus afgewacht worden totdat a.h.w. het ‘sein veilig’ wordt gegeven. Mijn idee hierbij is door de batchfile een bestandje ‘busy.txt’ aan te laten maken en dat na beëindiging van de batchfile weer te verwijderen. Voordat de query’s gaan draaien moet dan gecontroleerd worden op het bestaan van dat bestand. Zo ja, moet een aantal seconden gewacht worden alvorens opnieuw te checken, zo nee mag doorgegaan worden met uitvoeren van het script. Wees, als je hier brood in zit alsjeblieft iets specifieker; mijn kennis van VB is echt minimaal…

Bij voorbaat dank en groet, Marcel.
 
Hallo Marcel,

jouw eerste uitleg was zeker helder genoeg.
Waar het op neer komt is dat je gegevens overdraagt.
Je weet dus vantevoren om hoeveel gegevens het gaat.
Na overdracht voer je een aantal handelingen uit, welke dat zijn maakt verder niet uit.
Op een gegeven moment zijn de handelingen uitgevoerd.

Als je er nu voor zorgt dat je je gegevens na de handelingen in een tijdelijke tabel (of tijdelijke tabellen) zet, check je steeds het aantal gegevens in je tijdelijke tabel met het aantal gegevens in je aanleverende tabel (je brontabel).
Als die aantallen gelijk zijn, betekent dat dat alle handelingen zijn verricht.
Op dat moment start je toevoegen en bijwerken.

Je zult dat zelf moeten vertalen naar code.
Huur zonodig een expert in, zonder VBA kennis ga je dat niet even voor elkaar krijgen.

Groet,

Tardis
 
je zou zoiets kunnen doen

'batch files draaien en busy.txt maken
'klaar, dan busy.txt verwijderen via batchfile

With Application.FileSearch
.LookIn = "C:\temp"
.FileName = "busy.txt"
Do While .Execute() > 0
'niets
Loop
MsgBox "ik ga nu iets doen"
End With
 
Maarten en Tardis,

Helemaal geweldig! Werkt uit de grote kunst! Als altijd heeft de oplossing ook alweer vraag gegenereerd, maar ik kan nu weer even door.

Nogmaals bedankt voor jullie support, Marcel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan