Record in formulier tonen op basis van een keuze in een ander formulier

Status
Niet open voor verdere reacties.

so10070

Gebruiker
Lid geworden
4 feb 2014
Berichten
424
Het volgende zou ik willen doen: in een formulier (gegevenstabel gemaakt met een Tabelmakenquery) selecteer ik een record en wil naar het standaardformulier gaan op basis van twee velden uit de gegevenstabel. Dit doe ik in de WHERE-clausule van het DoCmd.Openform. Maar dit is een filter die een beperkt aantal records laat zien (die voldoen aan de filter). Op zich is dat geen probleem, maar ik zou naar het eerste record dat voldoet aan de filter willen gaan en dan verder vooruit en achteruit willen bladen in de totale tabel. Hieronder de code:

Private Sub DomeinVanHetProject_DblClick(Cancel As Integer)
Dim RecordNummer As Integer
Dim RecordSelectie1 As String
Dim RecordSelectie2 As String
Dim RecordSelectie As String

RecordSelectie1 = "DomeinProject = '" & Me.DomeinVanHetProject & "'"
RecordSelectie2 = "NaamProject = '" & Me.NaamVanHetProject & "'"

RecordSelectie = RecordSelectie1 & " AND " & RecordSelectie2

DoCmd.OpenForm "FormulierInnovatie", acNormal, , RecordSelectie, acFormReadOnly 'dit is een filter, maar zou de eerste plaats in de tabel moeten zijn waaraan de records voldoen om dan zonder problemen vooruit en achteruit te kunnen bladen

End Sub
 
Ik snap niet wat je bedoelt. Je maakt een samengesteld filter (beetje omslachtig, maar dat mag de pret niet drukken) en vervolgens open je een formulier met dat filter. Dat formulier laat vervolgens de records zien die aan het filter voldoen. Of dat 1 of meer records zijn, boeit daarbij totaal niet, al kun je met een Recordset van 1 record uiteraard niet bladeren. Maar bij meerdere records mag dat totaal geen probleem zijn. Dus wat ís het probleem?
 
Ik wil gewoon naar dat specifieke record gaan op basis van deze filter, maar toch gewoon kunnen bladeren in het bestand. Het bereik van bladeren is nu geblokkeerd op basis van de filter en dat wil ik niet. Is dat op te lossen met DoCmd.GotoRecord of DoCmd.FindRecord. Maar als ik deze commando's uitvoer, krijg ik de melding dat het object (de tabel waarin gezocht moet worden) niet geopend is. In het formulier wordt dit record uit dit (niet geopende bestand) wel getoond, maar het samengestelde bestand (op basis van de maakquery samengesteld) blijft blijkbaar open. Ik slaag er niet in dit probleem op te lossen.
 
Dat is natuurlijk niet op te lossen met GoTo en Find, want die werken op de actieve Recordset. Je opent het tweede formulier met een filter, dus je zult het filter weer moeten verwijderen. Dus met iets als:
Code:
Dim sFilter As String
sFilter = Me.Filter
Me.Filter = ""
Me.FilterOn = FALSE
Dit is nog geen werkende code, want je zult sFilter globaal in de module moeten declareren en niet binnen een procedure. Met een knop kun je dan switchen tussen filter aan, of filter uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan