30
Ediciones ENI VBA Access 2010 Programar en Access Colección Recursos Informáticos Contenido

VBA Access 2010 - ediciones-eni.com fileEdiciones ENI VBA Access 2010 Programar en Access Colección Recursos Informáticos Contenido

Embed Size (px)

Citation preview

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

Ediciones ENI

VBA Access 2010Programar en Access

Colección Recursos Informáticos

Contenido

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

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

Escriba la referencia ENI del libro RIT10ACCV en la zona de búsqueda y valide.Haga clic en el título y después en el vínculo de descarga.

Introducción

A. Introducción . . . . . . . . . . . . . . . . . . . . 16

B. Objetivos del libro. . . . . . . . . . . . . . . . . . 16

Generalidades Capítulo 1

A. Revisión de conceptos . . . . . . . . . . . . . . . . 20

B. Principios fundamentales de VBA . . . . . . . . . . . 21

C. Las novedades de Access 2010 . . . . . . . . . . . . 22

D. Conversión de macros a VBA . . . . . . . . . . . . . 231. Conversión de las macros en un formulario o en un informe . . . . 23

2. Conversión de macros globales . . . . . . . . . . . . . . . . 24

E. Seguridad de la base de datos . . . . . . . . . . . . 241. Modificación de los parámetros de seguridad

de una base de datos Access . . . . . . . . . . . . . . . . 24

2. Modificación de los parámetros de seguridad por defecto . . . . . 26

3. Descripción de las diferentes opciones de seguridad . . . . . . . 26

4. Documentos confiables . . . . . . . . . . . . . . . . . . . 27

5. Ubicaciones de confianza . . . . . . . . . . . . . . . . . . 28

6. Editores de confianza . . . . . . . . . . . . . . . . . . . . 29

Programar en Access 1

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

F. Publicar una base de datos Accessmediante un paquete firmado . . . . . . . . . . . . . 301. Obtener un certificado digital . . . . . . . . . . . . . . . . . 30

2. Crear y firmar un paquete . . . . . . . . . . . . . . . . . . 31

G. El entorno de desarrollo IDE . . . . . . . . . . . . . 321. Presentación . . . . . . . . . . . . . . . . . . . . . . . 32

2. Ventanas del entorno IDE . . . . . . . . . . . . . . . . . . 33

H. Configuración del editor VBA . . . . . . . . . . . . . 361. Configuración de los colores del editor . . . . . . . . . . . . . 36

2. Configuración de la presentación del código . . . . . . . . . . 36

I. Referencia a los objetos . . . . . . . . . . . . . . . 37

J. Creación de un procedimiento en VBA . . . . . . . . . 38

K. Consejos. . . . . . . . . . . . . . . . . . . . . . 42

El lenguaje Visual Basic Capítulo 2

A. Los módulos . . . . . . . . . . . . . . . . . . . . 44

B. Los procedimientos . . . . . . . . . . . . . . . . . 451. Los procedimientos Sub . . . . . . . . . . . . . . . . . . . 46

2. Los procedimientos Function . . . . . . . . . . . . . . . . . 47

3. Declaración de los procedimientos . . . . . . . . . . . . . . 48

4. Alcance de los procedimientos . . . . . . . . . . . . . . . . 48

5. Argumentos de los procedimientos . . . . . . . . . . . . . . 49

6. Los argumentos con nombre . . . . . . . . . . . . . . . . . 50

7. Llamada a un procedimiento . . . . . . . . . . . . . . . . . 51

8. Ejemplos de procedimientos . . . . . . . . . . . . . . . . . 51

Contenido

2 VBA Access 2010

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

9. La función MsgBox . . . . . . . . . . . . . . . . . . . . . 52

C. Las variables . . . . . . . . . . . . . . . . . . . . 551. Los tipos de variables . . . . . . . . . . . . . . . . . . . . 55

2. Las declaraciones de variables . . . . . . . . . . . . . . . . 58

3. El alcance de las variables. . . . . . . . . . . . . . . . . . 60

4. Las matrices . . . . . . . . . . . . . . . . . . . . . . . 60

5. Las constantes. . . . . . . . . . . . . . . . . . . . . . . 63

D. Las estructuras de decisión . . . . . . . . . . . . . . 661. La instrucción IF . . . . . . . . . . . . . . . . . . . . . . 66

2. La instrucción Select Case . . . . . . . . . . . . . . . . . . 67

3. La función Iif . . . . . . . . . . . . . . . . . . . . . . . 69

E. Las estructuras en bucle . . . . . . . . . . . . . . . 691. La instrucción Do...Loop . . . . . . . . . . . . . . . . . . 70

2. La instrucción While...Wend . . . . . . . . . . . . . . . . . 71

3. La instrucción For...Next . . . . . . . . . . . . . . . . . . 72

4. La instrucción For Each...Next . . . . . . . . . . . . . . . . 73

F. Los operadores . . . . . . . . . . . . . . . . . . . 741. Los operadores aritméticos. . . . . . . . . . . . . . . . . . 74

2. Los operadores de comparación . . . . . . . . . . . . . . . 75

3. Los operadores lógicos . . . . . . . . . . . . . . . . . . . 75

4. El operador de concatenación . . . . . . . . . . . . . . . . 76

5. Prioridad de los operadores . . . . . . . . . . . . . . . . . 76

G. Las reglas de escritura del código . . . . . . . . . . . 771. Los comentarios . . . . . . . . . . . . . . . . . . . . . . 77

2. El carácter de continuación . . . . . . . . . . . . . . . . . 78

3. La indentación. . . . . . . . . . . . . . . . . . . . . . . 78

4. Los nombres de procedimientos, variables y constantes. . . . . . 79

Contenido

Programar en Access 3

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

H. Las convenciones de llamada . . . . . . . . . . . . . 791. Convención de llamada de las variables . . . . . . . . . . . . 79

2. Convención de llamada de los controles . . . . . . . . . . . . 80

3. Convención de llamada de los objetos . . . . . . . . . . . . . 81

Objetos y colecciones Capítulo 3

A. Presentación . . . . . . . . . . . . . . . . . . . . 84

B. El modelo de objetos de Access . . . . . . . . . . . . 851. Principales colecciones . . . . . . . . . . . . . . . . . . . 86

2. Objetos del Modelo . . . . . . . . . . . . . . . . . . . . . 87

C. Principios de utilización de los objetos y de las colecciones 881. Las propiedades . . . . . . . . . . . . . . . . . . . . . . 88

2. Propiedades que representan objetos . . . . . . . . . . . . . 88

3. Los métodos . . . . . . . . . . . . . . . . . . . . . . . 89

4. Los eventos . . . . . . . . . . . . . . . . . . . . . . . . 91

5. Las colecciones . . . . . . . . . . . . . . . . . . . . . . 91

6. Presentación automática de instrucciones . . . . . . . . . . . 94

D. Instrucciones utilizadas con los objetos . . . . . . . . . 971. La instrucción With. . . . . . . . . . . . . . . . . . . . . 97

2. La instrucción For each...Next . . . . . . . . . . . . . . . . 98

3. La instrucción If TypeOf . . . . . . . . . . . . . . . . . . . 99

4. La instrucción Set . . . . . . . . . . . . . . . . . . . . . 99

E. Las clases de objetos . . . . . . . . . . . . . . . . 1041. Descripción . . . . . . . . . . . . . . . . . . . . . . . . 104

2. Los módulos de clase . . . . . . . . . . . . . . . . . . . . 104

3. Ejemplo de módulos de clase . . . . . . . . . . . . . . . . 105

Contenido

4 VBA Access 2010

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

F. El examinador de objetos. . . . . . . . . . . . . . . 1091. Presentación . . . . . . . . . . . . . . . . . . . . . . . 109

2. Búsqueda en el examinador de objetos . . . . . . . . . . . . 111

G. Propiedades y métodos de objetos de Access . . . . . . 1121. El objeto Application . . . . . . . . . . . . . . . . . . . . 112

2. El objeto DoCmd . . . . . . . . . . . . . . . . . . . . . . 119

3. El objeto Screen . . . . . . . . . . . . . . . . . . . . . . 125

4. La colección References . . . . . . . . . . . . . . . . . . . 126

5. La colección Printers . . . . . . . . . . . . . . . . . . . . 129

Objetos de acceso a datos Capítulo 4

A. Objetos de acceso a datos DAO y ADO . . . . . . . . . 132

B. El modelo de acceso a datos DAO . . . . . . . . . . . 1331. Presentación . . . . . . . . . . . . . . . . . . . . . . . 133

2. Jerarquía de los objetos DAO. . . . . . . . . . . . . . . . . 134

3. Descripción de las colecciones . . . . . . . . . . . . . . . . 135

4. El objeto DBEngine . . . . . . . . . . . . . . . . . . . . . 137

5. Los objetos Workspace . . . . . . . . . . . . . . . . . . . 138

6. Les objetos Database . . . . . . . . . . . . . . . . . . . . 139

7. Los objetos Recordset. . . . . . . . . . . . . . . . . . . . 141

8. Los objetos Tabledef . . . . . . . . . . . . . . . . . . . . 148

9. Los objetos Field e Index . . . . . . . . . . . . . . . . . . 149

10.Los objetos QueryDef y Parameter . . . . . . . . . . . . . . 153

11.Los objetos Relation . . . . . . . . . . . . . . . . . . . . 156

