Toon posts:

[Access 2000]Record "meenemen" tussen formulieren

Pagina: 1
Acties:
  • 127 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb dus een klein probleempje met Access 2000. We hebben binnen onze groep een grote database die al onze studies bevat. Elke studie wordt geïdentificeerd met een uniek “IDNR”. Als een gebruiker de database opent, krijgt hij een leeg formulier, waar hij via een invoervak met keuzelijst een IDNR kan ingeven, en op de juiste record terechtkomt. De code hierachter is :

code:
1
2
3
Me.RecordSource = "select * from [tabelstudies] where idnr like '" & Me.Search_idnr & "*'"
Me.Requery
Me.Refresh


Nu zou ik met een knop een tweede formulier willen openen, naar een formulier dat bijkomende info voor bepaalde studies bevat. De volgende code steekt achter die knop :
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Form2_Click()
On Error GoTo Err_Form2_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

    DoCmd.Close
    stDocName = "Form2"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    DoCmd.Maximize

Exit_Form2_Click:
    Exit Sub

Err_Form2_Click:
    MsgBox Err.Description
    Resume Exit_Form2_Click
    
End Sub


Probleem is nu dat het tweede formulier opnieuw blanco is. Ik zoek dus een manier om het IDNR uit het eerste formulier over te nemen naar het tweede formulier, en de bijhorende record automatisch te openen.

  • Boss
  • Registratie: September 1999
  • Laatst online: 22:06

Boss

+1 Overgewaardeerd

Dat kan via OpenArgs: een parameter die je meegeeft in DoCmd.OpenFrom (de laatste geloof ik) en in het nieuw geopende form als variabele bechikbaar is.

Waarom gebruik je overigens select * .. where idnr like en niet gewoon een = ? Dat werkt iets sneller, like gebruik je als je via wildcards op gedeeltes van een variabele wilt zoeken.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Pannenkoekkie
  • Registratie: April 2004
  • Laatst online: 28-03-2025

Pannenkoekkie

Sugar or Cheeze?

Het werkt niet netjes (ID's zijn numeriek en openargs zijn string), maar als je op het form bij het klikken op die knop inderdaad stLinkCriteria vult, dan is deze variabele in het volgende form gelijk aan:
Me.OpenArgs

  • Boss
  • Registratie: September 1999
  • Laatst online: 22:06

Boss

+1 Overgewaardeerd

Ach, netjes omgaan met verschillende soorten variabelen is niet echt iets waar Access in uitblinkt :)
Maar dat heeft toch ook wel weer zijn voordelen.

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Pannenkoekkie schreef op woensdag 05 april 2006 @ 13:14:
Het werkt niet netjes (ID's zijn numeriek en openargs zijn string), maar als je op het form bij het klikken op die knop inderdaad stLinkCriteria vult, dan is deze variabele in het volgende form gelijk aan:
Me.OpenArgs
dat is nieuw voor me ;)
DoCmd.OpenForm formuliernaam[, weergave][, filternaam][, where-voorwaarde][, gegevensmodus][, venstermodus][, argumentenopening]
openargs is het zevende argument van .openform(), strLinkCriteria is hier het vierde.

Maar idd: strLinkCriteria is bedoeld voor dit soort grappen. Door iets op te nemen als
code:
1
strLinkCriteria = "studie=" & me.nrid
zal het formulier openen met het juiste record.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Ik heb geprobeerd de bovenstaande suggesties toe te passen, maar nog steeds lukt het niet. Form 2 opent wel, maar niet op de studie met het IDNR. Moet ik enkel de DoCmd.openform regel in de code van de eerste form aanpassen, of moet ik in de tweede form ook nog iets aanpassen aan Me.Recordsource ?
Pagina: 1