Aplicacions amb la base de dades Access
Enrera
Mòdul 8. Avançat: Automatització de la feina
  Pràctica
1
2
3
   
Exercicis
Exercicis
 
 

Un cop arribats a l'última pràctica del curs, es tracta d'acabar de presentar alguns elements interessants de les macros i comentar-vos certs consells finals per treballar amb l'Access.

   
Desenvolupament de la pràctica
   
Pràctica

L'objectiu d'aquesta pràctica és continuar explicant i experimentant amb altres tipus de macros

 

Els botons dels formularis i les macros

A la pràctica 2 hem explicat com enllaçar un botó de comandament amb una macro, però també podeu crear un botó que executi una macro sense estar creada prèviament. Igual que quan creàveu un formulari o un informe sense origen:

Polsant sobre el botó Generar de la barra del disseny del formulari, visualitzareu la següent finestra des d'on podreu escollir l'element a crear:

Quan accepteu, anireu a la finestra de disseny de macros. Primer us demanarà el nom de la macro. Després creareu la macro, i quan tanqueu la finestra de les macros, tornareu a la finestra del disseny del formulari des d'on ja podeu connectar un botó a la nova macro.

 

 

Esdeveniments

Igual que heu fet amb els botons, també podeu connectar macros a la resta de controls de la caixa d'eines dintre dels formularis.

Entenent per Esdeveniment l'esdeveniment d'un succés.

A tots els controls els poden ocórrer esdeveniments: fer un clic, modificar el seu valor, passar el ratolí per sobre...

Dintre de la finestra de propietats de qualsevol control que tingueu a un formulari, podreu veure un apartat dedicat exclusivament als esdeveniments. Doncs bé, si al costat d'un esdeveniment d'un control seleccioneu el nom d'una macro, quan aquest succés passi al control, s'executarà automàticament la macro.

Si aneu al disseny de qualsevol formulari en què hàgiu connectat un botó a una macro i aneu a les seves propietats, i més concretament a l'apartat Eventos, podreu veure com l'Access ha col·locat al costat de l'esdeveniment Al hacer clic el nom de la macro que s'executarà quan cliqueu al botó:

Dins d'aquesta finestra podeu veure els diferents esdeveniments que poden ocórrer sobre un botó de comandament, encara que el més habitual és Al hacer clic.

Ara us mostrarem com podeu connectar un control que no sigui un botó a una macro.

A la pràctica anterior, vau crear la macro Global.Cercarllibre que s'executava en clicar un botó, i el que feia era buscar al formulari Llibres el registre que tingués el títol introduït a un quadre de missatge. Ara utilitzareu un quadre combinat per fer cerques directes dintre d'un formulari.

Aneu al disseny del formulari Alumnes i inseriu, a la part superior, un quadre combinat i seguiu les passes de l'assistent:

Seleccioneu la taula Alumnes.

 

Seleccioneu els camps de la imatge.

Amplieu la mida de les columnes perquè es puguin visualitzar totes bé.

Poseu una etiqueta al quadre combinat.

Un cop ja teniu inserit el quadre combinat dintre del formulari, ara es tracta de connectar una macro que s'executi després d'haver seleccionat un element de la llista del quadre combinat. De manera que, en seleccionar el nom d'un alumne, automàticament, l'Access busqués el registre d'aquest alumne. Per fer-ho:

Primer doneu un nom al control quadre combinat:

Ara heu de crear la macro que s'executarà quan es produeixi l'esdeveniment Después de actualizar. Feu un clic al botó de la imatge per crear la macro.

Anomeneu la macro Busca. Dintre de la finestra de macros introduïu els elements de la imatge:

Tanqueu la finestra de macros. Ara seleccioneu l'esdeveniment Después de actualizar la macro Busca.Alumne.

Aneu al formulari i proveu el funcionament del quadre combinat.

Afegiu un quadre combinat amb la mateixa funcionalitat dintre dels formularis: Llibres nou, Autors i Editorial. Aprofiteu la mateixa macro Buscar. Col·loqueu noms de grups dintre de la macro.

 

 