12.Los objetos Container y Document . . . . . . . . . . . . . . 158

13.Los objetos Group y User . . . . . . . . . . . . . . . . . . 160

14.El objeto Error . . . . . . . . . . . . . . . . . . . . . . . 162

Contenido

Programar en Access 5

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

15.Los objetos Property . . . . . . . . . . . . . . . . . . . . 164

C. El modelo de acceso a datos ADO . . . . . . . . . . . 1651. Presentación . . . . . . . . . . . . . . . . . . . . . . . 165

2. ADO y OLE DB . . . . . . . . . . . . . . . . . . . . . . 166

3. Jerarquía de los objetos ADO. . . . . . . . . . . . . . . . . 167

4. Modelo de base de programación ADO. . . . . . . . . . . . . 168

5. Descripción de los objetos ADO. . . . . . . . . . . . . . . . 169

6. Las colecciones ADO . . . . . . . . . . . . . . . . . . . . 170

7. Los objetos Connection . . . . . . . . . . . . . . . . . . . 170

8. Los objetos Command . . . . . . . . . . . . . . . . . . . 173

9. Los objetos Recordset. . . . . . . . . . . . . . . . . . . . 174

10.La colección Fields . . . . . . . . . . . . . . . . . . . . . 180

11.Los objetos Field . . . . . . . . . . . . . . . . . . . . . . 180

12.La colección Parameters. . . . . . . . . . . . . . . . . . . 181

13.Los objetos Parameter . . . . . . . . . . . . . . . . . . . 182

14.La colección Properties . . . . . . . . . . . . . . . . . . . 183

15.Los objetos Property . . . . . . . . . . . . . . . . . . . . 183

16.La colección Errors . . . . . . . . . . . . . . . . . . . . . 183

17.Los objetos Error . . . . . . . . . . . . . . . . . . . . . . 184

El lenguaje SQL Capítulo 5

A. Presentación . . . . . . . . . . . . . . . . . . . . 186

B. Lenguaje SQL y VBA . . . . . . . . . . . . . . . . 188

C. Descripción del lenguaje SQL . . . . . . . . . . . . . 1881. La instrucción SELECT . . . . . . . . . . . . . . . . . . . 188

2. La cláusula FROM . . . . . . . . . . . . . . . . . . . . . 189

3. La cláusula WHERE . . . . . . . . . . . . . . . . . . . . 191

Contenido

6 VBA Access 2010

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

4. La cláusula GROUP BY . . . . . . . . . . . . . . . . . . . 191

5. La cláusula HAVING . . . . . . . . . . . . . . . . . . . . 192

6. La cláusula ORDER BY . . . . . . . . . . . . . . . . . . . 193

7. La instrucción UPDATE . . . . . . . . . . . . . . . . . . . 193

8. La instrucción DELETE . . . . . . . . . . . . . . . . . . . 194

9. La instrucción INSERT INTO . . . . . . . . . . . . . . . . . 195

10.Otras instrucciones . . . . . . . . . . . . . . . . . . . . . 196

D. Ejemplos de utilización de consultas SQL . . . . . . . . 1971. Actualización de registros . . . . . . . . . . . . . . . . . . 197

2. Carga de una lista desplegable . . . . . . . . . . . . . . . . 198

Gestión de los eventos Capítulo 6

A. Presentación . . . . . . . . . . . . . . . . . . . . 2021. Definición . . . . . . . . . . . . . . . . . . . . . . . . . 202

2. Asociación de código VBA a un evento. . . . . . . . . . . . . 202

B. Categorías de eventos . . . . . . . . . . . . . . . . 2041. Eventos de tipo Ventana. . . . . . . . . . . . . . . . . . . 204

2. Eventos de tipo Enfoque. . . . . . . . . . . . . . . . . . . 205

3. Eventos de tipo Datos. . . . . . . . . . . . . . . . . . . . 206

4. Eventos de tipo Ratón . . . . . . . . . . . . . . . . . . . 207

5. Eventos de tipo Teclado . . . . . . . . . . . . . . . . . . . 208

6. Eventos de tipo Impresión . . . . . . . . . . . . . . . . . . 209

7. Eventos de tipo Filtro . . . . . . . . . . . . . . . . . . . . 210

8. Eventos de tipo Error y Cronómetro . . . . . . . . . . . . . . 210

C. Cancelación de un evento . . . . . . . . . . . . . . 211

Contenido

Programar en Access 7

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

D. Secuencias de tipos de eventos . . . . . . . . . . . . 212

E. Los eventos de actualización . . . . . . . . . . . . . 213

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

A. Los distintos tipos de error . . . . . . . . . . . . . . 2161. Los errores de sintaxis . . . . . . . . . . . . . . . . . . . 216

2. Los errores de compilación . . . . . . . . . . . . . . . . . 217

