Omet navegació

2.5 Resum d'accions

A continuació farem un resum de les accions més comuns que es poden incorporar en les macros d'Access. Quan utilitzem l'assistent en inserir un botó, quasi totes les accions que ens proposa l'assistent estaran en aquesta llista. Les agruparem segons la funció:

 

Obrir i tancar Objectes

Acció
Comentari
AbrirTabla

Per a obrir qualsevol d'aquestos objectes en qualsevol dels seus formats: disseny, full de càlcul, formulari, ...

En formularis i informes es pot, a més, definir un filtre.

AbrirConsulta
AbrirFormulario
AbrirInforme
AbrirModuloVisualBasic
CerrarVentana Per a tancar qualsevol objecte. Si no s'especifica quin, es tancarà l'objecte actiu

Nota

Si no es veu alguna d'aquestes accions de macro (com per exemple AbrirModuloVisualBasic), activeu el botó Mostrar todas las acciones

Exercici 2.12

Col·locar dos botons en "Menú Principal" per a obrir els dos informes existents en la Base de Dades Empresa. Feu-lo per mig de una macro independent anomenada Obrir Informes que contindrà dos submacros: Obrir Informe i Obrir Etiquetes.

Els podeu obrir en "Vista Preliminar", per veure millor com queda l'informe.

 

Col·locar un altre botó per a obrir el gràfic dels projectes: Projectes - Gràfic d'hores. Feu-lo per mig d'una macro independent anomenada Obrir Grafic. La millor manera per obrir el gràfic és amb la vista "GráficoDinámico".

Exercici 2.13 (voluntari)

Modifiqueu la consulta "13: Augment de Sou", per generalitzar-la i que demane per teclat el departament al qual se li augmenta el sou, i el percentatge. És a dir, el departament i l'augment (del qual hem d'introduir una quantitat numèrica, que serà agafada com un percentatge) seran dos paràmetres. Recordeu que els paràmetres es posen entre claudàtors ([ ]) i no han de coincidir amb cap camp de les taules de la consulta. D'aquesta manera, Access ens demanarà un valor per a aquestos paràmetres.

