Ejercicio paso a paso. Creación de Macros Complejas


Objetivo.

 

Practicar la creación de Macros complejas.

 

Abrir la base de datos Clases.accdb que se encuentra en la carpeta Mis ejercicios.

En ejercicios anteriores creamos Macros que buscaban un registro con valor Internet en su campo Nombre Curso y lo cambiabamos. Esas Macros sólo modificaban el primer registro que encontraban. Por lo que si queríamos cambiar todos los registros de un formulario debíamos ejecutar la Macro tantas veces como registros con el valor Internet existiesen.

Vamos a crear una Macro que modifique todos los registros que contengan el valor Internet en su campo Nombre Curso.

1 Haz clic en Macro en la pestaña Crear para crear una nueva Macro.

2 Guarda la Macro desde Botón de Office → Guardar y dale el nombre de CambiarTodos.

Primero desactivaremos el Eco de pantalla para que no se vean las acciones de la Macro.

3 En la primera fila selecciona Eco en la columna Acción.

4 Nos dirijimos a la parte inferior donde encontramos los Argumentos de la acción. Allí seleccionamos No en Eco activo.

5 Escribe Realizando cambios... en Texto de la barra de estado.

Ahora abriremos el formulario donde deberemos hacer los cambios.

6 En la siguiente fila selecciona en la columna Acción la acción AbrirFormulario.

7 En los Argumentos de acción seleccionamos Cursos tabular en Nombre del formulario.

8 El resto de opciones las dejamos como están: Vista Formulario, Modo de datos Modificar y Modo de la ventana Normal.

Ahora buscaremos el registro en nuestro formulario.

9 En la siguiente fila selecciona la acción BuscarRegistro.

10 En los Argumentos de accción escribe Internet en el campo Buscar.

11 Cambia Coincidir mayúsculas y minúsculas a No.

12 Cambia Buscar en a Todo.

13 Cambia Buscar con formato a No.

14 Cambia Sólo el campo activo a No.

15 Selecciona en Buscar primero.

Una vez encontrado el registro pasaremos a modificarlo. Pero ahora es cuando viene la parte difícil.

Crearemos un bucle que repita todo el proceso de cambio para cada uno de los registro que contengan la palabra Internet.

16 En la siguiente fila selecciona la acción EjecutarMacro.

17 En los Argumentos de acción escribiremos CambiarTodos.repite en el campo Nombre de macro.

18 En Expresión de repetición escribe [Formularios]![Cursos tabular]![Nombre Curso]="Internet".

¿Qué hemos hecho?, muy fácil. Le estamos diciendo a Access que repita determinado bloque de acciones mientras en el formulario Cursos tabular el campo Nombre Curso contenga el valor Internet.

En el momento en el que deje de haberlo, el bloque CambiarTodos.repite dejará de repetirse.

El siguiente paso que haremos será crear el bloque repite que cambiará los valores del campo Nombre Curso.

19 Avanzamos unas 6 o 7 filas que dejaremos en blanco para colocar el bloque repite. Haz clic sobre el botón Nombres de macro en la pestaña Diseño.

20 En la fila en la que nos hemos situado escribimos repite bajo la columna Nombre de macro.

Hemos creado el señalizador que indica el sitio a donde tiene que ir la acción EjecutarMacro que insertamos anteriormente.

21 Ahora selecciona la acción EstablecerValor.

22 En los Argumentos de acción escribe [Formularios]![Cursos tabular]![Nombre Curso] en la opción Elemento.

23 En Expresión escribe "Diseño Web" (con comillas). Esto cambiará el valor del campo.

24 En la siguiente fila selecciona en la columna acción BuscarSiguiente.

Hemos hecho que el bucle cambie el valor y se posicione en el siguiente registro que contenga el valor Internet.

¿Qué pasará entonces con el bucle de EjecutarMacro? Cuando la acción BuscarSiguiente no encuentre más registros que cumplan los criterios especificados en BuscarRegistro, se posicionará en el primer registro (que obviamente no contendrá Internet). La acción EjecutarMacro analizará el campo Nombre Curso y al no encontrar el valor Internet no ejecutará nuestro bloque y pasará a la siguiente acción.

A continuación seguiremos introduciendo filas bajo la acción EjecutarMacro que dejamos antes.

25 En la fila que se encuentra debajo de la acción EjecutarMacro introduciremos la acción Cerrar.

26 En los Argumentos de acción seleccionaremos Formulario en la opción Tipo de objeto.

27 En Nombre de objeto selecciona Cursos tabular.

28 En Guardar seleccionar para cerrar guardando los cambios.

Ahora mostraremos un cuadro de mensaje para decirle al usuario que hemos terminado la tarea.

29 En la fila siguiente selecciona la acción CuadroMsj.

30 En los Argumentos de acción escribe Se han modificado todos los registros que contenian 'Internet' en el formulario 'Cursos tabular'. en la opción Mensaje.

31 Cambia la opción Bip a .

32 Cambia la opción Tipo a Información.

33 En la opción Título escribe Registros actualizados.

34 Finalmente añadiremos una Acción de DetenerMacro para que la Macro no siga ejecutándose realizando las acciones que colocamos en el bloque repite.

 

Aquí podrás ver una imagen que muestra cómo deberá haber quedado tu macro después del ejercicio:

 

35 Guarda la Macro.

36 Ejecuta la macro pulsando el botón Ejecutar Botón Ejecutar.

Puedes probar a poner varios nombres de curso como Internet para comprobar que los cambia todos, pero cuando acabes, vuelve a poner los valores que había al principio.

 




Julio-2007
Epp. 14.1

   Inicio 


.