3. Los errores de ejecución. . . . . . . . . . . . . . . . . . . 218

4. Los errores de lógica . . . . . . . . . . . . . . . . . . . . 219

B. Depuración con VBA . . . . . . . . . . . . . . . . 2191. Presentación . . . . . . . . . . . . . . . . . . . . . . . 219

2. La barra de herramientas Depuración . . . . . . . . . . . . . 220

3. El objeto Debug . . . . . . . . . . . . . . . . . . . . . . 221

C. Gestión de errores con VBA . . . . . . . . . . . . . 2211. Principios . . . . . . . . . . . . . . . . . . . . . . . . . 221

2. El procedimiento de evento Error . . . . . . . . . . . . . . . 222

3. La instrucción On Error . . . . . . . . . . . . . . . . . . . 223

4. El objeto Err. . . . . . . . . . . . . . . . . . . . . . . . 224

Personalización de los formulariosy de los informes

Capítulo 8

A. Presentación . . . . . . . . . . . . . . . . . . . . 228

B. Personalización de los formularios . . . . . . . . . . . 2281. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 229

Contenido

8 VBA Access 2010

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

2. Propiedades disponibles en vista Diseño . . . . . . . . . . . . 230

a. Propiedades de la ficha Formato. . . . . . . . . . . . . . 231

b. Propiedades de la ficha Datos . . . . . . . . . . . . . . . 234

c. Propiedades de la ficha Eventos . . . . . . . . . . . . . . 235

d. Propiedades de la ficha Otras . . . . . . . . . . . . . . . 238

3. Propiedades no disponibles en modo Diseño . . . . . . . . . . 239

a. Propiedades relativas al modo de ver el formulario . . . . . . 239

b. Propiedades relativas a los registros y a su actualización. . . . 240

c. Propiedades relativas a la presentación del formulario . . . . . 240

d. Propiedades que devuelven un objeto. . . . . . . . . . . . 242

e. Propiedades relativas a la impresión del formulario . . . . . . 242

4. Métodos del objeto Form . . . . . . . . . . . . . . . . . . 243

C. Personalización de los informes . . . . . . . . . . . . 2441. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 244

2. Propiedades disponibles en vista Diseño . . . . . . . . . . . . 245

a. Propiedades de la ficha Formato. . . . . . . . . . . . . . 245

b. Propiedades de la ficha Datos . . . . . . . . . . . . . . . 248

c. Propiedades de la ficha Eventos . . . . . . . . . . . . . . 249

d. Propiedades de la ficha Otras . . . . . . . . . . . . . . . 250

3. Propiedades no disponibles en modo Diseño . . . . . . . . . . 251

a. Propiedades relativas al modo de ver el informe . . . . . . . 251

b. Propiedades relativas a los registros y a su actualización. . . . 251

c. Propiedades relativas a la presentación del informe . . . . . . 252

d. Propiedades que devuelven un objeto. . . . . . . . . . . . 253

e. Propiedades relativas a la impresión del informe . . . . . . . 254

f. Otras propiedades . . . . . . . . . . . . . . . . . . . . 255

4. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 255

Contenido

Programar en Access 9

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

D. Los objetos Control . . . . . . . . . . . . . . . . . 2561. Sintaxis. . . . . . . . . . . . . . . . . . . . . . . . . . 256

2. Propiedades comunes de la mayoría de los controles. . . . . . . 256

3. Métodos comunes a la mayoría de los controles . . . . . . . . . 257

4. El método Move . . . . . . . . . . . . . . . . . . . . . . 257

E. Los controles de Access . . . . . . . . . . . . . . . 2581. Presentación . . . . . . . . . . . . . . . . . . . . . . . 258

2. Lista de los controles Access 2010 . . . . . . . . . . . . . . 258

Mejoras de la interfaz de usuario Capítulo 9

A. Las opciones de inicio . . . . . . . . . . . . . . . . 262

B. Personalización de la cinta de opciones . . . . . . . . 2641. Presentación . . . . . . . . . . . . . . . . . . . . . . . 264

2. Configuración de Access para la personalizaciónde la cinta de opciones . . . . . . . . . . . . . . . . . . . 265

a. Mostrar las tablas del sistema en el panel de navegación . . . 265

b. Mostrar mensajes de error contenidos en el código XML . . . . 265

3. Creación de una tabla del sistema USysRibbons. . . . . . . . . 266

4. Adición de código XML de personalización a la tabla USysRibbons . 266

5. Asociación de la cinta de opciones a la aplicación activa . . . . . 267

6. Asociación de la cinta de opciones a un formulario o a un informe . 268

C. Presentación del lenguaje XML . . . . . . . . . . . . 2691. El lenguaje XML . . . . . . . . . . . . . . . . . . . . . . 269

