homeless
2007-02-12 18:22:20 UTC
Mi servirebbe calcolare la mediana (non la media) da una serie di dati,
vorrei che la stessa venisse visualizzata mediante una casella di testo in
una maschera. La tabella si chiama "lavoratori" e i dati di cui vorrei
calcolare la mediana sono nella colonna "JD".
In internet ho trovato questo:
Per creare una routine, che determina la mediana statistica di un
insieme di numeri:
1. Creare un nuovo modulo e digitare la seguente riga nella sezione
<B>Dichiarazioni</B> se non è già presente:Option Explicit
2. Digitare la seguente routine:
NOTA: Nel seguente codice di esempio, un segno di sottolineatura (_) al
fine di una riga si utilizza come un carattere di continuazione della
riga. Rimuovere il carattere quando si ricrea questo codice in Access
Basic.
Function Median (tName$, fldName$) As Single
Dim MedianDB As Database
Dim ssMedian As Recordset
Dim RCount%, i%, x%, y%, OffSet%
Set MedianDB = CurrentDB()
Set ssMedian = MedianDB.Openrecordset("SELECT [" & fldName$ & _
"] FROM [" & tName$ & "] WHERE [" & fldName$ & "] IS _
NOT NULL ORDER BY [" & fldName$ & "];")
'NOTE: To include nulls when calculating the median value, omit
'WHERE [" & fldName$ & "] IS NOT NULL from the example.
ssMedian.MoveLast
RCount% = ssMedian.RecordCount
x% = RCount% Mod 2
If x% <> 0 Then
OffSet% = ((RCount% + 1) / 2) - 2
For i% = 0 To OffSet%
ssMedian.MovePrevious
Next i
Median = ssMedian(fldName$)
Else
OffSet% = (RCount% / 2) - 2
For i% = 0 To OffSet%
ssMedian.MovePrevious
Next i
x% = ssMedian(fldName$)
ssMedian.MovePrevious
y% = ssMedian(fldName$)
Median = (x% + y%) / 2
End If
ssMedian.Close
MedianDB.Close
End Function
Scusate l'ignoranza ma il primo punto proprio non sò risolverlo...per il
secondo immagino che devo cambiare i campi tName e fldName..
Qualcuno mi può aiutare a correggere questo codice in modo da darmi una
mano?
Grazie.
vorrei che la stessa venisse visualizzata mediante una casella di testo in
una maschera. La tabella si chiama "lavoratori" e i dati di cui vorrei
calcolare la mediana sono nella colonna "JD".
In internet ho trovato questo:
Per creare una routine, che determina la mediana statistica di un
insieme di numeri:
1. Creare un nuovo modulo e digitare la seguente riga nella sezione
<B>Dichiarazioni</B> se non è già presente:Option Explicit
2. Digitare la seguente routine:
NOTA: Nel seguente codice di esempio, un segno di sottolineatura (_) al
fine di una riga si utilizza come un carattere di continuazione della
riga. Rimuovere il carattere quando si ricrea questo codice in Access
Basic.
Function Median (tName$, fldName$) As Single
Dim MedianDB As Database
Dim ssMedian As Recordset
Dim RCount%, i%, x%, y%, OffSet%
Set MedianDB = CurrentDB()
Set ssMedian = MedianDB.Openrecordset("SELECT [" & fldName$ & _
"] FROM [" & tName$ & "] WHERE [" & fldName$ & "] IS _
NOT NULL ORDER BY [" & fldName$ & "];")
'NOTE: To include nulls when calculating the median value, omit
'WHERE [" & fldName$ & "] IS NOT NULL from the example.
ssMedian.MoveLast
RCount% = ssMedian.RecordCount
x% = RCount% Mod 2
If x% <> 0 Then
OffSet% = ((RCount% + 1) / 2) - 2
For i% = 0 To OffSet%
ssMedian.MovePrevious
Next i
Median = ssMedian(fldName$)
Else
OffSet% = (RCount% / 2) - 2
For i% = 0 To OffSet%
ssMedian.MovePrevious
Next i
x% = ssMedian(fldName$)
ssMedian.MovePrevious
y% = ssMedian(fldName$)
Median = (x% + y%) / 2
End If
ssMedian.Close
MedianDB.Close
End Function
Scusate l'ignoranza ma il primo punto proprio non sò risolverlo...per il
secondo immagino che devo cambiare i campi tName e fldName..
Qualcuno mi può aiutare a correggere questo codice in modo da darmi una
mano?
Grazie.