OpenArgs vraagje

Status
Niet open voor verdere reacties.

InneV

Nieuwe gebruiker
Lid geworden
21 okt 2011
Berichten
4
Hallo,

In mijn opleidingsdatabank heb ik een formulier FOpleiding, met daarin "subformulier QSessie".

Als ik dubbelklik in het veld "SessieId" (in subformulier), wil ik voor die sessie enkele data ingeven.

Na wat rondzoeken kwam ik al op onderstaande codes.

Code:
Private Sub SessieId_DblClick(Cancel As Integer)

    DoCmd.OpenForm "fDatumsSessie", , , , acFormAdd, , Me.SessieId

End Sub

Bij het openen van het formulier FDatumSessie staat deze code:

Code:
Private Sub Form_load()

    If Not Nz(Me.OpenArgs, "") = "" Then

        Me.SessieId = Me.OpenArgs

    End If
            
End Sub

Met deze code wordt het juiste formulier geopend, met de juiste SessieID, maar altijd in een nieuw/blanco veld. Ik zou graag de reeds ingegeven data ook willen zien.

Ik hoop dat mijn uitleg duidelijk genoeg was en jullie mij kunnen helpen.
Ik ben een beginnende VB-gebruiker en het meeste is nog Chinees voor mij... :o

Alvast bedankt!

grts,
Inne
 
Laatst bewerkt door een moderator:
Je probleem zit 'm hier: acFormAdd. Daarmee open je het formulier in Toevoegmodus, oftewel: maak een nieuw record aan. Terwijl je nu juist een bestaand record wilt zien. Overigens, als het mogelijk is om op basis van je criterium een nieuw record aan te maken, dan is het SessieID niet uniek, en zal het formulier dus niet één record terug kunnen geven.
Om bij je vraag te blijven: verander acFormAdd in acFormEdit, en het zou moeten werken.
 
Bedankt voor je antwoord!

Ik heb de "Add" vervangen door Edit en ik heb de SessieID in de tabel DatumSessie ook uniek gezet. (dat was ik idd vergeten)

Als ik dubbelklik kom ik weer in het juiste formulier, en ik zie gegevens staan, maar niet de juiste... Blijkbaar kom ik telkens in de eerste rij van de tabel terecht, en wijzigt hij hier steeds de SessieId in de Id die ik aanklikte....

Ik zou graag hebben dat als de SessieId nog niet bestaat (in de tabel DatumSessie), er een nieuwe record wordt aangemaakt met de SessieId erin. Als de SessieId al wel bestaat, wil ik de gegevens zien die al werden ingevoerd. (om al dan niet aan te passen)

Inne
 
Je kunt wel met OpenArgs werken, maar je moet met de 'meegelifte' SessieID een formulierfilter maken; niet de waarde in het SessieID veld zetten, wat je nu doet.
 
OctaFish, zou je hier wat meer uitleg bij kunnen geven?
Ik weet niet hoe ik daar aan moet beginnen...
 
Bij het Laden van het formulier of rapport kun je de OpenArgs gebruiken als filter. Iets als:

Code:
sFilter = "Me.SessieID = " & Me.OpenArgs
Me.FilterOn = True
Me.Filter = sFilter

Dit is een algemeen voorzetje, dus waarschijnlijk moet je hem nog aanpassen naar jouw situatie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan