MS Access - Funzioni integrate

In questo capitolo lavoreremo con le funzioni integrate. In Access ci sono quasi un centinaio di funzioni integrate ed è quasi impossibile coprire ognuna di esse. In questo capitolo tratteremo la struttura di base, la sintassi e utilizzeremo alcune delle funzioni più popolari e anche le insidie, in modo che tu possa esplorare alcune delle altre funzioni da solo.

Funzioni

Una funzione è una procedura VBA che esegue un'attività o un calcolo e restituisce un risultato. Le funzioni possono generalmente essere utilizzate nelle query, ma ci sono altri posti in cui è possibile utilizzare le funzioni.

  • È possibile utilizzare le funzioni nelle proprietà della tabella, ad esempio, se si desidera specificare un valore predefinito per un campo data / ora, è possibile utilizzare la data o Now funzione per richiamare le informazioni di data / ora correnti dal sistema e immettere automaticamente quel valore.

  • È inoltre possibile utilizzare le funzioni in un'espressione quando si crea un campo calcolato o utilizzare le funzioni all'interno dei controlli della maschera o del report. Puoi usare le funzioni anche negli argomenti macro.

  • Le funzioni possono essere abbastanza semplici e non richiedono altre informazioni per essere chiamate o semplicemente fare riferimento a un campo da una tabella o query.

  • D'altra parte, possono anche diventare piuttosto complicati, con più argomenti, riferimenti a campi e persino altre funzioni annidate all'interno di un'altra funzione.

Vediamo ora alcuni esempi di utilizzo delle funzioni incorporate.

Funzioni di data e ora

Vediamo ora di capire le funzioni Data e Ora -

  • La funzione Date () è progettata per restituire la data di sistema corrente. Questa funzione non richiede argomenti di funzione o informazioni aggiuntive. Tutto quello che devi fare è scrivere il nome della funzione e quelle parentesi aperte e chiuse.

  • Ci sono due funzioni integrate molto simili: Time () e Now ().

  • La funzione Time () restituisce solo l'ora del sistema corrente e la funzione Now () restituisce sia la data che l'ora del sistema corrente.

  • A seconda dei dati che si desidera monitorare, archiviare o interrogare, sono disponibili tre funzioni integrate di facile utilizzo per svolgere tale attività.

Apriamo ora il database e creiamo una nuova query utilizzando la progettazione della query e aggiungiamo tblProjects e tblTasks.

Aggiungi ProjectName da tblProjects e TaskTitle, StartDate e DueDate da tblTasks ed esegui la query.

Ora puoi vedere tutte le diverse attività di tutti i progetti. Se si desidera visualizzare le attività del progetto in corso alla data odierna, è necessario specificare un criterio utilizzando un fileDate() Funzione per esaminare i progetti che iniziano alla data odierna o dopo.

Specifichiamo ora i criteri sotto StartDate.

Il criterio inizia con un operatore greater than symbol, seguito da un equal to symbol e poi Date Function.

Quando eseguiamo questa query, tutte le attività verranno eseguite nella data odierna o in futuro come nello screenshot seguente.

Questo è un esempio di come è possibile utilizzare la funzione Date () come criteri di query.

  • Diciamo ora che questa query deve essere più flessibile in termini di date che inizierà questa settimana.

  • Abbiamo un paio di attività diverse iniziate questa settimana, che non vengono visualizzate in questo elenco attuale, a causa dei nostri criteri. Sta guardando le date di inizio che sono uguali a oggi o superiori.

Se vogliamo visualizzare le attività che sono iniziate questa settimana, che non sono ancora state completate o che dovrebbero essere completate oggi, torniamo alla visualizzazione Progettazione.

Qui aggiungeremo alcune informazioni aggiuntive a questi criteri. In effetti, vogliamo che sia maggiore o uguale alla data odierna meno sette giorni.

Se digitiamo meno sette ed eseguiamo la query, puoi vedere anche le attività iniziate questa settimana.

Funzione DateDiff ()

La funzione DateDiff () è un'altra funzione data / ora molto popolare. La funzione DateDiff restituisce un valore Variant (long), che specifica il numero di intervalli di tempo tra due date specificate. In altre parole, calcola la differenza tra due date e tu puoi scegliere l'intervallo in base al quale la funzione calcola quella differenza.

Diciamo ora di voler calcolare l'età dei nostri autori. Per questo, dobbiamo prima creare una nuova query e aggiungere la nostra tabella autori, quindi aggiungere i campi FirstName, LastName e BirthDay.

