Gå til innhold

Hente verdier fra en annen form


Anbefalte innlegg

Hei

Driver og mekker på en lite kalkulator her (ikke spesielt komplisert i grunnen), så hadde jeg tenkt å lage en form der jeg kunne stille på om det skulle kommer både dataene og svaret (f.eks 2 + 2 = 4) i SUM-boksen (tekstboks), eller om det bare skulle komme svar (f.eks 4).

 

Koden for addisjon ser slik ut ( :blush: )

Private Sub cmdPluss_Click()
Dim Ledd As Double, Ledd2 As Double, Sum As Double

   Ledd = txtPrim.Text
   Ledd2 = txtSek.Text
   Sum = Ledd + Ledd2
   
   If optSporsmalSvar.Value = True Then
       txtSum.Text = Ledd & " + " & Ledd2 & " = " & Sum
   ElseIf optBareSvar.Value = True Then
       txtSum.Text = Sum
   End If
End Sub

 

Option-boksene heter "optSporsmalSvar" og "optBareSvar", option-formen heter "frmOptions".

 

Hva har jeg gjort feil?? :dontgetit:

 

 

Edit: Alt funker helt greit når jeg har option-boksene i samme form som "utregningen skjer", men når jeg flytter dem over i option-formen får jeg opp "'424' Object required".

Endret av endrebjorsvik89
Lenke til kommentar
Videoannonse
Annonse
Skal du hente verdier fra kontroller tilhørende en annen form må du skrive navnet på denne formen i syntaksen. Slik f.eks som dette:

 

MsgBox Form2.optSporsmalSvar.Value

Funker som hånd i hanske :thumbup:

 

*bøyer meg i støvet og takker og bukker for din enorme viten*

Lenke til kommentar

Har et problem til :blush:

 

Når jeg lager en frame og legger de to option-boksene inni den får jeg opp: "Compile Error - Method or data member not found"

 

Private Sub cmdPluss_Click()
Dim Ledd As Double, Ledd2 As Double, Sum As Double

   Ledd = txtPrim.Text
   Ledd2 = txtSek.Text
   Sum = Ledd + Ledd2
   
   If frmOptions.fraSumFelt.optSporsmalSvar.Value = True Then
       txtSum.Text = Ledd & " + " & Ledd2 & " = " & Sum
   ElseIf fraSumFelt.frmOptions.optBareSvar.Value = True Then
       txtSum.Text = Sum
   End If
End Sub

 

("fraSumFelt" er frame'n)

 

Hva er galt?? :no:

Lenke til kommentar

Når du skal hente informasjon fra kontroller i en frame er det ikke nødvendig å skrive navnet på framet. Dette trengs kun når du henter informasjon fra en annen form. Koden blir derfor slik:

 

Private Sub cmdPluss_Click()
Dim Ledd As Double, Ledd2 As Double, Sum As Double

  Ledd = txtPrim.Text
  Ledd2 = txtSek.Text
  Sum = Ledd + Ledd2
  
  If frmOptions.optSporsmalSvar.Value = True Then
      txtSum.Text = Ledd & " + " & Ledd2 & " = " & Sum
  ElseIf frmOptions.optBareSvar.Value = True Then
      txtSum.Text = Sum
  End If
End Sub

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...