27
Ediciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

  • Upload
    haliem

  • View
    275

  • Download
    17

Embed Size (px)

Citation preview

Page 1: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

Ediciones ENI

VBA Access 2013Programar en Access

Colección Recursos Informáticos

Contenido

Page 2: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

1Contenido

Introducción

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2. Objetivos del libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Capítulo 1Generalidades

1. Revisión de conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2. Principios fundamentales de VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3. Conversión de macros a VBA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.1 Conversión de las macros en un formulario o en un informe . . 223.2 Conversión de macros globales . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4. Seguridad de la base de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.1 Modificación de los parámetros de seguridad

de una base de datos Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.2 Modificación de los parámetros de seguridad por defecto . . . . . 254.3 Descripción de las diferentes opciones de seguridad . . . . . . . . . 254.4 Documentos confiables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.5 Ubicaciones de confianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.6 Editores de confianza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5. Publicar una base de datos Access mediante un paquete firmado. . . 295.1 Obtener un certificado digital . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.2 Crear y firmar un paquete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Podrá descargar algunos elementos de este libro en la página web de Ediciones ENI: http:www.ediciones-eni.com.

Escriba la referencia ENI del libro RIT13ACCV en la zona de búsqueda y valide. Haga clic en el título y después en el botón de descarga.

Page 3: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

2Programar en Access

VBA Access 2013

6. El entorno de desarrollo IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316.2 Ventanas del entorno IDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

7. Configuración del editor VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357.1 Configuración de los colores del editor . . . . . . . . . . . . . . . . . . . . 357.2 Configuración de la presentación del código . . . . . . . . . . . . . . . 36

8. Referencia a los objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

9. Creación de un procedimiento en VBA. . . . . . . . . . . . . . . . . . . . . . . . 37

10. Consejos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Capítulo 2El lenguaje Visual Basic

1. Los módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

2. Los procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442.1 Los procedimientos Sub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452.2 Los procedimientos Function. . . . . . . . . . . . . . . . . . . . . . . . . . . . 472.3 Declaración de los procedimientos . . . . . . . . . . . . . . . . . . . . . . . 472.4 Alcance de los procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . 482.5 Argumentos de los procedimientos . . . . . . . . . . . . . . . . . . . . . . . 492.6 Los argumentos con nombre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 502.7 Llamada a un procedimiento . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.8 Ejemplos de procedimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512.9 La función MsgBox. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3. Las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.1 Los tipos de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563.2 Las declaraciones de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 593.3 El alcance de las variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.4 Las matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613.5 Las constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

Page 4: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

3Contenido

4. Las estructuras de decisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.1 La instrucción IF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.2 La instrucción Select Case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.3 La función IIf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

5. Las estructuras en bucle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.1 La instrucción Do...Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 715.2 La instrucción While...Wend . . . . . . . . . . . . . . . . . . . . . . . . . . . . 725.3 La instrucción For...Next . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 735.4 La instrucción For Each...Next. . . . . . . . . . . . . . . . . . . . . . . . . . . 74

6. Los operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 756.1 Los operadores aritméticos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 766.2 Los operadores de comparación . . . . . . . . . . . . . . . . . . . . . . . . . . 766.3 Los operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 776.4 El operador de concatenación . . . . . . . . . . . . . . . . . . . . . . . . . . . 786.5 Prioridad de los operadores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

7. Las reglas de escritura del código . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.1 Los comentarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797.2 El carácter de continuación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.3 La indentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 807.4 Los nombres de procedimientos, variables y constantes . . . . . . 81

8. Las convenciones de llamada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818.1 Convención de llamada de las variables . . . . . . . . . . . . . . . . . . . 818.2 Convención de llamada de los controles . . . . . . . . . . . . . . . . . . . 828.3 Convención de llamada de los objetos . . . . . . . . . . . . . . . . . . . . 83

Capítulo 3Objetos y colecciones

1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

2. El modelo de objetos de Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872.1 Principales colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 882.2 Objetos del Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Page 5: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

4Programar en Access

VBA Access 2013

3. Principios de utilización de los objetos y de las colecciones . . . . . . . 903.1 Las propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 903.2 Propiedades que representan objetos. . . . . . . . . . . . . . . . . . . . . . 903.3 Los métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 923.4 Los eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 933.5 Las colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 943.6 Presentación automática de instrucciones . . . . . . . . . . . . . . . . . 96

4. Instrucciones utilizadas con los objetos . . . . . . . . . . . . . . . . . . . . . . . 994.1 La instrucción With . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.2 La instrucción For each...Next . . . . . . . . . . . . . . . . . . . . . . . . . . 1004.3 La instrucción If TypeOf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.4 La instrucción Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

5. Las clases de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.1 Descripción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.2 Los módulos de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1075.3 Ejemplo de módulos de clase . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

6. El examinador de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1126.2 Búsqueda en el examinador de objetos . . . . . . . . . . . . . . . . . . . 114

7. Propiedades y métodos de objetos de Access . . . . . . . . . . . . . . . . . . 1157.1 El objeto Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1157.2 El objeto DoCmd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237.3 El objeto Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1307.4 La colección References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1327.5 La colección Printers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Page 6: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

5Contenido

Capítulo 4Objetos de acceso a datos

1. Objetos de acceso a datos DAO y ADO . . . . . . . . . . . . . . . . . . . . . . 137

