Newsgroup: it.comp.appl.access
Titolo: Ordinare dei valori in dei controlli calcolati  in maschera

Salve sono Fanciullo,
(A97)
chiedo una cosa un poco bizzara ma a me utile.
In una maschera ho delle caselle di testo non associate alle
quali passo dei valori numerici via condice con
Private Sub cmdRIEMPI_Click()
Me.csDIRITTO = DCount("MATERIADEBITO", "qryINA", "[AS] = """ &
Forms!frmintervalloanno!csAS & """ and  materiaDebito LIKE 'ITA*'")
Me.csgest = DCount("MATERIADEBITO", "qryINA", "[AS] = """ &
Forms!frmintervalloanno!csAS & """ and  materiaDebito LIKE 'gest*'")
Me.csCUC = DCount("MATERIADEBITO", "qryINA", "[AS] = """ &
Forms!frmintervalloanno!csAS & """ and  materiaDebito LIKE 'CUC*'")
End Sub
c'è una possibilità
di ordinare i valori presenti nelle caselle di testo?
(in ogni casella di testo c'è un solo numero, quindi vorrei la casella con
il numero
più alto al primo posto ecc. Le caselle sono disposte verticalmente.)
Grazie

 ha scritto nel messaggio 
news:REQki.61033$%k.19...@twister2.libero.it...

Puoi provare così:
dim tmpStr as string, tmpArray() as string
tmpStr = Me.csDIRITTO & "|" & Me.csgest & "|" & Me.csCUC
tmpArray = Split(tmpStr,"|")
subSort tmpArray
Me.csDIRITTO = tmpArray(0)
Me.csgest = tmpArray(1)
Me.csCUC = tmpArray(2)
La sub subSort la trovi alla fine della pagina questo link: 
http://support.microsoft.com/kb/275563/en-us
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio
news:f7248o$qus$1...@tdi.cu.mi.it...

Ho provato a usare il codice e anche la subsort
ma sulla riga codice
 > tmpArray = Split(tmpStr,"|")
il debug mi dice sub o function non definita
..........praticamente non trova la funzione split?? io uso access 97
Ciao Fanciullo

 Ciao Fanciullo
Ciao.
-- 
Sergio MAZZA 


Ciao
ho fatto come hai detto..............ma ricevo questo errore
....IMPOSSIBILE ASSEGNARE ALLA MATRICE
.....ma che fa in due parole la funzione fspit?
.....allego il codice
Private Sub cmdRIEMPI_Click()
Me.csDIRITTO = DCount("MATERIADEBITO", "qryINA", "[AS] = """ &
Forms!frmintervalloanno!csAS & """ and  materiaDebito LIKE 'ITA*'")
Me.csgest = DCount("MATERIADEBITO", "qryINA", "[AS] = """ &
Forms!frmintervalloanno!csAS & """ and  materiaDebito LIKE 'gest*'")
Me.csCUC = DCount("MATERIADEBITO", "qryINA", "[AS] = """ &
Forms!frmintervalloanno!csAS & """ and  materiaDebito LIKE 'CUC*'")
End Sub
Private Sub cmdORDINA_Click()
Dim tmpStr As String, tmpArray() As String
tmpStr = Me.csDIRITTO & "|" & Me.csgest & "|" & Me.csCUC
tmpArray = fSplit(tmpStr, "|")
subSort tmpArray
Me.csDIRITTO = tmpArray(0)
Me.csgest = tmpArray(1)
Me.csCUC = tmpArray(2)
End Sub
Function fSplit(ByVal sIn As String, _
            Optional sDelim As String, _
            Optional nLimit As Long = -1, _
            Optional bCompare As Long = vbBinaryCompare) _
            As Variant
 Dim sRead As String
 Dim sOut() As String
 Dim nC As Integer
  If sDelim = "" Then
     fSplit = sIn
  End If
 sRead = fReadUntil(sIn, sDelim, bCompare)
 Do
    ReDim Preserve sOut(nC)
    sOut(nC) = sRead
    nC = nC + 1
    If nLimit <> -1 And nC >= nLimit Then
        Exit Do
    End If
    sRead = fReadUntil(sIn, sDelim)
 Loop While sRead <> ""
ReDim Preserve sOut(nC)
sOut(nC) = sIn
fSplit = sOut
End Function
Sub subSort(MyList() As String)
Dim intRet As Integer, intCompare As Integer, intLoopTimes As Integer
Dim strTemp As String
 For intLoopTimes = 1 To UBound(MyList)
    For intCompare = LBound(MyList) To UBound(MyList) - 1
    intRet = StrComp(MyList(intCompare), MyList(intCompare + 1),
vbTextCompare)
        If intRet = 1 Then 'Current string is greater than previous.
        strTemp = MyList(intCompare)
        MyList(intCompare) = MyList(intCompare + 1)
        MyList(intCompare + 1) = strTemp
        End If
    Next
Next
End Sub
Grazie ciao

 .....allego il codice
---omissis---
Ricapilotiamo perché a me funziona.
Nel modulo ci deve essere:
- Function fSplit
- Function fReadUntil
Il tuo codice dovrebbe essere:
Private Sub cmdORDINA_Click()
Dim tmpStr As String, tmpArray() As String
tmpStr = Me.csDIRITTO & "|" & Me.csgest & "|" & Me.csCUC
tmpArray = fSplit(tmpStr, "|")
subSort tmpArray
Me.csDIRITTO = tmpArray(0)
Me.csgest = tmpArray(1)
Me.csCUC = tmpArray(2)
End Sub
Ciao.
-- 
Sergio MAZZA 

 Ho provato il codice in access 2000, riconosce la funzione split (di
contro non documentata nell'help)
ma perņ ordina  i numeri come fossero  testo...........
Per quanto riguarda access 97, persiste l'errore, ma lascio perdere e il
l'ordinamento me lo faccio a mano
............mi arrendo abbondantemente
grazie Sergiooooo