15. december 2001 - 23:08Der er
4 kommentarer og 1 løsning
Sorter
jeg har en form med: 8 labels der hedder lbl1, lbl2, lbl3, lbl4 o.s.v 8 variabler af typen single der hedder S1, S2, S3, S4 o.s.v En command-button der hedder \"cmdSorter\"
De 8 variabler for tildelt nogle forskellige værdier imellem 1 og 50. når man trykker på \"cmdSorter\" skal variablernes indhold skrives i de 8 labels caption således at den variabel med den strøste værdi står i lbl1, variablen med den næststørste værdi står i lbl2 o.s.v
Hvordan løser man dette problem uden af lave 117 if-sætninger.
Hvis du havde lavet dine labels og variabler som arrays, kunne du have brugt følgende:
Public Sub cmdSorter() Dim i As Integer, j As Integer, x As Integer For i = 1 To 7 For j = i + 1 To 8 If S(i) < S(j) Then x = S(i) S(i) = S(j) S(j) = x End If Next Next For i = 1 To 8 lbl(i).Caption = S(i) Next End Sub
HOVSA: x skal selvfølgelig være af typen Single, så den \"passer sammen med\" dine S-variabler... Hvis det er heltal, du registrerer, så er Integer da bare bedre end single...
En simpel og lidt fusket måde er at lave en usynlig liste på samme skærmbillede, gør den sorteret og smide alle værdierne i den og hente dem ud igen. Jeg har ikke VB installeret på denne maskine så jeg kan ikke ligge eksempelkode, desværre.
proacces> din måde virker godt nok men der er det problem at S(1), S(2) osv skal blive ved med at have deres oprindelige værdi. Det er KUN lbl(1), lbl(2) osv der må ændre caption... Med din metode bliver tallene også sorteret således at den største værdi står i S(1) osv...
Glem hvad jeg skrev for - det problem sidste problem var nemt at løse. Mange tak for hjælpen proacces :-)
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.