2. El modelo de acceso a datos DAO . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1382.2 Jerarquía de los objetos DAO. . . . . . . . . . . . . . . . . . . . . . . . . . . 1392.3 Descripción de las colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . 1402.4 El objeto DBEngine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1422.5 Los objetos Workspace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1432.6 Les objetos Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1452.7 Los objetos Recordset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1472.8 Los objetos Tabledef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1532.9 Los objetos Field e Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

2.9.1 Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1552.9.2 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

2.10 Los objetos QueryDef y Parameter . . . . . . . . . . . . . . . . . . . . . . 1582.10.1QueryDef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1582.10.2Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160

2.11 Los objetos Relation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1612.12 Los objetos Container y Document . . . . . . . . . . . . . . . . . . . . . 163

2.12.1Container . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1632.12.2Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

2.13 Los objetos Group y User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652.13.1User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1652.13.2Group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

2.14 El objeto Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1672.15 Los objetos Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

3. El modelo de acceso a datos ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.2 ADO y OLE DB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1703.3 Jerarquía de los objetos ADO. . . . . . . . . . . . . . . . . . . . . . . . . . . 1723.4 Modelo de base de programación ADO . . . . . . . . . . . . . . . . . . 173

Page 7: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

6Programar en Access

VBA Access 2013

3.5 Descripción de los objetos ADO . . . . . . . . . . . . . . . . . . . . . . . . 1743.6 Las colecciones ADO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.7 Los objetos Connection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1753.8 Los objetos Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1783.9 Los objetos Recordset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1793.10 La colección Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853.11 Los objetos Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1853.12 La colección Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1863.13 Los objetos Parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1873.14 La colección Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.15 Los objetos Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.16 La colección Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1883.17 Los objetos Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Capítulo 5El lenguaje SQL

1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

2. Lenguaje SQL y VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

3. Descripción del lenguaje SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1943.1 La instrucción SELECT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1943.2 La cláusula FROM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1953.3 La cláusula WHERE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973.4 La cláusula GROUP BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1973.5 La cláusula HAVING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.6 La cláusula ORDER BY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1983.7 La instrucción UPDATE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1993.8 La instrucción DELETE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1993.9 La instrucción INSERT INTO . . . . . . . . . . . . . . . . . . . . . . . . . . 2003.10 Otras instrucciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

Page 8: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

7Contenido

4. Ejemplos de utilización de consultas SQL. . . . . . . . . . . . . . . . . . . . . 2024.1 Actualización de registros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2034.2 Carga de una lista desplegable . . . . . . . . . . . . . . . . . . . . . . . . . . 204

Capítulo 6Gestión de los eventos

1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.1 Definición . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2071.2 Asociación de código VBA a un evento . . . . . . . . . . . . . . . . . . . 208

2. Categorías de eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2092.1 Eventos de tipo Ventana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2092.2 Eventos de tipo Enfoque . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2102.3 Eventos de tipo Datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2112.4 Eventos de tipo Ratón . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2132.5 Eventos de tipo Teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2132.6 Eventos de tipo Impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2152.7 Eventos de tipo Filtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2162.8 Eventos de tipo Error y Cronómetro . . . . . . . . . . . . . . . . . . . . . 216

3. Cancelación de un evento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

4. Secuencias de tipos de eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

5. Los eventos de actualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

Capítulo 7Depuración y gestión de errores

1. Los distintos tipos de error. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.1 Los errores de sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.2 Los errores de compilación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2221.3 Los errores de ejecución . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2231.4 Los errores de lógica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224

Page 9: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

8Programar en Access

VBA Access 2013

2. Depuración con VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2252.2 La barra de herramientas Depuración . . . . . . . . . . . . . . . . . . . . 2252.3 El objeto Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

3. Gestión de errores con VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2273.1 Principios. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2273.2 El procedimiento de evento Error . . . . . . . . . . . . . . . . . . . . . . . 2283.3 La instrucción On Error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2283.4 El objeto Err . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230

Capítulo 8Personalizar formularios e informes

1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

2. Personalización de los formularios . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2342.2 Propiedades disponibles en vista Diseño . . . . . . . . . . . . . . . . . . 235

2.2.1 Propiedades de la ficha Formato . . . . . . . . . . . . . . . . . . . 2362.2.2 Propiedades de la ficha Datos . . . . . . . . . . . . . . . . . . . . . 2392.2.3 Propiedades de la ficha Eventos . . . . . . . . . . . . . . . . . . . . 2412.2.4 Propiedades de la ficha Otras . . . . . . . . . . . . . . . . . . . . . . 245

2.3 Propiedades no disponibles en modo Diseño . . . . . . . . . . . . . . 2462.3.1 Propiedades relativas al modo de ver el formulario . . . . 2462.3.2 Propiedades relativas a los registros

y a su actualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2462.3.3 Propiedades relativas a la presentación del formulario . 2472.3.4 Propiedades que devuelven un objeto . . . . . . . . . . . . . . . 2492.3.5 Propiedades relativas a la impresión del formulario . . . . 249

2.4 Métodos del objeto Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250

Page 10: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

9Contenido

3. Personalización de los informes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2513.2 Propiedades disponibles en vista Diseño . . . . . . . . . . . . . . . . . . 252

3.2.1 Propiedades de la ficha Formato . . . . . . . . . . . . . . . . . . . 2523.2.2 Propiedades de la ficha Datos . . . . . . . . . . . . . . . . . . . . . 2553.2.3 Propiedades de la ficha Eventos . . . . . . . . . . . . . . . . . . . . 2563.2.4 Propiedades de la ficha Otras . . . . . . . . . . . . . . . . . . . . . . 258

3.3 Propiedades no disponibles en modo Diseño . . . . . . . . . . . . . . 2593.3.1 Propiedades relativas al modo de ver el informe. . . . . . . 2593.3.2 Propiedades relativas a los registros

y a su actualización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2593.3.3 Propiedades relativas a la presentación del informe . . . . 2603.3.4 Propiedades que devuelven un objeto . . . . . . . . . . . . . . . 2613.3.5 Propiedades relativas a la impresión del informe . . . . . . 2623.3.6 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

3.4 Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

4. Los objetos Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2644.1 Sintaxis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2644.2 Propiedades comunes de la mayoría de los controles . . . . . . . . 265

4.2.1 Propiedades que devuelvan objetos . . . . . . . . . . . . . . . . . 2654.2.2 Otras propiedades. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

4.3 Métodos comunes a la mayoría de los controles . . . . . . . . . . . 2654.4 El método Move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

5. Los controles de Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2665.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2665.2 Lista de los controles Access . . . . . . . . . . . . . . . . . . . . . . . . . . . 267

Page 11: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

10Programar en Access

VBA Access 2013

Capítulo 9Mejoras de la interfaz de usuario

1. Las opciones de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

2. Personalización de la cinta de opciones. . . . . . . . . . . . . . . . . . . . . . . 2712.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2712.2 Configuración de Access para la personalización

de la cinta de opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722.2.1 Mostrar las tablas del sistema

en el panel de navegación. . . . . . . . . . . . . . . . . . . . . . . . . 2722.2.2 Mostrar mensajes de error contenidos

en el código XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722.3 Creación de una tabla del sistema USysRibbons . . . . . . . . . . . 2732.4 Adición de código XML de personalización

a la tabla USysRibbons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2742.5 Asociación de la cinta de opciones a la aplicación activa . . . . . 2752.6 Asociación de la cinta de opciones a un formulario

o a un informe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

3. Presentación del lenguaje XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2763.1 El lenguaje XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2763.2 Elementos XML utilizados para personalizar

la cinta de opciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2773.2.1 Principales marcas activas XML utilizadas

en el código XML de una cinta de opciones . . . . . . . . . . 2773.2.2 Propiedades asociadas a los objetos

de una cinta de opciones . . . . . . . . . . . . . . . . . . . . . . . . . 278

4. Ejemplo de cinta de opciones personalizada . . . . . . . . . . . . . . . . . . . 2794.1 Código XML de la cinta de opciones personalizada . . . . . . . . . 2794.2 Código VBA llamado por los comandos

de la cinta de opciones personalizada . . . . . . . . . . . . . . . . . . . . 283

5. Imágenes de la galería de iconos de Microsoft Office . . . . . . . . . . . 284

Page 12: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

11Contenido

Capítulo 10Comunicación con aplicaciones 2013

1. La tecnología Automatización . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.1 Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2871.2 Utilización de la tecnología Automatización . . . . . . . . . . . . . . 289

2. Controlar Word desde Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2902.1 El modelo Objeto Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2902.2 Principales colecciones del modelo de objetos Word . . . . . . . . 2912.3 Principales objetos del modelo objeto de Word . . . . . . . . . . . . 2922.4 La colección Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2932.5 Los objetos Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294

3. Controlar Excel desde Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973.1 El modelo Objeto Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2973.2 Principales colecciones de la aplicación Excel . . . . . . . . . . . . . . 2983.3 La colección Workbooks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2993.4 Los objetos Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

3.4.1 Principales métodos del objeto Workbook . . . . . . . . . . . 2993.4.2 Las principales colecciones asociadas

al objeto Workbook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3003.5 Escritura de datos en celdas Excel . . . . . . . . . . . . . . . . . . . . . . . 300

4. Controlar Outlook desde Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3024.1 El modelo Objeto Outlook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3024.2 Ejemplo: mostrar los contactos de Outlook . . . . . . . . . . . . . . . 303

Capítulo 11Programación en Internet

1. Importación y exportación de datos en formato XML . . . . . . . . . . 3051.1 El método ExportXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3061.2 El método ImportXML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3081.3 Ejemplo de importación/exportación XML . . . . . . . . . . . . . . . 308

2. Ejemplo de creación de un archivo HTML . . . . . . . . . . . . . . . . . . . . 312

Page 13: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

12Programar en Access

VBA Access 2013

Capítulo 12Programación en Windows

1. Presentación de las API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

2. Llamada a una función de la API Windows . . . . . . . . . . . . . . . . . . . 3162.1 Sintaxis de la instrucción Declare . . . . . . . . . . . . . . . . . . . . . . . 3162.2 Paso de argumentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

3. Lista de funciones de la API Windows . . . . . . . . . . . . . . . . . . . . . . . 319

4. Ejemplos de utilización de funciones de la API Windows . . . . . . . . 3204.1 Recuperación del directorio de Windows . . . . . . . . . . . . . . . . . 3204.2 Inicio de la aplicación Excel si no está activa . . . . . . . . . . . . . . 3214.3 Recuperación de un valor en un archivo .ini. . . . . . . . . . . . . . . 322

5. El objeto FileSystemObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3245.1 Métodos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3245.2 Propiedades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3255.3 Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

Capítulo 13Código de una mini-aplicación

1. Presentación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271.1 Enunciado del problema. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3271.2 Base de datos Cursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3281.3 Modelo relacional de la base . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

2. Formulario "Cursos" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3292.1 Lista de controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3302.2 Código VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3312.3 Subformulario "SF Participantes". . . . . . . . . . . . . . . . . . . . . . . . 3352.4 Código VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336

Page 14: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

13Contenido

