bijwerken tabel na invullen

Status
Niet open voor verdere reacties.

h.j.jager

Nieuwe gebruiker
Lid geworden
10 dec 2004
Berichten
4
Als ik via een zoek selektie een waarde selecteert en dat vult hij in een formulier de waarde in en dan klik ik op een knop om een query bij te werken, daarna vraagt ik via de zoekselectie de waarde op en blijkt er niets veranderd te zijn, pas als ik next record doe en weer terugbladeert dan is hij opeens wel bijgewerkt..
Moet ik dan elke keer als ik wat gewijzigd heb altijd een record verder bladeren en daarna weer terug bladeren om de wijzigingen te kunnen zien..het record staat nog in het geheugen dat wel..hoe kan ik dat op een mooiere manier oplossen, update na wijziging als gebeurtenis maken, of in vb een docmd displayallrecord??geven
Ik hoop dat jullie begrijpen wat ik bedoel..ik gebruik 2 rabellen, een om de selekteren, de andere om de record te wijzigen, en na wijziging word de tabel die geselekteerd was mee gewijzigd..het gaat jierbij om het veld locatie, ik stuur een file mee als voorbeeld
 

Bijlagen

Je kunt proberen door bij het betreffende veld achter "After update" een "Event Procedure" te zetten met als code: "DoCmd.RunCommand acCmdRefresh" (zonder de aanhalingstekens)

Waarschijnlijk is dat je probleem. Hoewel ik niet helemaal je vraag snap. Ik heb de bijlage bekeken maar snap niet precies de werking (of beter gezegd, hoe je het werkend wil hebben)
 
Geplaatst door Strange Bird
Je kunt proberen door bij het betreffende veld achter "After update" een "Event Procedure" te zetten met als code: "DoCmd.RunCommand acCmdRefresh" (zonder de aanhalingstekens)

Waarschijnlijk is dat je probleem. Hoewel ik niet helemaal je vraag snap. Ik heb de bijlage bekeken maar snap niet precies de werking (of beter gezegd, hoe je het werkend wil hebben)

Het is de bedoeling om te zien welke locatie zijn vrij en welke niet, door ja in te vullen in het formulier wijziging met de knop ernaast verander ik de andere tabel loc ook in ja, zo kan ik zien welke locatie vrij zijn (dat zijn er iets van 450)
is een locatie in gebruik dan moet er bij 449 vrij zijn en 1 bezet..dat is de opzet.. zie loc selectieknop een nee is dan een jaatje geworden, anders geef je dubbel uit..
begrijp je het nu...
 
Wijzigingen die je op een formulier uitvoert worden pas in de database opgeslagen als je van record wisselt of als je het formulier afsluit.
Als je voortijdig de wijzigingen wilt opslaan als je een specifiek veld aangepast hebt dan kun je het opslaan forceren door de volgende regel code te plaatsen op het bij verlaten event:
docmd.runcommand accmdsaverecord
 
Geplaatst door Bartuls
Wijzigingen die je op een formulier uitvoert worden pas in de database opgeslagen als je van record wisselt of als je het formulier afsluit.
Als je voortijdig de wijzigingen wilt opslaan als je een specifiek veld aangepast hebt dan kun je het opslaan forceren door de volgende regel code te plaatsen op het bij verlaten event:
docmd.runcommand accmdsaverecord

dat klopt maar eigenlijk moet de andere tabel loc bijgewerkt worden terwijk ik nog in het formulier zit
anders kan ik nooit zien of deze locatie al bezet is gemaakt. maar miscchien moet ik het anders aanpakken
je oplossing los het probleem nog niet op,
Misschien is het nog niet duidelijk omschreven.
ik heb dus 2 tabellen een tabel loc met alleen vaste locatie ongeveer 503 stuks
met de andere tabel wil ik dan mbv tabel loc de locatie bezet maken door een nummer en ja toe te voegen
op dat moment mag deze locatie niet meer uitgegeven worden, het aantal word dus dan 502
dus 502 zijn dan aangeduid met nee en een met ja
het blijven altijd 503 stuks , in het formulier is een selektie voor de locatie ( lees tabel loc uit ) dan kun je zien of er een ja of een nee bijzit, de ja geven aan locatie van tabel loc is dan iin gebruik.
Mocht je een ander idee hebben of het anders kan dan hoor/lees ik het graag
 
OK, je wilt dus een andere tabel wijzigen dan die waarop je formulier gebaseerd is.
Dan zul je toch moeten programmeren.

Je kunt middels code op het door jou gewenste moment gewoon SQL statements op de tabel afvuren.
Die code moet er dan ongeveer zo uitzien:


dim db as database
dim strsql as string

strSQL = "UPDATE tblJouwTabel SET fldJouwVeld = <een waarde> WHERE fldJouwVeld = <een waarde>"

set db = currentdb()
docmd setwarnings false
db.execute strsql, dbfailonerror
docmd setwarnings true

set db = nothing

Als je op deze manier op het juiste moment de juiste SQL statements afvuurt dan kun je alles doen wat je wilt.
 
Geplaatst door Bartuls
OK, je wilt dus een andere tabel wijzigen dan die waarop je formulier gebaseerd is.
Dan zul je toch moeten programmeren.

Je kunt middels code op het door jou gewenste moment gewoon SQL statements op de tabel afvuren.
Die code moet er dan ongeveer zo uitzien:


dim db as database
dim strsql as string

strSQL = "UPDATE tblJouwTabel SET fldJouwVeld = <een waarde> WHERE fldJouwVeld = <een waarde>"

set db = currentdb()
docmd setwarnings false
db.execute strsql, dbfailonerror
docmd setwarnings true

set db = nothing

Als je op deze manier op het juiste moment de juiste SQL statements afvuurt dan kun je alles doen wat je wilt.

en waar moet ik dit precies neerzetten in de knop bevestigen en db is dan de tabel loc??
als ik dat invoer dan krijg ik een compileer foutmelding
iets van niet gedefineerd of zo...of moet ik de code gewoon bovenaan zetten in het programmacode..??
ik ben nog maar een simpele gebruiker..
als ik het zo bekijk dan ben ik nog dagen bezig om de klus af te krijgen...
ik heb ooit wel een keer vba cursus gehad, maar dat viel zo tegen, ze vertellen je gewoon niks..beetje vaag en zo,,,ging met meer vragen naar huis eigenlijk...

ben meer van macro en query type...dan vba code..
dat word een cursus op den duur..
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan