RioLab

  • Aumenta dimensione caratteri
  • Dimensione caratteri predefinita
  • Diminuisci dimensione caratteri
Home Articoli
Articoli

Media Troncata

E-mail Stampa PDF

Calcolare la Media troncata in una tabella di Access

In Access non esiste un equivalente della funzione Excel Media.Troncata, ho scritto questa funzione VBA per sopperire alla mancanza.
La media troncata è una funzione statistica che calcola la media su un insieme di valori ordinati escludendo dal calcolo una certa percentuale X di valori agli estremi.

'Funzione per calcolare la media troncata di un insieme di valori
'nomeTabella = Nome della tabella che contiene i valori su cui si vuole calcolare la media
'nomeCampo = nome del campo contenente i valori su cui calcolare la media troncata,
'
il campo deve essere di tipo numerico
'percento = >0 e <1 percentuale di valori da scartare
'MediaTroncata arrotonda per difetto il numero dei valori esclusi al multiplo di 2 più vicino.
'Se percento = 0,1, il 10% di 30 valori sarà uguale a 3 valori. Per
'questioni di simmetria, MediaTroncata esclude un valore dalla parte superiore
'e uno dalla parte inferiore dell'insieme dei dati.

Function MediaTroncata(ByVal nomeTabella As String, ByVal nomeCampo As String,
ByVal percento As Single) As Double
Dim
rs As DAO.Recordset
Dim
numRecordTotali As Long
Dim
numRecToSkip As Single
Dim lNumRecToSkip As Long
Dim
Totalone As Double
Dim i As Long
If percento < 0 Or percento > 1 Then    
MsgBox ("Percento deve essere compreso tra 0 e 1!")    
MediaTroncata = 0    
Exit Function

End If

Set rs = CurrentDb.OpenRecordset("Select * FROM " & nomeTabella & " ORDER BY " & nomeCampo)
rs.MoveLast
numRecordTotali = rs.RecordCount
numRecToSkip = numRecordTotali * percento / 2
lNumRecToSkip = Fix(numRecToSkip)
rs.MoveFirst
Totalone = 0
For
i = 1 To numRecordTotali    
If
i > lNumRecToSkip And i <= numRecordTotali - lNumRecToSkip Then        
Totalone = Totalone + Nz(rs.Fields(nomeCampo))    
End If    
rs.MoveNext
Next i
MediaTroncata = Totalone / (numRecordTotali - lNumRecToSkip * 2)
MediaTroncata_Exit:
rs.Close
Set r
s = Nothing
Exit Function

MediaTroncata_Err:
MsgBox(“Err.Description”)
Resume
Media Troncata_Exit
End Function

 

Esempio di utilizzo:

In finestra immediata

?MediaTroncata(“TabellaValori”, “CampoValore”, 0.2)

Calcolerà la media eliminando il 20% dei valori inseriti nella tabella.

 


Sistema operativo: WIN32
Applicazioni: Access 97, Access 2000, Access 2002/XP, Access 2003, Access 2007

 

Ultimo aggiornamento Giovedì 02 Luglio 2009 12:01
 

Facendo doppio click il file non si apre

E-mail Stampa PDF

Domanda

 Non riesco ad aprire il file con un doppio click sull'icona, Excel viene aperto correttamente, ma nessun file viene visualizzato. Sono costretto a selezionare il file dal comando "Apri".

 

Risposta 1

Da Menu Strumenti, scegliere Opzioni.
Selezionare la scheda Generale
Impostazioni:: Ignora altre applicazioni: togliere il segno di spunta.

 

L'impostazione: Ignora altre applicazioni, consente di impedire lo scambio di dati con altre applicazioni che utilizzano il protocollo per lo scambio dinamico dei dati (DDE, Dynamic Data Exchange).
Quando si fa doppio clic su una cartella di lavoro di Excel in Esplora risorse, si invia a Excel un messaggio di scambio (DDE) di dati dinamici, per indicargli di aprire la cartella di lavoro su cui si è fatto doppio clic.
Se si seleziona l'impostazione Ignora altre applicazioni, Excel ignora i messaggi DDE inviatigli da altri programmi. Di conseguenza, il messaggio DDE inviato da Esplora risorse a Excel viene ignorato ed Excel non apre la cartella di lavoro.
Evidentemente quell'opzione serve a eliminare eventuali gravi interferenze di altre applicazioni.


 

Risposta 2


Se la soluzione 1 non risolve provare seguendo quanto indicato in questo articolo della Microsoft Knowledge Base.
"Cannot find the file" error message when you try to open a workbook by double-clicking the .xls file
support.microsoft.com/default.aspx?scid=kb;en-us;323216
Importante: leggere le informazioni sulla modifica del Registro di sistema.


Sistema operativo: Win32

Applicazioni: Excel 2000, Excel 2002/XP, Excel 2003

 

Creare automaticamente un sommario in un documento Word

E-mail Stampa PDF

Capita spesso di dover creare il sommario di un documento ma di non riuscire a farlo con il relativo comando di Word perché non sono stati usati gli stili predefiniti, oppure non sono state contrassegnato opportunamente le parti che desideriamo facciano parte del nostro sommario.
Questo articolo fornisce dei collegamenti a risorse che spiegano l’utilizzo degli stili in Word e i vari metodi per la creazione di un sommario.
Comincio segnalando 2 corsi della durata di circa 45 minuti ciascuno, in cui nel primo viene spiegato l’utilizzo degli stili e l’importanza del loro uso, nel secondo varie tecniche per la creazione di un sommario, seguono poi estratti dalle varie guide online e articoli della KB Microsoft per casi particolari.

Ultimo aggiornamento Giovedì 25 Giugno 2009 15:49 Leggi tutto...
 

Operatori booleani

E-mail Stampa PDF

L'esempio riporta le tavole di verità che definiscono le espressioni logiche ottenute combinando variabili (ad es. le proposizioni), mediante gli operatori logici AND OR XOR.
Le tavole di verità sono tabelle matematiche utilizzate come principale rappresentazione di una funzione booleana, e nella logica per determinare se, attribuiti i valori di verità alle proposizioni che la compongono, una determinata proposizione è VERA o FALSA.
AND OR XOR sono operatori dell'algebra booleana, il sistema logico sviluppato dal matematico inglese George Boole (1815-64).
La logica booleana consiste di tre operatori logici di base:

  1. OR
  2. AND
  3. NOT

Una variabile logica (o booleana) è una variable che può assumere solo uno di due valori (valori di verità):
VERO - simboli alternativi: true, 1, ON, SI (YES)
FALSO - simboli alternativi: false, 0, OFF, NO

Le espressioni booleane assumono una particolare importanza per quanto riguarda il calcolo proposizionale.
La logica proposizionale è un linguaggio formale la cui sintassi è basata fondamentalmente su proposizioni elementari e su connettivi logici che "legano" tali proposizioni e che restituiscono il valore di verità della proposizione composta, in base al valore di verità delle proposizioni "connesse".
I principali connettivi logici sono:

  1. NOT Negazione ¬
  2. AND Congiunzione ^ (et latino)
  3. OR Disgiunzione, o inclusivo v (vel latino)
  4. XOR o esclusivo (aut latino)

L'operatore OR (v). Considerando due variabili A e B:
A or B: combina i valori di verità A e B in modo che il risultato sia vero solo se almeno una variabile, fra A e B, è VERA. Nell'insiemistica corrisponde all'operazione di Unione.
L'operatore AND (^)
A and B: combina i valori di A e B in modo che il risultato sia vero solo se sono VERE sia A sia B. Nell'insiemistica corrisponde all'operazione di Intersezione.
L'operatore NOT (¬)
not A: restituisce VERO se A è FALSO e viceversa. Nell'insiemistica corrisponde al Complemento Assoluto. Una concatenazione di NOT è semplificabile con un solo NOT in caso di dispari ripetizioni o con nessuno nel caso di pari.
L'operatore XOR (aut)
A xor B: combina i valori di A e B in modo che il risultato sia vero solo se una sola variabile, fra A e B, è VERA.
NOT ha precedenza più alta di AND e OR:
¬A ^ ¬B v ¬C equivale a (¬A)^(¬B)v(¬C)
AND ha precedenza più alta di OR
A^BvC equivale a (A^B)vC

Gli operatori dell'algebra booleana possono essere rappresentati in vari modi.
Le diverse simbologie sono scelte in base al campo in cui si lavora.
I matematici usano spesso il simbolo + per l'OR, e x per l'AND, in quanto per alcuni versi questi operatori lavorano in modo analogo alla somma e alla moltiplicazione. La negazione NOT viene rappresentata spesso da una linea disegnata sopra l'argomento della negazione, cioè dell'espressione che deve essere negata.
Nella progettazione di circuiti elettronici, vengono utilizzati anche gli operatori brevi NAND (AND negato), NOR (OR negato) e XNOR (XOR negato); questi operatori, come XOR, sono delle combinazioni dei tre operatori base e quindi non costituiscono un arricchimento della specie di strutture, vengono usati solo per rendere la notazione più semplice.

 


Sistema operativo: WIN32

Applicazioni: Excel 97, Excel 2000, Excel 2002/XP, Excel 2003

 

 
Ultimo aggiornamento Lunedì 06 Luglio 2009 17:04
 

Indice di concentrazione di Gini

E-mail Stampa PDF

Tra le funzioni statistiche disponibili in Excel non è previsto l'indice di concentrazione di Gini che, invece, risulta molto utilizzato in statistica. La formula a cui si fa in genere riferimento in ambito accademico non è conveniente per l'implementazione di una funzione in vba, essendo basata sull'ordinamento dell'array di input. Per tale scopo, invece, la funzione è stata "esplicitata" come rapporto tra l'indice di disuguaglianza senza ripetizione ed il suo massimo, rendendo il tutto più facilmente traducibile in codice. Scaricando quindi il file di excel, sarà disponibile la funzione "gini" tra quelle definite dall'utente. Come parametro di input sarà necessario un vettore riga / colonna o una matrice di dati contenenti, ovviamente, valori numerici maggiori o uguali a zero (le celle vuote sono poste pari a zero). Infine, per osservare il codice sarà sufficiente aprire l'editor del Visual Basic (premendo ALT+F11) e visualizzare il contenuto del Modulo1. Si noterà, qualora l'utente fosse interessato, come questo possa essere facilmente adattato per il calcolo dell'indice di disuguaglianza senza ripetizione.

 