3. Formulario "Buscar" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3373.1 Lista de controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3383.2 Código VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3383.3 Subformulario "SF Cursos". . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3413.4 Informe "Cursos". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

Anexos1. Funciones e instrucciones VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

1.1 Manipulación de cadenas de caracteres. . . . . . . . . . . . . . . . . . . 3451.2 Control del funcionamiento del programa . . . . . . . . . . . . . . . . 3461.3 Conversión de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3481.4 Fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3491.5 Declaración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3501.6 Dominio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3511.7 Intercambio dinámico de datos . . . . . . . . . . . . . . . . . . . . . . . . . 3511.8 Entrada y salida de archivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3521.9 Financieras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3541.10 Gestión de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3551.11 Gráficos en los informes impresos . . . . . . . . . . . . . . . . . . . . . . . 3551.12 Vinculación e incrustación de objetos. . . . . . . . . . . . . . . . . . . . 3561.13 Manipulación de objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.14 Matemáticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3561.15 SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3571.16 Matrices. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.17 Control de variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3581.18 Funciones e instrucciones diversas . . . . . . . . . . . . . . . . . . . . . . 3591.19 Códigos de error interceptables . . . . . . . . . . . . . . . . . . . . . . . . . 360

Page 15: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

14Programar en Access

VBA Access 2013

2. Constantes VBA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3662.1 Constantes de color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3662.2 Constantes de fecha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3662.3 Constantes de teclas teclado alfanumérico. . . . . . . . . . . . . . . . 3672.4 Constantes de teclas de función . . . . . . . . . . . . . . . . . . . . . . . . 3672.5 Constantes de teclas diversas. . . . . . . . . . . . . . . . . . . . . . . . . . . 368

3. Métodos abreviados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

Page 16: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

Ediciones ENI

VBA Access 2013 Creación de aplicaciones profesionales:

ejercicios y correcciones

Colección Prácticas Técnicas

Contenido

Page 17: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

Introducción

Audiencia del libro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Objetivo del libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Uso del libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Apoyo para la realización de trabajos prácticos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Enunciados

Capítulo 1: Crear procedimientos y funciones

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Enunciado 1.1 Crear y ejecutar un procedimiento público . . . . . . . . . . . . . . . . . . . . . 43Enunciado 1.2 Crear y ejecutar un procedimiento privado . . . . . . . . . . . . . . . . . . . . . 44Enunciado 1.3 Llamar a un procedimiento desde un procedimiento . . . . . . . . . . . . . . 44Enunciado 1.4 Modificar el ámbito de un procedimiento . . . . . . . . . . . . . . . . . . . . . . 45Enunciado 1.5 Dialogar con el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Enunciado 1.6 Utilizar una función en un procedimiento . . . . . . . . . . . . . . . . . . . . . . 46Enunciado 1.7 Utilizar procedimientos de evento . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Capítulo 2: Crear variables y constantes

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Enunciado 2.1 Declarar y utilizar variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Enunciado 2.2 Declarar y utilizar constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56Enunciado 2.3 Utilizar un tipo definido por el usuario . . . . . . . . . . . . . . . . . . . . . . . . 58Enunciado 2.4 Manipular datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59Enunciado 2.5 Utilizar una tabla de una dimensión . . . . . . . . . . . . . . . . . . . . . . . . . 60

Capítulo 3: Uso de operadores

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Enunciado 3.1 Dividir dos números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Enunciado 3.2 Obtener el resto de una división entera . . . . . . . . . . . . . . . . . . . . . . . 64Enunciado 3.3 Encontrar el menor de dos números . . . . . . . . . . . . . . . . . . . . . . . . . 65Enunciado 3.4 Devolver el resultado de elevar a N un número . . . . . . . . . . . . . . . . . . 66Enunciado 3.5 Generar números aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Enunciado 3.6 Calcular el porcentaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Enunciado 3.7 Calcular la comisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68Enunciado 3.8 Calcular la anualidad constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Page 18: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

2

Enunciado 3.9 Contar el número de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69Enunciado 3.10 Comparar dos cadenas de caracteres . . . . . . . . . . . . . . . . . . . . . . . . 70Enunciado 3.11 Formatear una palabra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70Enunciado 3.12 Buscar una palabra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Enunciado 3.13 Extraer un dato de una cadena de caracteres. . . . . . . . . . . . . . . . . . . 72

Capítulo 4: Estructuras de control

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Enunciado 4.1 Controlar la entrada de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75Enunciado 4.2 Decir adiós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Enunciado 4.3 Identificar si es consonante o vocal . . . . . . . . . . . . . . . . . . . . . . . . . 78Enunciado 4.4 Responder en función de la edad . . . . . . . . . . . . . . . . . . . . . . . . . . . 79Enunciado 4.5 Decir hola N veces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Enunciado 4.6 Contar de N en N hasta M. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Enunciado 4.7 Obligar a introducir datos y controlar la salida . . . . . . . . . . . . . . . . . . 83Enunciado 4.8 Escribir palabras al revés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Enunciado 4.9 Encontrar números primos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Enunciado 4.10 Contar el número de ocurrencias de un número . . . . . . . . . . . . . . . . . 85

Capítulo 5: Tablas

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Enunciado 5.1 Declarar y utilizar una tabla accesible

por todos los procedimientos del proyecto . . . . . . . . . . . . . . . . . . . . . 89Enunciado 5.2 Declarar y utilizar una tabla accesible

