[Access] Veld in SubForm niet bekend in Form

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

  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

Topicstarter
Ik heb een leden database met een Form met alleen een zoekbalk, als je daar een naam invult geeft hij gegevens weer van dat lid in een subform (Leden_SubForm).
Op het Leden_SubForm heb een een tabblad "Afmelden", met daarop een knop met daaronder de volgende code:

code:
1
2
3
4
5
6
7
8
9
10
Private Sub Command65_Click()
Dim yesno As VbMsgBoxResult
yesno = MsgBox("Weet je zeker dat je " & PostNaam & " wilt afmelden?", vbQuestion + vbYesNo)
If yesno = vbNo Then
    MsgBox ("Je hebt op nee gedrukt, " & PostNaam & " blijft " & status & ".")
Else
    MsgBox (Form_Leden_SubForm.PostNaam & "wordt afgemeld. (not niet functioneel)")
    'DoCmd.RunSQL "INSERT INTO LedenStatus ( LidID, [TimeStamp], status, Description ) VALUES '" & LidID & "', Now(), 'xx' , 'Afgemeld';"
End If
End Sub


Als ik de SubForm open en op het knopje druk dan geeft hij keuren weer:
"Weet je zeker dat je ZERVEZA wil afmelden?"...... etc etc..

(de DoCmd.RunSQL werkt ook nog niet 100%, daar ben ik ook mee aan het kloten, ander topic voor geopend)

maar als ik de hoofd-Form open kent hij ineens de PostNaam niet meer... hoe kan ik deze ook bekend maken in de hoofd-Form? Ik heb al vanalles geprobeerd.
PostNaam vervangen met:
Form_Leden_SubForm.Postnaam
Form_Leden_SubForm!Postnaam
Leden_SubForm.Postnaam
Leden_SubForm!Postnaam

maar ik blijf dezelfde foutmelding krijgen, dat hij PostNaam niet kent.. en dan kan ik gaan debuggen..:(

Kan iemand me een tip geven over wat voor kapriolen ik nu zal moeten uithalen?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

PostNaam is de naam van een textbox op het subformulier?
Dan verwijs je daarnaar vanuit het subformulier zelf met:
code:
1
me!postnaam

en vanuit het hoofdformulier met:
code:
1
2
3
me![containercontrol].form!postnaam
of korter:
me![containercontrol]!postnaam

waarbij [containercontrol] de naam is van het besturingselement waarin het subformulier staat.
de laatste moet werken volgens ms, ikzelf gebruik het nooit

en helemaal vanuit het niets:
forms![hoofdform]![containercontrol].form!postNaam


let even op de uitroeptekens en de punten; meestal werkt het toch wel als je daar fouten tegen maakt, maar de punt in [containercontrol].form kan en mag nooit een '!' zijn.

[ Voor 21% gewijzigd door Lustucru op 20-07-2005 15:45 ]

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


  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

Topicstarter
ik heb nu dus dat hoofd form (LedenMenu), met daarin een subform (Leden_SubForm)

Op dat SubForm heb ik een knop die de volgende code aanroept:

code:
1
yesno = MsgBox("Weet je zeker dat je " & Me![LedenMenu]!PostNaam & " wilt afmelden?", vbQuestion + vbYesNo)


Hij blijft zeggen dat hij de PostNaam niet kent..

In het reply staat dat de Me!.... moet worden opgenomen in het hoofdform.. hoe dat dan?

moet ik ergens op hoofdform Me!.... neerzetten en werkt de subform dan?

  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 04-03 17:36

CoRrRan

Don't Panic!!!

Me verwijst meestal naar het UserForm waar je op dat moment mee aan het werken bent. Dus als je code in een UserForm genaamd frmTest aan het bewerken bent, kun je een handeling op 2 manieren oplossen:
Visual Basic:
1
2
3
frmTest.Textbox1.Text = "Hello World!"
 of
Me.Textbox1.Text = "Hello World!"
Je ziet dus dat Me en frmTest naar hetzelfde object verwijzen. (Dit voorbeeld is even gedaan met VBA in Excel vorm, Access werkt ietwat anders geloof ik (ben zelf niet bekend met VBA ism Access).)

[ Voor 9% gewijzigd door CoRrRan op 20-07-2005 17:09 ]

-- == Alta Alatis Patent == --


  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

Topicstarter
wat is dan de meerwaarde van Me? als je net zo goed de huidige form kan invullen...

  • Pyrowired
  • Registratie: Februari 2004
  • Laatst online: 05-01-2025
Middels deze zoekopdracht zie je bij de 2e hit wat je moet gebruiken.
Direct: hier

edit:

Mocht je een werkende F1 toets op je PC hebben, dan zou je ook door de help kunnen zoeken aangezien dit hier ook in staat.

[ Voor 23% gewijzigd door Pyrowired op 21-07-2005 01:09 ]

Zolang de zon schijnt, blijf ik binnen.


  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 04-03 17:36

CoRrRan

Don't Panic!!!

Zerveza schreef op woensdag 20 juli 2005 @ 19:04:
wat is dan de meerwaarde van Me? als je net zo goed de huidige form kan invullen...
Ik weet niet direct of er een meerwaarde aan vastzit. Sommige programmeurs vinden Me makkelijker werken. Het is natuurlijk wel zo, dat als je erg complexe namen bedenkt voor je forms, dat je die op zich niet hoeft te onthouden. Je kunt dan ipv die complexe naam gewoon Me gebruiken.

-- == Alta Alatis Patent == --


  • newpegasus
  • Registratie: Juni 2003
  • Laatst online: 05-03 19:50

newpegasus

Hertog

Ik gebruik zelf bijna nooit Me in VBA, simpelweg omdat het niet logisch is. Bij Access VBA werk je in de VBA editor toch altijd met het huidige form, tenzij je een andere aanroept. Ik vind het daarom ook een beetje zinloos. Maar ik kan me voostellen dat het soms wat duidelijkheid kan scheppen: je weet dan zeker dat je met je huidige form werkt.

Maar over je probleem: Waarom gebruik je in dit geval een subform? Waarom zou je het jezelf moeilijker maken dan het is? Als ik de situatie goed begrijp is dit het geval: Je hebt een textveld waar een naam ingevuld word. Op het moment (onchange) dat dit ingevoerd word wil je dat er gegevens over deze user tevoorschijn komen en een knop zodat deze user afgemeld kan worden.

Hiervoor zou ik geen subform gebruiken: doe het als volgt: Maak op je hoofdform een onzichtbaar tabblad dat tevoorschijn komt als de ingevulde user overeenkomt met een uit je usertabel. Dan heb je ook geen probleem dat je variabelen (Postnaam is een variable neem ik aan?) moet doorgeven.

Ik hoop dat ik je goed begrepen heb, anders hoor ik het wel.

/edit

Ik zie nu dat Postnaam geen variabele is maar een textveld. Toch veranderd dat niets aan wat ik liever zou zien: gebruik hiervoor geen subform. (persoonlijk natuurlijk. ik heb vaker problemen gehad met subformulieren. Zie ook een ander topic van Zerveza.)

[ Voor 13% gewijzigd door newpegasus op 24-07-2005 14:45 ]

Pagina: 1