05. august 2003 - 14:47Der er
5 kommentarer og 1 løsning
Send data fra userform til anden userform
Jeg har en userform med en listbox, denne listbox indeholder linier fra en database delt i kolonner. navn, id
Når der bliver dobbelt klikket på en navn i listen loades en anden userform med frmOwner.Show hvor man kan se adresse og andre informationen om det valgte navn.
For at kunne finde ud af hvilket navn der skal hentes oplysninger om fra databasen skal frmOwner vide hvilket id det valgte navn har.
Dette har jeg lavet på denne måde. Private Sub lstOwner_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Not IsEmpty(lstOwner.Column(1)) Then frmOwner.Show End If End Sub
Og frmOwner Private Sub UserForm_Initialize() txtId.Value = frmMain.lstOwner.Column(1)
Så har jeg id nummeret gemt på userformen Owners i et text felt.
Det er bare ikke så smart, da jeg gerne vil kunne kalde frmOwners fra andre userforms. hvor linien txtId.Value = frmMain.lstOwner.Column(1) så melder fejl eller hvis frmMain ligger i baggrunden blot tager værdien herfra.
Er der ikke en måde hvorpå man kan sende en værdi med frmOwner.Show så den kan loades alle steder fra.
Noget ala. frmOwners.Show (”værdi af valgt navn”)
Og man så i frmOwners kan bruge denne ”værdi af valgt navn”
Private Sub lstOwner_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Not IsEmpty(lstOwner.Column(1)) Then frmOwner.txtId.Value = frmMain.lstOwner.Column(1)' ny frmOwner.Show End If End Sub
Og frmOwner Private Sub UserForm_Initialize() ' txtId.Value = frmMain.lstOwner.Column(1) *** fjernes **+
Kan man sætte værdien i et txt felt der endnu ikke er oprettet?
Er det slet ikke muligt at sende dem med som parameret, hvis der nu blev brug for at sende flere værdier, virker det lidt besværligt først at skulle oprette et text felt til dem.
Jeg mener ikke det er optimalt med globale variabler, men det virker selvfølgelig, problemet er at man skal huske at sætte den til 0 eller ingen tign. for ikke at komme til at bruge et gammelt resultat.
denne virker, men den kommer med timeglas når man vender tilbage til frmMain.
Private Sub lstOwner_DblClick(ByVal Cancel As MSForms.ReturnBoolean) If Not IsEmpty(lstOwner.Column(1)) Then Load frmOwner frmOwner.txtId.Value = frmMain.lstOwner.Column(1) frmOwner.Show End If End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.