sólo desde los procedimientos de su módulo . . . . . . . . . . . . . . . . . . . 89Enunciado 5.3 Mostrar los límites de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Enunciado 5.4 Utilizar una tabla a nivel de módulo . . . . . . . . . . . . . . . . . . . . . . . . . 90Enunciado 5.5 Inicializar una tabla con valores aleatorios. . . . . . . . . . . . . . . . . . . . . 91Enunciado 5.6 Declarar y utilizar una tabla de dos dimensiones . . . . . . . . . . . . . . . . 92Enunciado 5.7 Utilizar una tabla de más de dos dimensiones . . . . . . . . . . . . . . . . . . 92Enunciado 5.8 Declarar y utilizar una tabla dinámica. . . . . . . . . . . . . . . . . . . . . . . . 93Enunciado 5.9 Agrandar una tabla dinámica conservando los valores iniciales . . . . . . 93Enunciado 5.10 Mostrar las tablas de multiplicar . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Enunciado 5.11 Mostrar una tabla en una lista desplegable . . . . . . . . . . . . . . . . . . . . 95

Page 19: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

3

Capítulo 6: Programación con objetos

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Enunciado 6.1 Acceder a un objeto y modificar sus propiedades . . . . . . . . . . . . . . . 100Enunciado 6.2 Gestionar colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Enunciado 6.3 Crear una clase. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Enunciado 6.4 Utilizar la clase creada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Enunciado 6.5 Crear y utilizar sus colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106Enunciado 6.6 Utilizar un método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Capítulo 7: Cuadros de diálogo

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109Enunciado 7.1 Mostrar un mensaje simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Enunciado 7.2 Solicitar una entrada de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Enunciado 7.3 Controlar la entrada de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Enunciado 7.4 Elegir los botones para los cuadros de diálogo . . . . . . . . . . . . . . . . . 113Enunciado 7.5 Realizar una acción según la elección del usuario . . . . . . . . . . . . . . . 114Enunciado 7.6 Realizar un tratamiento una vez que el usuario ha introducido datos . . 115

Capítulo 8: Formularios de datos

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Enunciado 8.1 Abrir y cerrar un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Enunciado 8.2 Mostrar un formulario en modo sólo lectura . . . . . . . . . . . . . . . . . . . 122Enunciado 8.3 Identificar el contenido de un formulario . . . . . . . . . . . . . . . . . . . . . 122Enunciado 8.4 Trabajar con un subformulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Enunciado 8.5 Mostrar una imagen de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Enunciado 8.6 Duplicar un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Enunciado 8.7 Gestionar el desplazamiento del ratón por el formulario . . . . . . . . . . . 125Enunciado 8.8 Gestionar el doble clic del ratón en el formulario . . . . . . . . . . . . . . . . 126

Capítulo 9: Controles

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127Enunciado 9.1 Seleccionar un control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Enunciado 9.2 Ocultar y mostrar controles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Enunciado 9.3 Hacer un control dependiente de otro . . . . . . . . . . . . . . . . . . . . . . . 131Enunciado 9.4 Provocar la reacción de los controles con el ratón . . . . . . . . . . . . . . . 132

Page 20: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

4

Enunciado 9.5 Provocar la reacción de los controles con el teclado . . . . . . . . . . . . . 132Enunciado 9.6 Cambiar la imagen de los botones . . . . . . . . . . . . . . . . . . . . . . . . . 133Enunciado 9.7 Calcular una comisión. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Enunciado 9.8 Gestionar una lista simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Enunciado 9.9 Añadir un valor en la lista modificable . . . . . . . . . . . . . . . . . . . . . . 141Enunciado 9.10 Relacionar las listas con las tablas . . . . . . . . . . . . . . . . . . . . . . . . . 142Enunciado 9.11 Utilizar botones de opción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144Enunciado 9.12 Utilizar casillas de activación asociadas a imágenes . . . . . . . . . . . . . 144Enunciado 9.13 Gestionar imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Capítulo 10: Consultas

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147Enunciado 10.1 Mostrar todos los registros de una tabla . . . . . . . . . . . . . . . . . . . . . 150Enunciado 10.2 Mostrar algunos campos de una tabla. . . . . . . . . . . . . . . . . . . . . . . 150Enunciado 10.3 Seleccionar e imprimir registros . . . . . . . . . . . . . . . . . . . . . . . . . . . 151Enunciado 10.4 Realizar una búsqueda parametrizada . . . . . . . . . . . . . . . . . . . . . . 152Enunciado 10.5 Realizar una búsqueda a partir de un desplegable . . . . . . . . . . . . . . 153Enunciado 10.6 Limitar los valores de un desplegable . . . . . . . . . . . . . . . . . . . . . . . 153Enunciado 10.7 Realizar una búsqueda multicriterio . . . . . . . . . . . . . . . . . . . . . . . . 154Enunciado 10.8 Actualizar datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155Enunciado 10.9 Eliminar un registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Enunciado 10.10 Utilizar una consulta con Union . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Enunciado 10.11 Crear un ranking de ventas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Capítulo 11: Objetos de datos

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159Enunciado 11.1 Crear una referencia a la base de datos actual . . . . . . . . . . . . . . . . . 163Enunciado 11.2 Realizar una operación en la base de datos actual . . . . . . . . . . . . . . 163Enunciado 11.3 Consultar la base de datos actual . . . . . . . . . . . . . . . . . . . . . . . . . . 164Enunciado 11.4 Rellenar una tabla temporal asociada . . . . . . . . . . . . . . . . . . . . . . . 164Enunciado 11.5 Buscar un registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165Enunciado 11.6 Crear una referencia a una base de datos externa Access . . . . . . . . . 165Enunciado 11.7 Operar con una base de datos externa Access . . . . . . . . . . . . . . . . . 166Enunciado 11.8 Configurar un origen de datos ODBC. . . . . . . . . . . . . . . . . . . . . . . . 167Enunciado 11.9 Crear una referencia a una base de datos

