VBA Access 2010 - ediciones-eni.com fileEdiciones ENI VBA Access 2010 Programar en Access Colección...

Post on 30-Nov-2018

239 views 8 download

Transcript of VBA Access 2010 - ediciones-eni.com fileEdiciones ENI VBA Access 2010 Programar en Access Colección...

Ediciones ENI

VBA Access 2010Programar 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ediciones ENI

VBA Access 2010 Creación de aplicaciones profesionales:

ejercicios y correcciones

Colección Prácticas Técnicas

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

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

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

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

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

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

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

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

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

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

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

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

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

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