2. Elementos XML utilizados para personalizar la cinta de opciones . . 270

a. Principales marcas activas XML utilizadas en el código XMLde una cinta de opciones . . . . . . . . . . . . . . . . . 270

b. Propiedades asociadas a los objetos de una cinta de opciones . 270

Contenido

10 VBA Access 2010

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

D. Ejemplo de cinta de opciones personalizada . . . . . . . 2721. Código XML de la cinta de opciones personalizada. . . . . . . . 272

2. Código VBA llamado por los comandos de la cintade opciones personalizada . . . . . . . . . . . . . . . . . . 276

E. Imágenes de la galería de iconos de Microsoft Office . . . 277

Comunicación conlas aplicaciones 2010

Capítulo 10

A. La tecnología Automatización . . . . . . . . . . . . . 2801. Presentación . . . . . . . . . . . . . . . . . . . . . . . 280

2. Utilización de la tecnología Automatización . . . . . . . . . . . 281

B. Controlar Word desde Access . . . . . . . . . . . . . 2821. El modelo Objeto Word . . . . . . . . . . . . . . . . . . . 282

2. Principales colecciones del modelo de objetos Word . . . . . . . 283

3. Principales objetos del modelo objeto de Word . . . . . . . . . 284

4. La colección Documents. . . . . . . . . . . . . . . . . . . 285

5. Los objetos Document . . . . . . . . . . . . . . . . . . . 285

C. Controlar Excel desde Access . . . . . . . . . . . . . 2891. El modelo Objeto Excel . . . . . . . . . . . . . . . . . . . 289

2. Principales colecciones de la aplicación Excel . . . . . . . . . . 290

3. La colección Workbooks. . . . . . . . . . . . . . . . . . . 291

4. Los objetos Workbook . . . . . . . . . . . . . . . . . . . 291

a. Principales métodos del objeto Workbook . . . . . . . . . . 291

b. Las principales colecciones asociadas al objeto Workbook . . . 292

5. Escritura de datos en celdas Excel . . . . . . . . . . . . . . 292

Contenido

Programar en Access 11

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

D. Controlar Outlook desde Access . . . . . . . . . . . . 2941. El modelo Objeto Outlook . . . . . . . . . . . . . . . . . . 294

2. Ejemplo: mostrar los contactos de Oulook . . . . . . . . . . . 295

Programación en Internet Capítulo 11

A. Importación y exportación de datos en formato XML . . . 2981. El método ExportXML . . . . . . . . . . . . . . . . . . . . 298

2. El método ImportXML. . . . . . . . . . . . . . . . . . . . 300

3. Ejemplo de importación/exportación XML. . . . . . . . . . . . 300

B. Ejemplo de creación de un archivo HTML. . . . . . . . 304

Programación en Windows Capítulo 12

A. Presentación de las API . . . . . . . . . . . . . . . 308

B. Llamada a una función de la API Windows . . . . . . . 3091. Sintaxis de la instrucción Declare . . . . . . . . . . . . . . . 309

2. Paso de argumentos . . . . . . . . . . . . . . . . . . . . 310

C. Lista de funciones de la API Windows . . . . . . . . . 311

D. Ejemplos de utilización de funciones de la API Windows . 3121. Recuperación del directorio de Windows . . . . . . . . . . . . 312

2. Inicio de la aplicación Excel si no está activa . . . . . . . . . . 313

3. Recuperación de un valor en un archivo .ini . . . . . . . . . . 314

Contenido

12 VBA Access 2010

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

E. El objeto FileSystemObject . . . . . . . . . . . . . . 3161. Métodos . . . . . . . . . . . . . . . . . . . . . . . . . 316

2. Propiedades . . . . . . . . . . . . . . . . . . . . . . . . 317

3. Ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . 317

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

A. Presentación . . . . . . . . . . . . . . . . . . . . 3201. Enunciado del problema. . . . . . . . . . . . . . . . . . . 320

2. Base de datos Cursos . . . . . . . . . . . . . . . . . . . . 320

3. Modelo relacional de la base . . . . . . . . . . . . . . . . . 321

B. Formulario "Cursos" . . . . . . . . . . . . . . . . . 3211. Lista de controles . . . . . . . . . . . . . . . . . . . . . 322

2. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 323

3. Subformulario "SF Participantes" . . . . . . . . . . . . . . . 328

4. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 329

C. Formulario "Buscar" . . . . . . . . . . . . . . . . . 3301. Lista de controles . . . . . . . . . . . . . . . . . . . . . 331

2. Código VBA . . . . . . . . . . . . . . . . . . . . . . . . 331

3. Subformulario "SF Cursos" . . . . . . . . . . . . . . . . . . 335

4. Informe "Cursos" . . . . . . . . . . . . . . . . . . . . . . 336

Anexos

A. Funciones e instrucciones VBA . . . . . . . . . . . . 3381. Manipulación de cadenas de caracteres . . . . . . . . . . . . 338

2. Control del funcionamiento del programa. . . . . . . . . . . . 339

Contenido

Programar en Access 13

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

3. Conversión de datos . . . . . . . . . . . . . . . . . . . . 340

4. Fecha y hora . . . . . . . . . . . . . . . . . . . . . . . 342

5. Declaración . . . . . . . . . . . . . . . . . . . . . . . . 343

6. Dominio . . . . . . . . . . . . . . . . . . . . . . . . . 344

7. Intercambio dinámico de datos . . . . . . . . . . . . . . . . 345

8. Entrada y salida de archivos . . . . . . . . . . . . . . . . . 345

9. Financieras . . . . . . . . . . . . . . . . . . . . . . . . 347

10.Gestión de errores . . . . . . . . . . . . . . . . . . . . . 348

11.Gráficos en los informes impresos. . . . . . . . . . . . . . . 349

12.Vinculación e incrustación de objetos . . . . . . . . . . . . . 349

13.Manipulación de objetos. . . . . . . . . . . . . . . . . . . 349

14.Matemáticas . . . . . . . . . . . . . . . . . . . . . . . 350

15.SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

16.Matrices . . . . . . . . . . . . . . . . . . . . . . . . . 351

17.Control de variables . . . . . . . . . . . . . . . . . . . . 352

18.Funciones e instrucciones diversas . . . . . . . . . . . . . . 352

19.Códigos de error interceptables . . . . . . . . . . . . . . . . 353

B. Constantes VBA . . . . . . . . . . . . . . . . . . 3581. Constantes de color. . . . . . . . . . . . . . . . . . . . . 358

2. Constantes de fecha . . . . . . . . . . . . . . . . . . . . 359

3. Constantes de teclas teclado alfanumérico . . . . . . . . . . . 359

4. Constantes de teclas de función . . . . . . . . . . . . . . . 360

5. Constantes de teclas diversas . . . . . . . . . . . . . . . . 360

C. Métodos abreviados . . . . . . . . . . . . . . . . . 361

Índice . . . . . . . . . . . . . . . . . . . . . . . 363

Contenido

14 VBA Access 2010

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

Ediciones ENI

VBA Access 2010 Creación de aplicaciones profesionales:

ejercicios y correcciones

Colección Prácticas Técnicas

Contenido

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

Tabla de Contenido

Capítulo 1: Procedimientos

Requisitos 28

Ejercicio 1.1: Crear y utilizar un procedimiento público 30

Ejercicio 1.2: Crear y utilizar un procedimiento privado 31

Ejercicio 1.3: Llamar a un procedimiento desde un procedimiento 32

Ejercicio 1.4: Llamar a un procedimiento desde otro módulo 32

Ejercicio 1.5: Llamar a un procedimiento general

desde un procedimiento de evento 32

Ejercicio 1.6: Crear un procedimiento de evento para un formulario 33

Ejercicio 1.7: Crear una función 34

Ejercicio 1.8: Utilizar una función 34

Ejercicio 1.9: Utilizar parámetros con nombre 35

27Procedimientos

ENUNCIADOS DEL CAPÍTULO 1

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 2: Variables - Constantes - Tipos de datos

Requisitos 38

Ejercicio 2.1: Declarar y utilizar una variable 41

Ejercicio 2.2: Declarar y utilizar una constante 43

Ejercicio 2.3: Utilizar la fecha de sistema 45

Ejercicio 2.4: Crear el tipo "Pez Tropical" definido por el usuario 46

Ejercicio 2.5: Utilizar el tipo "Pez Tropical" 46

Ejercicio 2.6: Utilizar una variable objeto para modificar un título 47

37Variables - Constantes - Tipos de datos

ENUNCIADOS DEL CAPÍTULO 2

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 3: Funciones - Operadores

Requisitos 50

Ejercicio 3.1: Dividir dos números 52

Ejercicio 3.2: Obtener el resto de una división entera 53

Ejercicio 3.3: Comparar dos números y buscar el más pequeño de ambos 54

Ejercicio 3.4: Devolver el resultado de elevar un número a N 55

Ejercicio 3.5: Cálculo del factorial 55

Ejercicio 3.6: Calcular el porcentaje 56

Ejercicio 3.7: Calcular la comisión 57

Ejercicio 3.8: Calcular el precio de venta (PVP)

a partir del porcentaje de IVA y del precio bruto 58

Ejercicio 3.9: Calcular el valor final de un depósito a plazo fijo 58

Ejercicio 3.10: Calcular la anualidad constante 59

Ejercicio 3.11: Comparar dos cadenas de caracteres 60

Ejercicio 3.12: Dar formato a una palabra 60

Ejercicio 3.13: Buscar una palabra 61

Ejercicio 3.14: Extraer información de una cadena de caracteres 62

49Funciones - Operadores

ENUNCIADOS DEL CAPÍTULO 3

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 4: Estructuras de control

Requisitos 64

Ejercicio 4.1: Controlar la entrada de datos 66

Ejercicio 4.2: Despedirse 67

Ejercicio 4.3: Consonante o vocal 68

Ejercicio 4.4: Edad y tratamiento 69

Ejercicio 4.5: Decir hola N veces 70

Ejercicio 4.6: Contar de N en N hasta M 71

Ejercicio 4.7: Hacer obligatoria una entrada y controlar la salida 72

Ejercicio 4.8: Las palabras reflejadas 73

Ejercicio 4.9: Números primos 74

Ejercicio 4.10: Contar el número de ocurrencias de un número 74

63Estructuras de control

ENUNCIADOS DEL CAPÍTULO 4

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 5: Tablas

Requisitos 76

Ejercicio 5.1: Declarar una tabla accesible

por todos los procedimientos del proyecto 78

Ejercicio 5.2: Declarar una tabla accesible sólo

por los procedimientos del módulo 78

Ejercicio 5.3: Utilizar una tabla declarada en un procedimiento 78

Ejercicio 5.4: Utilizar una tabla a nivel de módulo 79

Ejercicio 5.5: Inicializar una tabla con un bucle 79

Ejercicio 5.6: Declarar y utilizar una tabla de dos dimensiones 80

Ejercicio 5.7: Utilizar una tabla de más de dos dimensiones 80

Ejercicio 5.8: Declarar y utilizar una tabla dinámica 81

Ejercicio 5.9: Ampliar una tabla dinámica conservando los valores iniciales 82

Ejercicio 5.10: Explotar una tabla usando un bucle 83

Ejercicio 5.11: Mostrar una tabla en un cuadro de lista 83

75Tablas

ENUNCIADOS DEL CAPÍTULO 5

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 6: Introducción a la POO

Requisitos 86

Ejercicio 6.1: Acceder a un objeto y modificar sus propiedades 89

Ejercicio 6.2: Gestión de errores 92

Ejercicio 6.3: Gestión de colecciones 93

Ejercicio 6.4: Gestión de eventos 94

Ejercicio 6.5: Crear una clase 95

Ejercicio 6.6: Utilizar la clase creada 96

Ejercicio 6.7: Crear y utilizar sus colecciones 97

85Introducción a la POO

ENUNCIADOS DEL CAPÍTULO 6

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 7: Cuadros de diálogo

Requisitos 100

Ejercicio 7.1: Mostrar un mensaje simple 102

Ejercicio 7.2: Solicitar una entrada de datos sin controlar 102

Ejercicio 7.3: Control de la entrada 102

Ejercicio 7.4: Elegir botones para los cuadros de diálogo 103

Ejercicio 7.5: Seleccionar el botón predeterminado

entre varios botones disponibles 104

Ejercicio 7.6: Elegir y añadir un icono a un cuadro de diálogo 104

Ejercicio 7.7: Realizar una acción según la elección del usuario 105

Ejercicio 7.8: Realizar tratamientos si el usuario introduce

la información solicitada 105

99Cuadros de díálogo

ENUNCIADOS DEL CAPÍTULO 7

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 8: Formularios

Requisitos 108

Ejercicio 8.1: Abrir un formulario 110

Ejercicio 8.2: Mostrar un formulario en modo de sólo lectura 112

Ejercicio 8.3: Indicar el contenido de un formulario 112

Ejercicio 8.4: Actuar sobre un subformulario 113

Ejercicio 8.5: Cambiar el color de fondo 113

Ejercicio 8.6: Mostrar una imagen de fondo 113

Ejercicio 8.7: Duplicar un formulario 114

Ejercicio 8.8: Modificar varias propiedades o controles del formulario 114

Ejercicio 8.9: Gestionar el desplazamiento del ratón por el formulario 114

Ejercicio 8.10: Gestionar el doble clic del ratón en el formulario 116

Ejercicio 8.11: Cerrar un formulario 117

107Formularios

ENUNCIADOS DEL CAPÍTULO 8

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 9: Controles estándar

Requisitos 120

Ejercicio 9.1: Seleccionar un control 122

Ejercicio 9.2: Modificar la apariencia de un control 123

Ejercicio 9.3: Ocultar y volver a mostrar controles 123

Ejercicio 9.4: Hacer que un control dependa de otro 124

Ejercicio 9.5: Provocar actuaciones de controles a raíz de acciones

con el ratón 124

Ejercicio 9.6: Provocar actuaciones de controles a raíz de pulsaciones

en el teclado 125