Posteriorment col·loqueu un altre botó en "Menú Principal" per a obrir aquesta consulta (per mig d'una macro incrustada).

Exercici 2.14

Intentarem col·locar un botó en el formulari "Empleat" per anar als seus familiars. La idea serà obrir el Formulari "Empleat-Familiar", però aplicant un filtre, és a dir que només es vegen els familiars de l'empleat actiu en el formulari "Empleat". De moment utilitzarem l'assistent quan col·loquem el botó "Familiar" en el formulari "Empleat". L'acció que voldrem serà obrir un formulari, però quan arriben a la següent pantalla:

Haurem de triar la primera opció, equivalent a aplicar un filtre. La condició d'aquest filtre és que ha de coincidir el Dni, i per a aconseguir-ho triem els dos Dni de les dues columnes i apretem al botó <->:

I a la següent pantalla podem triar un text o una imatge per al botó. Trieu un text, per exemple Familiars.
El que ha fet l'assistent és crear una macro incrustada.

En Access 2007 no funcionaria com esperàvem, i en compte de visualitzar-se en el formulari Empleat-Familiar únicament l'empleat que teníem en el formulari Empleat, es veurien tots. Es pot arreglar tenint en comte el següent exercici.

Exercici 2.15

Ara ho farem el mateix procés per mig d'una macro independent creada per nosaltres, per a ser més conscient del que fem.

Col·loqueu un altre botó, aquesta vegada sense l'assistent, per anar als Projectes en els quals treballa aquest empleat. Generarem una nova macro, anomenada "Projectes d'un empleat", en la qual obrirem el formulari "Treballa" però posant la següent condició en "Condicion WHERE"

dni=Formularios.Empleat.dni

D'aquesta manera obliguem a que el camp Dni de Treballa coincidisca amb el contingut del control dni situat en el formulari "Empleat".

 

Segurament haurà funcionat bé. I hi ha una diferència en el moment de crear la condició. En la macro incrustada en el botó d'anar als familiars, tindrem en la Condicion WHERE :

"[Dni]=" & "'" & [Dni] & "'"

Açò podria ser ambigu, i de fet en Access 2007 no funcionaria, ja que Dni podria no saber a qui es refereix, si al control del formulari Empleat-Familiar o al control del formulari Empleat. En canvi en la nostra macro (creada per nosaltres) no hem deixat lloc a l'ambigüitat, i en el cas d'Access 2007 seria la manera de solucionar  el problema:

dni=Formularios.Empleat.dni

Execucions i parades

CancelarEvento Cancel·la l'event que ha provocar aquesta macro. Si és abans d'actulitzar, no l'actualitza, si és abans d'eixir no eixirà, ...
DetenerMacro Finalitza l'execució de la present macro.
DetenerTodasMacros Finalitza la present macro i totes aquelles a les quals pot cridar.
EjecutarSQL Executa una sentència SQL de manipulació (inserció, esborrat, ...)
EjecutarCódigo Executa un procediment o funció de VBA (Visual Basic for Applications).
EjecutarMacro Executa una altra macro.
EjecutarAplicación Executa un programa executable extern a Access.
EjecutarComandoDeMenú Executa una de les accions definides en els menús estàndar d'Access
SalirDeAccess Tanca Access

Exercici 2.16

Canvieu la macro "Tancar", i en compte de l'acció "Cerrar", poseu "Salir". Després de comprovar l'efecte, torneu a deixar-la com estava. Però observeu com serà molt útil en aplicacions completes destinades a usuaris no experts.

Recerca de dades i desplaçament

IrRegistro Es desplaça a un determinat registre. Es pot triar: anar al primer, anar a l'anterior, anar al següent, anar a l'últim o anar a un registre determinat.
BuscarRegistro Buscar un registre que acomplesca unes condicions.
BuscarRegistroSiguiente Busca el següent que acompleix les condicions.

Exercici 2.17

Crear dos botons de navegació per al formulari "Projecte": un per anar al següent registre ( > ) i un altre per anar a l'anterior ( < ). Les dues macros associades, que poden ser incrustades, utilitzaran l'acció "IrARegistro".

No aniran del tot bé, ja que al final i al principi, si anem més enllà dels registres que tenim, pot donar problemes. Però de moment tenim suficient.

Altres

DefinirPropiedad Canvia el valor d'una propietat d'un control d'un formulari o informe. Pot servir per exemple per a fer visible un control, posant a -1 (vertader) la propietat Visible.
EstablecerValor Canvia el valor de qualsevol control o qualsevol propietat. També pot servir per a fer visible un control: en elemento Boton1.Visible; i en expresión True.
NuevaConsulta Actualitza les dades d'un control que depèn d'una consulta (un quadre combinat, un subformulari, ...)
EnviarTeclas Guarda en la memòria intermitja de teclat les tecles especificades.
IrAControl Activa el control especificat.
MostrarCursorDeRelojDeArena Mostra el rellotge d'arena mentre es va executant la macro.
MaximizarVentana, MinimizarVentana Maximitza i minimitza, respectivament, la finestra activa.
RestaurarVentana Restaura una finestra maximitzada o minimitzada a la grandària anterior.
Bip Emet un so.
CuadroDeMensaje Presenta un missatge.
Imprimir Imprimeix l'objecte
ExportarConFormato Trau l'eixida cap a un fitxer Excel, Word o de text.
ImportarExportarDatos Importa o exporta dades des de o cap a B.D. externes d'altres tipus.

Recordeu que si no es veu alguna de les accions abans esmentades, és perquè no està activat el botó Mostrar todas las acciones

Exercici 2.18 (voluntari)

Posar dos botons en el formulari "Botons" anomenats Boto1 i Boto2, de manera que quan s'aprete el primer es visualitze el segon i es deixe de visualitzar el primer, i a l'inrevés. Heu de ser conscients que s'ha de fer més d'una acció: quan punxem en un botó, aquest és l'actiu, i si l'intentem fer-lo invisible ens donarà un error perquè no es pot deixar de visualitzar un control que "tiene el enfoque" Per tant les accions seran en aquest ordre:

  • Fer visible l'altre Botó (propietat Visible de l'altre botó a True)
  • Passar el control a l'altre botó (IrAControl)
  • Per últim fer invisible aquest botó (propietat Visible d'aquest botó a False)