externa mediante un origen de datos ODBC. . . . . . . . . . . . . . . . . . . 168Enunciado 11.10 Gestionar una base de datos externa

mediante un origen de datos ODBC . . . . . . . . . . . . . . . . . . . . . . . . 169

Page 21: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

5

Enunciado 11.11 Crear un cuadro de mando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Capítulo 12: Informes

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173Enunciado 12.1 Abrir un informe en modo vista previa . . . . . . . . . . . . . . . . . . . . . . . 175Enunciado 12.2 Imprimir directamente un informe . . . . . . . . . . . . . . . . . . . . . . . . . . 175Enunciado 12.3 Listar todos los productos en función de una entrada del usuario . . . . 176Enunciado 12.4 Editar todos los productos agotados . . . . . . . . . . . . . . . . . . . . . . . . 177Enunciado 12.5 Implementar un formato condicional dinámico . . . . . . . . . . . . . . . . . 178Enunciado 12.6 Imprimir un informe parametrizado . . . . . . . . . . . . . . . . . . . . . . . . . 179Enunciado 12.7 Extraer los datos de un informe. . . . . . . . . . . . . . . . . . . . . . . . . . . . 179Enunciado 12.8 Elegir las opciones de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

Capítulo 13: Interacciones con el Pack Office/API Windows

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183Enunciado 13.1 Iniciar una aplicación Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . 186Enunciado 13.2 Abrir un libro Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188Enunciado 13.3 Copiar datos Access a aplicaciones Microsoft . . . . . . . . . . . . . . . . . . 188Enunciado 13.4 Realizar un envío de correos con Word . . . . . . . . . . . . . . . . . . . . . . 189Enunciado 13.5 Exportar una consulta a Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190Enunciado 13.6 Generar una presentación PowerPoint . . . . . . . . . . . . . . . . . . . . . . . 191Enunciado 13.7 Enviar un mail con Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Enunciado 13.8 Iniciar la calculadora en Windows Vista/Windows 7 . . . . . . . . . . . . . 194Enunciado 13.9 Utilizar funciones de Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195Enunciado 13.10 Importar a una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Capítulo 14: Optimizar la aplicación VBA Access

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199Enunciado 14.1 Modificar las opciones de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Enunciado 14.2 Compactar una base de datos Access . . . . . . . . . . . . . . . . . . . . . . . 202Enunciado 14.3 Personalizar las barras de herramientas . . . . . . . . . . . . . . . . . . . . . . 203Enunciado 14.4 Acelerar el uso de formularios y listas . . . . . . . . . . . . . . . . . . . . . . . 205Enunciado 14.5 Generar la matrícula de los empleados . . . . . . . . . . . . . . . . . . . . . . 205Enunciado 14.6 Ejecutar instrucciones VBA simultáneamente . . . . . . . . . . . . . . . . . . 206

Page 22: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

6

Capítulo 15: Proteger la aplicación VBA Access

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Enunciado 15.1 Realizar seguimiento de las acciones del usuario . . . . . . . . . . . . . . . 210Enunciado 15.2 Crear un sistema de mensajería interna. . . . . . . . . . . . . . . . . . . . . . 211Enunciado 15.3 Utilizar los derechos de acceso del usuario . . . . . . . . . . . . . . . . . . . 212Enunciado 15.4 Crear una base de datos de copia de seguridad . . . . . . . . . . . . . . . . 214

Soluciones

Capítulo 1: Crear procedimientos y funciones

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217Solución 1.1 Crear y ejecutar un procedimiento público. . . . . . . . . . . . . . . . . . . . 218Solución 1.2 Crear y ejecutar un procedimiento privado. . . . . . . . . . . . . . . . . . . . 219Solución 1.3 Llamar a un procedimiento desde un procedimiento . . . . . . . . . . . . . 219Solución 1.4 Modificar el ámbito de un procedimiento. . . . . . . . . . . . . . . . . . . . . 220Solución 1.5 Dialogar con el usuario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Solución 1.6 Utilizar una función en un procedimiento . . . . . . . . . . . . . . . . . . . . 221Solución 1.7 Utilizar procedimientos de evento. . . . . . . . . . . . . . . . . . . . . . . . . . 222

Capítulo 2: Crear variables y constantes

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Solución 2.1 Declarar y utilizar variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227Solución 2.2 Declarar y utilizar constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228Solución 2.3 Utilizar un tipo definido por el usuario . . . . . . . . . . . . . . . . . . . . . . 229Solución 2.4 Manipular datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230Solución 2.5 Utilizar una tabla de una dimensión . . . . . . . . . . . . . . . . . . . . . . . . 231

Capítulo 3: Uso de operadores

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233Solución 3.1 Dividir dos números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234Solución 3.2 Obtener el resto de una división entera . . . . . . . . . . . . . . . . . . . . . . 234Solución 3.3 Encontrar el menor de dos números . . . . . . . . . . . . . . . . . . . . . . . . 235Solución 3.4 Devolver el resultado de elevar a N un número . . . . . . . . . . . . . . . . 235Solución 3.5 Generar números aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Solución 3.6 Calcular el porcentaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236Solución 3.7 Calcular la comisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

Page 23: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

7