Una macro especial: la macro autoexec

Si creeu una macro i l'anomeneu autoexec, quan obriu la base de dades s'autoexecutarà.

Les accions que normalment componen aquesta macro són:

  • Maximitzar: per maximitzar els formularis que obriu a continuació.
  • AbrirFormulario: obre el formulari Principal que serà el que permetrà a l'usuari accedir als diferents blocs d'informació de la base de dades.

Creeu-la. Sortiu de la base de dades i torneu a entrar, veureu com s'executa.

 

 

Mòduls

Per acabar el curs, considerem que us hauríem de mostrar, almenys per sobre, les possibilitats de l'únic element de les bases de dades Access que no s'ha desenvolupat: els mòduls.

Els mòduls permeten la creació de programes (conjunt d'accions) que s'executaran, o bé quan ocorri un esdeveniment connectat a un control, o bé quan els cridis des de qualsevol control, com per exemple un quadre de text.

Els mòduls contenen funcions i procediments.

Una Funció (Function) és un petit programa que té com a funció principal calcular un valor a partir d'una informació que li doneu.

Un Procediment (Sub) fa un conjunt d'accions. De manera que, si heu de repetir molts cops un mateix conjunt d'accions, el millor és crear un procediment, donar-li un nom i executar-lo tantes vegades com vulgueu.

Per crear mòduls s'ha de saber programar en Visual Basic, qüestió que no és objecte d'aquest curs. Però perquè vegeu el seu funcionament us donarem dos programes fets.

Us presentem dues funcions: la primera, DiaSetmana, torna a partir d'una data el dia de la setmana que és (dilluns, dimarts...), i la segona, NIF, torna a partir d'un DNI la lletra del NIF.

Per crear el mòdul en què inserireu aquestes dues funcions, polseu el botó Nuevo a l'apartat de Módulos:

Veureu la següent finestra:

Ara copieu tot el codi següent a la posició del cursor:

Public Function DiaSetmana(DATA)
Dim RESULTAT As String
Dim DADA

DADA = WeekDay(DATA)

Select Case DADA
Case 1
RESULTAT = "Diumenge"
Case 2
RESULTAT = "Dilluns"
Case 3
RESULTAT = "Dimarts"
Case 4
RESULTAT = "Dimecres"
Case 5
RESULTAT = "Dijous"
Case 6
RESULTAT = "Divendres"
Case 7
RESULTAT = "Dissabte"
End Select

DiaSetmana = RESULTAT

End Function

Public Function NIF(NUM)
Dim DNI
Dim POSICIO
Dim LLETRA As String

If Not (IsNull(NUM)) Then
If IsNumeric(NUM) Then
DNI = NUM
Else
DNI = Val(NUM)
End If

POSICIO = DNI Mod 23 + 1

LLETRA = Mid("TRWAGMYFPDXBNJZSQVHLCKE", POSICIO, 1)

NIF = LLETRA
Else
NIF = " "
End If
End Function

Tanqueu la finestra i anomeneu el mòdul Exemples

Ara creareu un nou formulari, sense connectar a cap origen. El disseny és aquest:

Com podeu veure, teniu una etiqueta amb el títol i quatres de text.

El primer quadre de text serveix per escriure la data, i el segon mostra el nom del dia de la setmana corresponent a la data introduïda. Al primer quadre li heu donat el nom Data. Per fer-ho, heu de posar aquest nom a la propietat Nombre.

Poseu al pirmer quadre de text el valor predeterminat =Fecha().

El tercer quadre de text serveix per introduir el DNI. Li heu donat el nom de DNI. L'últim quadre mostra la lletra corresponent al NIF.

Fixeu-vos de quina manera feu servir les funcions introduïdes al mòdul Exemples. Igual que les funcions predefinides per l'Access com Suma, Promedio...

Executeu el formulari:

Què us sembla? Molt interessant, veritat?

Anomeneu el formulari Mòduls.

  Continueu amb la pràctica 4
   
 
Amunt