11. oktober 2002 - 15:30Der er
4 kommentarer og 1 løsning
Frame som control array
Jeg har en VBA form med ex. 5 frames. Dem skal jeg så vise enkeltvis vha. en Next/Previous knap.
Problemet er, at man (så vidt jeg ved) ikke i VBA kan lave control arrays. Jeg kan selvfølgelig kalde frame'sne for frame1,...,frame5 men...
Kan man proppe et object ind i en variabel a'la :
Dim i As Byte Dim strFrame As String For i = 1 To 5 strFrame = "Frame" & i With strFrame .Visible = False End With Next i
Dette virker ikke! Men kan man declare strFrame som noget a'la object.name ??? Eller kan jeg bruge en anden løsning til at dynamisk gennemløbe controller i VBA ?
Men med 'snuptag' mener jeg at løkken kører færdig, da der intet er til at standse den. Ellers vil det vel fungere med frame & i som navn på rammerne, når de blot hedder sådan.
Men løkken skal jo stoppe, altså 'i' må ikke fortsætte før brugeren bestemmer det.
command1.click frame & i.visible = false i=i+1 if i > 5 then exit sub frame & i.visible = true
command2.click frame & i.visible = false i=i-1 if i<0 then exit sub frame & i.visible = true
Som jeg skriver kan du ikke kalde en control der er gemt i en string variabel - prøv evt. selv... Det er præcis det samme i VB, men her kan man komme udenom problemet vha. control arrays.
Fandt en løsning... Man kan bruge property'en "controls" for formen. En god finte her er også at bruge "tag" property'en på en kontrol (i dette ex frame controllen).
Dim i As Integer
For i=1 to 5 If frmMain.Controls.Item(i).Name = "fraPension" & i Then frmMain.Controls.Item(i).Visible = True End If Next i
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.