Omet navegació

3.7 Funcions estàndard

 

A continuació veurem algunes de les funcions que ens proporciona VBA agrupades per categories

FUNCIONS MATEMÀTIQUES

Abs(n): valor absolut de n
Cos(r): cosinus
Exp(n): el número e elevat a una potència Hex(n): Converteix a hexadecimal
Int(r): part entera de r Log(r): logaritme en base e de r
Oct(n): converteix a octal Randomize(n): inicialitza el generador de números aleatoris
Rnd(): número aleatori entre 0 i 1 Sin(r): sinus
Tan(n): tangent  

 

FUNCIONS DE CONVERSIÓ

Convertir a un determinat tipus CBool, CByte, CCur, CDate, CDbl, Cdec, CInt, CLng, CSng, CStr, CVar, CVErr

 

FUNCIONS DE TRACTAMENT DE CADENA

(Nota: Hi ha moltes funcions que poden o no dur un $ al final: la versió que no en porta torna un valor Variant, mentre que la que sí que en duu torna un String)

Asc(text) Codi ASCII del primer caràcter
Chr(n) Torna el caràcter corresponent al codi ASCII n
Format(text,format) Torna el valor amb el format indicat
InStr(i,cadena,subcadena) Torna la posició en la qual es troba la subcadena dins de la cadena (si no la troba, 0), començant des de la posició i
Lcase(text) Passa a minúscules
Left(text,n) Torna n caràcters del costat esquerre
Len(text) Llargària de la cadena
Ltrim(text) Elimina els espais en blanc de l'esquerra
Mid(text,i,n) Torna n caràcters, començant des de la posició i. Si no s'especifica n és fins el final de la cadena
Right(text,n) Torna n caràcters del costat dret
Rtrim(text) Elimina els espais en blanc de la dreta
Space(n) Torna una cadena amb el número de espais en blanc especificat
Str(n) Converteix un número en una cadena
StrComp(text1,text2) Compara dues cadenes (els caràcters ASCII). Es pot fer que distingisca majúscules i minúscules, o que no ho faça
String(n,c) Torna una cadena amb el caràcter c repetit n vegades
Trim(text) Elimina els espais en blanc dels dos costats
Ucase(text) Passa a majúscules
Val(text) Converteix una cadena en un número

 

FUNCIONS DE DATA I HORA

Now: dia i hora del sistema Date: dia del sistema
Time: hora del sistema  
Day: trau el dia d'una data Month: trau el mes d'una data
Weekday: trau el dia de la setmana (diumenge 1, dilluns 2, ...)
Year: trau l'any d'una data
Hour: trau l'hora Minute: trau els minuts
Second: trau els segons  
DateDiff: diferència entre dues dates (en el format especificat: dies, mesos, ...) DateAdd: suma a una data un número determinat de espais temporals (dies, ...)

 

FUNCIONS D'AGREGAT

Totes aquestes funcions treballen sobre un conjunt de valors, de files tretes d'alguna taula. Sempre tindran 3 arguments:

  • Expresión: indica el camp que es busca, sobre el qual es vol fer alguna cosa.
  • Dominio: indica la nom de la taula o consulta d'on es trauen les dades.
  • Criterio: indica una possible selecció de les files de la taula.
DAvg: calcula la mitjana DCount: compta quantes files
DLookup: torna el valor del camp de la primera fila que satisfa el criteri DFirst: torna el primer valor del camp especificat
DLast: torna l'últim DMin: valor mínim
DMax: valor màxim DStDev: desviació típica
DSum: suma DVar: variància

Nota: Aquestes funcions les veurem bé en el tema de SQL.

 

ALTRES FUNCIONS

InputBox Quadre de entrada. Torna un String. El format de la funció és:
InputBox(missatge[, títol][, valor per defecte][, xpos][, ypos][, helpfile, context])
MsgBox Finestra de missatge. Es poden especificar els botons que apareixeran i la funció torna un valor que equival al botó apretat
MsgBox(missatge[, botons][, títol][, helpfile, context])

Exercici 3.14 (voluntari)


Per mig de les funcions de cadena intentar traure, en una etiqueta nova en el formulari Empleat, els noms dels empleats canviant l'ordre (nom + cognoms). Feu-lo progressivament així:

  • Primer l'intenteu traure amb el mateix format que està, és a dir Cognoms, Nom
  • Després intenteu-lo amb el format de la figura: nom i cognoms. Es tractarà de trobar la coma (amb InStr() )
    • Traure primer el que hi ha darrere de la coma (pot anar molt bé la funció Mid, ja que pot traure fins el final de la cadena).
    • Després el que hi ha davant, i segurament la funció més còmoda serà Left().
    • Per complicar-lo un poc més, podríem traure els cognoms en majúscules.

La propietat de l'etiqueta que s'ha de modificar és Caption. Haureu de mirar el nom que us dóna per a l'etiqueta, que pot canviar d'uns a una altres.

Aquest seria l'aspecte:

El moment oportú podria ser "Al activar registro". Com que alguns de vosaltres tindreu una macro per aquest event (realitzada en l'exercici 2.20, que era voluntari), podeu substituir-la pel procediment (que pot esat associat al formulari), i dins d'aquest cridar la macro amb:

DoCmd.RunMacro "nom_de_la_macro"

Així es es faran les dues feines, la de l'exercici 2.20 i la d'aquest exercici.