Possiamo calcolare l'età delle persone calcolando la differenza tra la loro data di nascita o compleanno e qualunque sia la data odierna.

Proviamo a utilizzare la funzione DateDiff in un nuovo campo.

Chiamiamolo Age seguito da due punti, quindi scriviamo DateDiff Function.

  • Il primo argomento della funzione DateDiff è l'intervallo, quindi digita "yyyy".
  • Il prossimo argomento della funzione è la prima data in base alla quale si desidera calcolare, che, in questo caso, sarà il campo Compleanno.
  • Il terzo argomento della funzione è qualunque sia la data odierna.

Ora, esegui la tua query e vedrai il nuovo campo che mostra l'età di ogni autore.

Funzione Format ()

La funzione Format () restituisce una stringa, contenente un'espressione formattata secondo le istruzioni contenute in un'espressione di formato. Di seguito è riportato l'elenco dei formati definiti dall'utente che possono essere utilizzati in Format () function.ss

Ambientazione Descrizione
yyyy Anno
q Trimestre
m Mese
y Giorno dell'anno
d Giorno
w Giorno feriale
ww Settimana
h Ora
n Minuto
S Secondo

Torniamo ora alla tua query e aggiungiamo più campi nella stessa utilizzando la funzione Format ().

Digita la funzione Format. Il primo argomento della funzione sarà un'espressione, che può essere quasi qualsiasi cosa. Ora abbiamo il campo del compleanno come prima cosa e la prossima cosa è scrivere il nostro formato. In questo caso, abbiamo bisogno di mese, mese, giorno, giorno. Scrivi "mmdd" tra virgolette, quindi esegui la query.

Ora sta prendendo la data dal campo del compleanno, 4 è il mese e 17 è il giorno.

Aggiungiamo "mmm" e "mmmm" invece di "mmdd" nei campi successivi come nella schermata seguente.

Esegui la tua query e vedrai i risultati come nello screenshot seguente.

Nel campo successivo, restituisce i primi 3 caratteri dal nome del mese per quel compleanno e nell'ultimo campo otterrai il nome completo del mese.

Per vedere il mese seguito dall'anno dal compleanno, aggiungiamo "yyyy" come mostrato nello screenshot seguente.

Cerchiamo di eseguire di nuovo la tua query.

Ora vedrai il mese seguito da una virgola e poi l'anno.

Funzione IIf ()

La funzione IIf () è un'abbreviazione di "Immediate If" e questa funzione valuta un'espressione come vera o falsa e restituisce un valore per ciascuna. Ha fino a tre argomenti di funzione, tutti obbligatori.

  • Il primo argomento è qualsiasi espressione che desideri valutare.
  • L'argomento successivo rappresenta la parte vera, che può essere un valore o un'espressione restituita se la prima espressione è vera.
  • L'ultimo argomento è ciò che desideri venga restituito se la tua espressione è falsa.

Esempio

Facciamo un semplice esempio. Creeremo una nuova query utilizzando la struttura della query e aggiungeremo la tabella tblAuthors, quindi aggiungeremo i seguenti campi.

Ora puoi vedere che abbiamo tre campi: FirstName, MiddleInitial, LastName e quindi questo campo concatenato, che riunisce tutti e tre i campi. Cerchiamo di eseguire la tua query per vedere il risultato di questa query.

Ora puoi vedere il risultato della query, ma noterai anche che alcuni record non hanno un'iniziale centrale. Ad esempio, il record di Joyce Dyer non ha un'iniziale centrale, ma nel campo FullName vedrai il periodo che in realtà non deve essere lì. Quindi, torna alla visualizzazione struttura. Qui, concateneremo il nome in un modo diverso utilizzando la funzione IIf.

Scriviamo il nome in un altro campo e chiamiamolo FullName1, quindi digitiamo la funzione IIf.

  • Il primo argomento della funzione If immediato sarà la tua espressione. Nell'espressione, vedremo se il campo iniziale centrale è vuoto o è nullo.

  • Il prossimo argomento è la parte vera. Quindi, se l'iniziale centrale è nulla, vorremmo visualizzare FirstName e LastName.

  • Ora, per la nostra parte falsa, se MiddleInitial non è nullo, allora vorremmo visualizzare FirstName, MiddleInitial e LastName.

Eseguiamo ora la tua query e vedrai i risultati come nello screenshot seguente.