Ejercicio 9.7: Cálculo de comisiones 125

Ejercicio 9.8: Gestionar una lista simple 126

Ejercicio 9.9: Añadir un valor en un cuadro combinado modificable 130

Ejercicio 9.10: Enlazar listas con tablas 131

Ejercicio 9.11: Utilizar botones de opción 133

Ejercicio 9.12: Utilizar casillas de selección asociadas a imágenes 133

Ejercicio 9.13: Gestionar imágenes 134

119Controles estándar

ENUNCIADOS DEL CAPÍTULO 9

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 10: Informes

Requisitos 138

Ejercicio 10.1: Abrir un informe en modo vista previa 140

Ejercicio 10.2: Impresión directa 140

Ejercicio 10.3: Listar todos los productos que empiezan por A 140

Ejercicio 10.4: Listar los productos sin stock 141

Ejercicio 10.5: Realizar una actualización condicional dinámica 141

Ejercicio 10.6: Imprimir un informe parametrizado 143

137Informes

ENUNCIADOS DEL CAPÍTULO 10

© Editions ENI - Reproducción prohibida

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

Tabla de Contenido

Capítulo 11: SQL

Requisitos 146

Ejercicio 11.1: Mostrar todos los registros de una tabla 148

Ejercicio 11.2: Mostrar algunos campos de una tabla 149

Ejercicio 11.3: Seleccionar e imprimir registros 149

Ejercicio 11.4: Realizar una búsqueda parametrizada 150

Ejercicio 11.5: Realizar una búsqueda a partir de un cuadro combinado 151

Ejercicio 11.6: Realizar una búsqueda con múltiples criterios 151

Ejercicio 11.7: Actualizar datos 153

Ejercicio 11.8: Eliminar un registro 153

Ejercicio 11.9: Imprimir una selección mediante un informe programado 154

145SQL

ENUNCIADOS DEL CAPÍTULO11

© Editions ENI - Reproducción prohibida

Page 28: VBA Access 2010 - ediciones-eni.com fileEdiciones ENI VBA Access 2010 Programar en Access Colección Recursos Informáticos Contenido

Tabla de Contenido

Capítulo 12: ADO

Requisitos 156

Ejercicio 12.1: Crear una referencia a la base de datos actual 159

Ejercicio 12.2: Gestionar la base de datos actual 160

Ejercicio 12.3: Crear una referencia a una base de datos Access externa 161

Ejercicio 12.4: Gestionar una base de datos Access externa 161

Ejercicio 12.5: Configurar una pasarela ODBC 163

Ejercicio 12.6: Crear una referencia en una base de datos externa

vía una pasarela ODBC 163

Ejercicio 12.7: Gestionar una base de datos externa vía una pasarela ODBC 164

Ejercicio 12.8: Crear un cuadro de mandos 166

155ADO

ENUNCIADOS DEL CAPÍTULO 12

© Editions ENI - Reproducción prohibida

Page 29: VBA Access 2010 - ediciones-eni.com fileEdiciones ENI VBA Access 2010 Programar en Access Colección Recursos Informáticos Contenido

Tabla de Contenido

Capítulo 13: Colaboración con aplicaciones Microsoft

Requisitos 168

Ejercicio 13.1: Iniciar una aplicación Microsoft 171

Ejercicio 13.2: Abrir un libro Excel 171

Ejercicio 13.3: Copiar datos Access en aplicaciones Microsoft 171

Ejercicio 13.4: Realizar un correo publicitario con Word 173

Ejercicio 13.5: Exportar una consulta a Excel 174

Ejercicio 13.6: Enviar un mail con Outlook 175

Ejercicio 13.7: Ejecutar Windows Live Mail desde Windows Vista/Windows 7 177

Ejercicio 13.8: Usar funciones Excel 177

167Colaboración con aplicaciones Microsoft

ENUNCIADOS DEL CAPÍTULO 13

© Editions ENI - Reproducción prohibida

Page 30: VBA Access 2010 - ediciones-eni.com fileEdiciones ENI VBA Access 2010 Programar en Access Colección Recursos Informáticos Contenido

Tabla de Contenido

Capítulo 14: Programación Web - Windows

Requisitos 180

Ejercicio 14.1: Publicar datos Access en formato HTML 182

Ejercicio 14.2: Exportar una tabla Access a formato XML 183

Ejercicio 14.3: Exportar un formulario a formato XSL 184

Ejercicio 14.4: Importar datos XML 185

Ejercicio 14.5: Averiguar el nombre del ordenador 186

Ejercicio 14.6: Averiguar el espacio libre en el disco duro 188

Ejercicio 14.7: Activar el pitido de Windows 189

179Programación Web - Windows

ENUNCIADOS DEL CAPÍTULO 14

© Editions ENI - Reproducción prohibida