[VB] Form probleem

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

  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
Ik heb het volgende probleem:

Ik ben aan het programmeren met vba en ik wil een waarde die ik
in het eerste formulier heb opgezocht (formulier main) uit een combobox versturen naar het tweede formulier (bla)
en dit in een tekstveld zetten d.m.v. op een command button te drukken.

Ik heb al de volgende code:

Form_main:
code:
1
2
3
4
5
Private Sub Command33_Click()
    Dim StrWaarde As String
    StrWaarde = Combo29.Text
    DoCmd.OpenForm bla
End Sub



Form_bla:
code:
1
2
3
4
5
6
7
'Text0 is mijn Tekstveld

Public Sub onload()
    Dim a
    a = Form_MAIN.Combo29.Text
    Text0.Text = a
End Sub


Het probleem is dat deze code niet werkt, doe ik iets verkeerd?

McFraGG de gekste !!


Verwijderd

kun je niet gewoon de waarde van StrWaarde uitvragen?

code:
1
a = Form_MAIN.StrWaarde

[ Voor 40% gewijzigd door Verwijderd op 03-12-2002 15:13 ]


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Ik heb het gevoel dat je op de goeie weg bent, maar je kunt de afslag niet vinden ;)
Je zet namelijk de waarde van het veld dat je op je bla-form wilt weergeven al wel in een variabele, daar doe je alleen nog niks mee. Wat denk je ervan om je variabele StrWaarde eens een globale variabele te maken en dan in je bla-form text0.text = StrWaarde te doen?
En anders geef je het gewon mee als variabele bij het openen van het form.

BTW ben je in Visual Basic aan 't werk, of in de VB-editor van bijvoorbeeld Access?

My personal website


Verwijderd

It is simple.

1 Je maakt op je 2e formulier een form object aan.
2 Je leest mbv dat formobject het betreffende veld in.

een direct voorbeeld heb ik helaas niet bij de hand voor je maar in de help van (ik neem aan dat je in access zit te werken) staan genoeg voorbeelden.

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Als je inderdaad in Access zit te werken: een .text mag je alleen gebruiken als het betreffende veld de focus heeft (als dat ook de melding is die je krijgt volgende keer ook graag melden!). Je kunt dan beter gebruik maken van .value, die mag je altijd gebruiken

My personal website


Verwijderd

En t gaat er om in welke versie je zit te werken want bijv access97 moet je anders benaderen dan bijv access 2000

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Visual Basic:
1
2
3
4
5
6
7
8
DoCmd.OpenForm "foo", OpenArgs:="Waarde"

...

' Form foo
Sub Form_Load
    Me.tekstveld = Me.OpenArgs
End Sub


Zo doe ik het meestal

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
Verwijderd schreef op 03 december 2002 @ 15:12:
kun je niet gewoon de waarde van StrWaarde uitvragen?

code:
1
a = Form_MAIN.StrWaarde
Dit heb ik dus even geprobeerd maar hij geeft nu de volgende foutmelding:

You can't reference a property or method for a control unless the control has the focus.

Hoe kan ik dit voorkomen?

McFraGG de gekste !!


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Zie ook post hierboven: .value gebruiken in plaats van .text

My personal website


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
Verwijderd schreef op 03 december 2002 @ 15:22:
En t gaat er om in welke versie je zit te werken want bijv access97 moet je anders benaderen dan bijv access 2000
Het gaat om Access 2000. Wat jij eerder had geschreven geldt dat voor 2000 of '97?

McFraGG de gekste !!


  • McFreak
  • Registratie: December 2000
  • Laatst online: 27-04 21:09

McFreak

McFraGG de gekste !!

Topicstarter
Ik heb het gevonden! Bedankt allemaal!

Dit is de complete code:

Form main:
Visual Basic:
1
2
3
4
5
6
Private Sub Command33_Click()
    Dim StrWaarde As String
    Combo34.SetFocus
    StrWaarde = Combo34.Text
    DoCmd.OpenForm "bla", , , , , , OpenArgs:=StrWaarde
End Sub

Form bla:
Visual Basic:
1
2
3
4
Sub Form_Load()
    Text0.SetFocus
    Text0.Text = Me.OpenArgs
End Sub

McFraGG de gekste !!


  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Als je named arguments gebruikt (OpenArgs:= ....) dan hoef je al die komma's niet te typen hoor :)

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.

Pagina: 1