Solución 3.8 Calcular la anualidad constante . . . . . . . . . . . . . . . . . . . . . . . . . . . 237Solución 3.9 Contar el número de caracteres. . . . . . . . . . . . . . . . . . . . . . . . . . . . 238Solución 3.10 Comparar dos cadenas de caracteres. . . . . . . . . . . . . . . . . . . . . . . . 239Solución 3.11 Formatear una palabra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239Solución 3.12 Buscar una palabra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240Solución 3.13 Extraer un dato de una cadena de caracteres . . . . . . . . . . . . . . . . . . 240

Capítulo 4: Estructuras de control

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241Solución 4.1 Controlar la entrada de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242Solución 4.2 Decir adiós. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244Solución 4.3 Identificar si es consonante o vocal . . . . . . . . . . . . . . . . . . . . . . . . . 244Solución 4.4 Responder en función de la edad . . . . . . . . . . . . . . . . . . . . . . . . . . 245Solución 4.5 Decir hola N veces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246Solución 4.6 Contar de N en N hasta M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Solución 4.7 Obligar a introducir datos y controlar la salida . . . . . . . . . . . . . . . . . 249Solución 4.8 Escribir palabras al revés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250Solución 4.9 Encontrar números primos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251Solución 4.10 Contar el número de ocurrencias de un número . . . . . . . . . . . . . . . . 252

Capítulo 5: Tablas

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253Solución 5.1 Declarar y utilizar una tabla accesible

por todos los procedimientos del proyecto . . . . . . . . . . . . . . . . . . . . 254Solución 5.2 Declarar y utilizar una tabla accesible

sólo desde los procedimientos de su módulo . . . . . . . . . . . . . . . . . . 254Solución 5.3 Mostrar los límites de una tabla . . . . . . . . . . . . . . . . . . . . . . . . . . . 255Solución 5.4 Utilizar una tabla a nivel de módulo . . . . . . . . . . . . . . . . . . . . . . . . 256Solución 5.5 Inicializar una tabla con valores aleatorios . . . . . . . . . . . . . . . . . . . . 256Solución 5.6 Declarar y utilizar una tabla de dos dimensiones. . . . . . . . . . . . . . . . 257Solución 5.7 Utilizar una tabla de más de dos dimensiones . . . . . . . . . . . . . . . . . 258Solución 5.8 Declarar y utilizar una tabla dinámica . . . . . . . . . . . . . . . . . . . . . . . 259Solución 5.9 Agrandar una tabla dinámica conservando los valores iniciales . . . . . . 260Solución 5.10 Mostrar las tablas de multiplicar . . . . . . . . . . . . . . . . . . . . . . . . . . . 260Solución 5.11 Mostrar una tabla en una lista desplegable. . . . . . . . . . . . . . . . . . . . 261

Page 24: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

8

Capítulo 6: Programación con objetos

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263Solución 6.1 Acceder a un objeto y modificar sus propiedades . . . . . . . . . . . . . . . 264Solución 6.2 Gestionar colecciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268Solución 6.3 Crear una clase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269Solución 6.4 Utilizar la clase creada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Solución 6.5 Crear y utilizar sus colecciones. . . . . . . . . . . . . . . . . . . . . . . . . . . . 271Solución 6.6 Utilizar un método . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

Capítulo 7: Cuadros de diálogo

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273Solución 7.1 Mostrar un mensaje simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Solución 7.2 Solicitar una entrada de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274Solución 7.3 Controlar la entrada de datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275Solución 7.4 Elegir los botones para los cuadros de diálogo . . . . . . . . . . . . . . . . . 275Solución 7.5 Realizar una acción según la elección del usuario. . . . . . . . . . . . . . . 276Solución 7.6 Realizar un tratamiento una vez que el usuario ha introducido datos . 277

Capítulo 8: Formularios de datos

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279Solución 8.1 Abrir y cerrar un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281Solución 8.2 Mostrar un formulario en modo sólo lectura. . . . . . . . . . . . . . . . . . . 283Solución 8.3 Identificar el contenido de un formulario . . . . . . . . . . . . . . . . . . . . . 283Solución 8.4 Trabajar con un subformulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Solución 8.5 Mostrar una imagen de fondo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284Solución 8.6 Duplicar un formulario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285Solución 8.7 Gestionar el desplazamiento del ratón por el formulario . . . . . . . . . . 286Solución 8.8 Gestionar el doble clic del ratón en el formulario . . . . . . . . . . . . . . . 286

Capítulo 9: Controles

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287Solución 9.1 Seleccionar un control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288Solución 9.2 Ocultar y mostrar controles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289Solución 9.3 Hacer un control dependiente de otro . . . . . . . . . . . . . . . . . . . . . . . 289Solución 9.4 Provocar la reacción de los controles con el ratón. . . . . . . . . . . . . . . 290

Page 25: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

9

Solución 9.5 Provocar la reacción de los controles con el teclado. . . . . . . . . . . . . . 290Solución 9.6 Cambiar la imagen de los botones. . . . . . . . . . . . . . . . . . . . . . . . . . 291Solución 9.7 Calcular una comisión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291Solución 9.8 Gestionar una lista simple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293Solución 9.9 Añadir un valor en la lista modificable . . . . . . . . . . . . . . . . . . . . . . . 297Solución 9.10 Relacionar las listas con las tablas . . . . . . . . . . . . . . . . . . . . . . . . . 297Solución 9.11 Utilizar botones de opción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298Solución 9.12 Utilizar casillas de activación asociadas a imágenes . . . . . . . . . . . . . 299Solución 9.13 Gestionar imágenes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

