vernieuwen van gegevens via een macro??

Status
Niet open voor verdere reacties.

JanvanderLugt

Gebruiker
Lid geworden
21 feb 2013
Berichten
21
Goedemorgen,

Ik wil graag in Access 2007 een macro maken die het volgende doet: Een reeds geopende query selecteren en daarna in deze query de gegevens vernieuwen. De reeds geopende query selecteren lukt wel via de actie Object Selecteren in de macro. Alleen hoe vernieuw ik de gegevens vervolgens in de macro?

Ik kan natuurlijk handmatig op de knop allesvernieuwen klikken of shift+F9 gebruiken, maar het gaat mij erom dat ik een macro heb, zodat ik met een sneltoets deze twee handelingen (Object Selecteren en Vernieuwen) in een keer kan laten uitvoeren.

Ik heb in de macro al geprobeerd OpdrachtUitvoeren - Vernieuwen, QueryOpnieuwUitvoeren en SchermBijwerken maar geen van deze drie acties leidt tot het gewenste resultaat. Wat is de beste oplossing?

Jan
 
Jan,

Ik begrijp je probleem niet. Een query is niet meer of minder dan een kopie van wat je in een tabel hebt staan.
Dit kun je niet aanpassen. Dit lijkt een beetje op het maken van een foto, deze foto bijwerken en verwachten
dat het onderwerp van de foto ook veranderd.
Ik vermoed dat je een query opent, de achterliggende tabel aanpast en daarna deze gegevens terug wil zien in
de query. Dit is te doen door eenvoudig de query te verversen recordset("jouwquery").refresh

Mocht je meer vragen hebben stel ik voor dat je even een uitgeklede versie van je bestand meestuurt.

Veel succes.
 
Bedankt voor je reactie. Het is inderdaad zoals je beschrijft: er worden gegevens aan de tabel toegevoegd, die ik wil terugzien in mijn query door deze te vernieuwen. Alleen de programmacode die je geeft: recordset("jouwquery").refresh; waar gebruik ik die?
Mijn idee was namelijk om een macro te maken, hier een sneltoets aan te geven, zodat ik via de sneltoets de query makkelijk kan verversen steeds.

Ik heb weinig ervaring met VBA, vandaar mijn vraag waarschijnlijk.

Jan
 
En waarom gebruik je geen formulieren? Zoveel makkelijker... En vergeet macro's. Dat is een rampenplan in Access, en een garantie voor ofwel vroegtijdige kaalheid ofwel een enkele reis in een busje in een witte jas.
 
Laatst bewerkt:
Ik het het geprobeerd via het gebruik van een formulier maar krijg het niet voor elkaar.

Ik heb een formulier aangemaakt, en in eigenschappen een gebeurtenisprocedure aangemaakt (bij openen van het formulier):

Private Sub Form_Open(Cancel As Integer)
Recordset("BONHOEVEELHEID Overzichten").Refresh
End Sub

Dit levert echter nog niet het gewenste resultaat. Ik neem aan dat je wel iets dergelijke bedoelde met je opmerking om een formulier hiervoor te gebruiken??
 
Ik snap best dat die code niet werkt, want die deugt niet. Zowiezo is Refresh alleen bedoeld om de zichtbare objecten op het formulier te verversen, Refresh doet niks met de onderliggende gegevens. Een formulier werk je bij met de opdracht Me.Requery. Er vanuit gaande dat je formulier is gebaseerd op de gewijzigde tabel. En bij het openen van het formulier is Requery zinloos, want dan is er nog niks gewijzigd en wordt zowiezo alles al correct weergegeven. Het gaat juist om de veranderingen die plaatsvinden nadat het formulier is geopend.
Een subformulier kun je zo ook bijwerken, alleen moet je dan de naam van het formulier erbij zetten.

Als je zo weinig kennis van (programmeren in) Access hebt, vraag ik me af of je je al met dit soort zaken bezig moet houden. Ik zou zeggen: zoek eerst de klok, ga dan luisteren of hij belt en ga dan pas op zoek naar de klepel :)
 
Octafish,

Als we iedere keer te horen krijgen dat VBA binnen Access moeilijk is en dat we eerst maar eens de basis voor het
programeren in Access moeten kijken worden we nooit wijzer.
Tenslotte heb ik en waarschijnlijk ook jij zelf menigmaal je kop gestoten voor het programeren in VBA je makkelijk
afgaat.

Jan, gewoon blijven proberen en als je er niet uitkomt vragen stellen. Daar zitten we tenslotte voor.

Veel Succes.
 
Wellicht dat ik een beetje ongenuanceerd over kwam, wat uiteraard niet de bedoeling is. Iedereen die iets wil met automatiseren (van databases) moet ergens beginnen met leren, en dat proces kost nu eenmaal tijd en energie.
Maar wat ik bedoel is: probeer dan geen dingen die je niet snapt en die ver buiten je kennisniveau liggen. Het heeft weinig zin om allerlei knappe code te kopieëren en plakken en dan te hopen dat die werkt. Maak eerst databases en formulieren waarvan de basisfunctionaliteit klopt, en die gewoon werken. En ga dan verder kijken wat je kan verbeteren. Daar heb je dan waarschijnlijk VBA kennis voor nodig, of macro kennis.
Leer jezelf daar in ieder geval eerst de basisbeginselen aan, zodat je weet wat je aan het doen bent.
Zo ben ik ook begonnen. En ja, dan stoot je regelmatig het hoofd. En ik ben vast niet de enige :)
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan