02. marts 2004 - 22:17Der er
12 kommentarer og 1 løsning
Sub Form_Load()
Hej.
Er lidt intereseret i at vide om Sub Form_Load() kan bruges til nogle initialiserende og forbedredende procedurer for formen.
F.eks ville jeg som nedenunder gerne fylde en combobox op fra en database. Eksemplet fungerer fint på onclick på en knap, men i denne Sub Form_Load() giver den mig fejlen:
"Run-time error '91' Object variable or With block variable not set"
-----------
Private Sub Form_Load() Do While Not Data1.Recordset.EOF Combo1.AddItem Data1.Recordset.Fields("name").Value Data1.Recordset.MoveNext Loop End Sub
-----------
Er dette det rigtige sted at gøre sådanne ting, og i så fald, hvad er det jeg skal erklære før det virker.
Som jeg skrev foroven, har jeg allerede lavet det i en knap, men det kan da for hulen ikke være rigtigt at man skal intialisere en combobox ved at klikke på en kanp først... Jeg ved ikke om det er for meget at kræve at den allerede er fyldt ud når brugeren ser den første gang.
Mit spørgsmål er: Hvordan laver jeg sådanne initaliserende rutiner for min form?
Du kan sagtens gøre som du er inde på, det eneste du lige mangler er og skabe forbindelsen til databasen. Så.. Private Sub Form_Load() Data1.Refresh Do While Not Data1.Recordset.EOF Combo1.AddItem Data1.Recordset.Fields("name").Value Data1.Recordset.MoveNext Loop End Sub
Det er jeg ikke helt sikker på, men mit bud er, at det er fordi den endnu ikke har vist/tegnet data controllen endnu, det har den når du trykker på knappen.
Så derfor kan du heller ikke umiddelbart sætte focus til en textboks, da den ikke er tegnet endnu.
Hvis du sætter M.SetFocus ned i Form_Paint() i stedet for, så virker det.
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.