Capítulo 10: Consultas

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301Solución 10.1 Mostrar todos los registros de una tabla . . . . . . . . . . . . . . . . . . . . . . 302Solución 10.2 Mostrar algunos campos de una tabla . . . . . . . . . . . . . . . . . . . . . . . 302Solución 10.3 Seleccionar e imprimir registros . . . . . . . . . . . . . . . . . . . . . . . . . . . 302Solución 10.4 Realizar una búsqueda parametrizada . . . . . . . . . . . . . . . . . . . . . . . 303Solución 10.5 Realizar una búsqueda a partir de un desplegable. . . . . . . . . . . . . . . 303Solución 10.6 Limitar los valores de un desplegable . . . . . . . . . . . . . . . . . . . . . . . 304Solución 10.7 Realizar una búsqueda multicriterio. . . . . . . . . . . . . . . . . . . . . . . . . 305Solución 10.8 Actualizar datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307Solución 10.9 Eliminar un registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309Solución 10.10 Utilizar una consulta con Union . . . . . . . . . . . . . . . . . . . . . . . . . . . 310Solución 10.11 Crear un ranking de ventas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

Capítulo 11: Objetos de datos

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313Solución 11.1 Crear una referencia a la base de datos actual . . . . . . . . . . . . . . . . . 314Solución 11.2 Realizar una operación en la base de datos actual . . . . . . . . . . . . . . 314Solución 11.3 Consultar la base de datos actual . . . . . . . . . . . . . . . . . . . . . . . . . . 315Solución 11.4 Rellenar una tabla temporal asociada . . . . . . . . . . . . . . . . . . . . . . . 315Solución 11.5 Buscar un registro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317Solución 11.6 Crear una referencia a una base de datos externa Access . . . . . . . . . . 319Solución 11.7 Operar con una base de datos externa Access. . . . . . . . . . . . . . . . . . 319Solución 11.8 Configurar un origen de datos ODBC . . . . . . . . . . . . . . . . . . . . . . . . 321Solución 11.9 Crear una referencia a una base de datos externa

mediante un origen de datos ODBC. . . . . . . . . . . . . . . . . . . . . . . . . 322Solución 11.10 Gestionar una base de datos externa mediante

un origen de datos ODBC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

Page 26: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

10

Solución 11.11 Crear un cuadro de mando . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

Capítulo 12: Informes

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327Solución 12.1 Abrir un informe en modo vista previa. . . . . . . . . . . . . . . . . . . . . . . 328Solución 12.2 Imprimir directamente un informe . . . . . . . . . . . . . . . . . . . . . . . . . 328Solución 12.3 Listar todos los productos en función de una entrada del usuario . . . . 328Solución 12.4 Editar todos los productos agotados . . . . . . . . . . . . . . . . . . . . . . . . 329Solución 12.5 Implementar un formato condicional dinámico. . . . . . . . . . . . . . . . . 329Solución 12.6 Imprimir un informe parametrizado . . . . . . . . . . . . . . . . . . . . . . . . 330Solución 12.7 Extraer los datos de un informe . . . . . . . . . . . . . . . . . . . . . . . . . . . 330Solución 12.8 Elegir las opciones de impresión . . . . . . . . . . . . . . . . . . . . . . . . . . 331

Capítulo 13: Interacciones con el Pack Office/API Windows

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333Solución 13.1 Iniciar una aplicación Microsoft . . . . . . . . . . . . . . . . . . . . . . . . . . . 335Solución 13.2 Abrir un libro Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336Solución 13.3 Copiar datos Access en aplicaciones Microsoft . . . . . . . . . . . . . . . . . 336Solución 13.4 Realizar un envío de correos con Word . . . . . . . . . . . . . . . . . . . . . . 337Solución 13.5 Exportar una consulta a Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338Solución 13.6 Generar una presentación PowerPoint. . . . . . . . . . . . . . . . . . . . . . . 338Solución 13.7 Enviar un mail con Outlook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339Solución 13.8 Iniciar la calculadora en Windows Vista/Windows 7 . . . . . . . . . . . . . 340Solución 13.9 Utilizar funciones Excel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341Solución 13.10 Importar a una tabla. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

Capítulo 14: Optimizar la aplicación VBA Access

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343Solución 14.1 Modificar las opciones de inicio . . . . . . . . . . . . . . . . . . . . . . . . . . . 344Solución 14.2 Compactar una base de datos Access . . . . . . . . . . . . . . . . . . . . . . . 345Solución 14.3 Personalizar las barras de herramientas . . . . . . . . . . . . . . . . . . . . . 346Solución 14.4 Acelerar el uso de formularios y de listas. . . . . . . . . . . . . . . . . . . . . 347Solución 14.5 Generar la matrícula de los empleados . . . . . . . . . . . . . . . . . . . . . . 348Solución 14.6 Ejecutar instrucciones VBA simultáneamente. . . . . . . . . . . . . . . . . . 349

Page 27: VBA Access 2013 - m.ediciones-eni.com · PDF fileEdiciones ENI VBA Access 2013 Programar en Access Colección Recursos Informáticos Contenido

11

Capítulo 15: Proteger la aplicación VBA Access

Requisitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351Solución 15.1 Realizar seguimiento de las acciones del usuario . . . . . . . . . . . . . . . 352Solución 15.2 Crear un sistema de mensajería interna . . . . . . . . . . . . . . . . . . . . . . 354Solución 15.3 Utilizar los derechos de acceso del usuario. . . . . . . . . . . . . . . . . . . . 355Solución 15.4 Crear una base de datos de copia de seguridad. . . . . . . . . . . . . . . . . 356

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359