Sistema operativo: Win32

Applicazioni: Excel 2000, Excel 2002/XP, Excel 2003

 

 

 

Personalizzare i menu di scelta rapida

E-mail Stampa PDF

In questo articolo vediamo un modo per personalizzare i menu di scelta rapida in Access 2007.

Vediamo un esempio in cui creiamo un semplice menu con i comandi Copia e Incolla.

Aprite il modulo Visual Basic della maschera di cui volete personalizzare il menu e copiate ed incollate questo codice:

Private Sub Form_Open(Cancel As Integer)
  'Aggiungo a CommandBars un menu
  Set copyAndPasteMenu = CommandBars.Add( _
    Name:="MenuPersonalizzato", Position:=msoBarPopup, _
    Temporary:=True)

  'Creo il Controllo Copy
  Set copy = copyAndPasteMenu.Controls.Add
  With copy
     .FaceId = 19
    .Caption = "Copy the selection"
    .OnAction = "=MyCopy()"
  End With
  'Creo il contollo Paste
  Set paste = copyAndPasteMenu.Controls.Add
  With paste
   .FaceId = 21
    .Caption = "Paste from the Clipboard"
    .OnAction = "=MyPaste()"
  End With

  'Imposto  la proprietà shortCutMenuBar della maschera
  Me.ShortcutMenuBar = "MenuPersonalizzato"
End Sub
Private Sub Form_Close()
  'Elimino il menu una volta chiusa la maschera
  CommandBars("MsnuPersonalizzato").Delete
End Sub

'Definisco il comando associato al comando Copia
Public Function MyCopy()
   DoCmd.RunCommand acCmdCopy
End Function

'Definisco il comando associato al comando Incolla
Public Function MyPaste()
    DoCmd.RunCommand acCmdPaste
End Function

 

ATTENZIONE

In modalità "Dividi Maschera"  le due funzioni MyCopy() e MyPaste() non vengono riconosciute, in questo caso dovreste definirle in un modulo globale a parte.

 

A causa di un bug nella versione attuale di Access 2007 questo meccanismo non funziona nelle sottomaschere, se infatti provate ad utilizzarlo vedrete che continuerà a comparire il menu di scelta rapida standard. E' stato rilasciato un hotfix che  risolve questo problema,  che può essere richiesto al servizio di supporto Microsoft, vedi questa KB per i dettagli : http://support.microsoft.com/kb/935875/en-us .

In questo caso particolare (l'HotFix vale per tutte le lingue) potete richiederla usufruendo del servizio di richiesta Online disponibile qui: http://support.microsoft.com/?kbid=935195

 

 

 

 


Sistema operativo: win32
Applicazioni: Access 2007

 

Ultimo aggiornamento Giovedì 02 Luglio 2009 11:57
 

Maschera di ricerca/Ordinamento universale

E-mail Stampa PDF

Questo Demo realizza una Maschera universale che consente di applicare alla Form/Report attivo i criteri di Filtro e/o di ordinamento multipli.

 

Al fine di riutilizzare la Maschera "_Ricerca" nei Vostri applicativi sono necessari pochi ma importanti accorgimenti:

  1. Importare la Form "_Ricerca"
  2. Importare la Form "_SubFiltri"
  3. Importare il Modulo "_GroupLevel_Report"
  4. Importare la Macro "_Ricerca"
  5. Importare i "Menu e Barre Strumenti", è presente solo la Barra [Popup] chamata "_Ricerca", in alternativa vi basterà creare una Barra personalizzata di tipo Popup e far aprire la Form "_Ricerca"
  6. Importare la tabella "_FiltriArchivia"
  7. Assegnare alla Proprietà ShortcutMenuBar (Barra menu scelta rapida) di tutte le Maschere del vostro applicativo che devono essere oggetto di Filtri/Ordinamenti la Barra Popup "_Ricerca" o quella che avete creato.

La Maschera suporta il riconoscimento dei Filtri Automatici di Access inserito per SELEZIONE/ESCLUSIONE SELEZIONE/IN BASE A MASCHERA ecc...!

Ora per fare il test di funzionamento verificate con il Right_Click sulla Form da filtrare l'apertura della Form "_Ricerca" e verificate il funzionamento.

P.S. Le ricerche per Stringa sono da effettuare nel Linguaggio SQL, quindi con l'operatore LIKE si possono usare i caratteri Jolly:
LIKE *S*
oppure
LIKE *A

 

 

 


Sistema operativo: WIN32
Applicazioni: Access 97, Access 2000, Access 2002/XP, Access 2003

 

Ultimo aggiornamento Giovedì 02 Luglio 2009 11:59
 


Pagina 8 di 15

Pubblicità

Link consigliati: