Record selecteren met VBA in doorlopend formulier

Status
Niet open voor verdere reacties.

john64

Gebruiker
Lid geworden
12 jun 2011
Berichten
268
Goedemorgen,
Ik ben al eerder aan het zoeken geweest naar een oplossing voor mijn "probleem", maar kom er niet uit.

Ik heb een aantal doorlopende formulieren die afhankelijk van elkaar zijn. Ik gebruikte eerst keuzetabellen. Hiermee is het mogelijk om d.m.v. VBA direct een bepaald record te selecteren met bijv. Me.kzlVoorbeeld = IDxxx, waarbij IDxxx een op een bepaalde manier berekende/gezochte identifier is van een record in de keuzetabel.

Is het ook mogelijk om direct een record te selecteren in een doorlopend formulier.

Code:
DoCmd.GoToRecord acDataForm, "frmXXX", acGoTo, 7

maar hiermee gaat focus naar 7e record in het genoemde formulier.
Wat ik zou willen is dat focus gaat naar record met bepaalde id

Is dit mogelijk ?

mvg
John
 
Beste,

probeer 's dit aan te passen naar uw geval

Code:
Form_AfterUpdate()
Dim lngPosition as Long
lngPosition = Me.CurrentRecord ' legt de index vast van de positie van uw huidige record

' *****voer hier uw code uit waarbij dat je focus bv verplaatst wordt naar ergens anders ***

Me.ControlName.SetFocus ' ga terug naar het subformulier
Me.Form.Recordset.Move lngPosition ' keer terug naar uw recordpositie
End Sub
 
Hallo Johan,

Dank voor reactie.
Op deze manier wordt wel de index van een record vastgehouden, maar wat ik zoek is iets om direct het record met een bepaald ID op het formulier te selecteren.
In de tussenliggende code, kan het gebeuren dat er records verwijderd worden, of toegevoegd, en dan is dus de eerder vastgelegde index niet meer van toepassing.

Is het niet mogelijk om, net als in keuzelijsten, het record te selecteren dat voldoet aan bepaalde voorwaarden (bijv. een bepaalde identifier, of de eerste waarvan een naam voldoet aan een waarde) ?

mvg
John
 
En als je dan je focus op dat bepaald ID heb gekregen wat is dan de bedoeling? Dat je dingen invult of wijzigt of gewoon raadpleegt? In een doorlopend formulier zie je nml niet echt veel op één recordregel en moet je nogal wat schuiven meestal. Ik ga meestal te werk met een list op een formulier met daarboven een zoekveld waar je eender wat kunt invullen en je listbox wordt telkens gefilterd en ververst aan de hand van wat je in die listbox intikt. Eenmaal de juiste record gevonden dubbelklik ik dan op die record om bv een net pop-up formulier te openen. Werkt lekker snel en intuitief
 
Ik denk dat je, op basis van de gevonden ID van formulier 1, met FindFirst moet werken op Formulier 2 met de ID van formulier 1. Al snap ik de constructie niet helemaal; ik zou zelf het tweede formulier filteren op basis van het eerste formulier. Wat heeft het voor zin om in dat tweede formulier records te zien die je op dat moment toch niet nodig hebt? De filtering verandert immers als je in Formulier 1 een ander record selecteert.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan