Access 2013 Macros & VBA - Curso Completo

Page 1

As bases de dados estão inevitavelmente presentes nas tarefas básicas do nosso quotidiano. A sua estruturação e a sua automatização devem ser levadas a cabo de forma consciente e adaptada às necessidades reais e com características que nos garantam uma boa performance. Esta obra, escrita numa linguagem clara e acessível, é destinada a todos os utilizadores que pretendem planear e automatizar um sistema de bases de dados Access, recorrendo a macros e à programação em Visual Basic for Applications (VBA), sendo igualmente útil aos programadores de outras linguagens que sentem necessidade de compreender os aspetos essenciais do VBA do Access para o desenvolvimento de aplicações profissionais.

Henrique Loureiro

O livro é enriquecido por uma vasta componente prática composta por inúmeros exemplos resolvidos passo a passo, um caso real e dois projetos completos. No final de cada capítulo, o leitor encontra exercícios resolvidos na íntegra, resumos da matéria apresentada, exercícios propostos e perguntas de revisão, que irão permitir avaliar e rever os conhecimentos adquiridos, tornando assim esta obra de grande relevância não só para estudantes e autodidatas, como também para professores e formadores. Entre outros, são abordados os seguintes temas: • Desenho de bases de dados relacionais (Normalização e Modelo Entidade-Relação); • Estruturação de consultas através da SQL; • Estudo do modelo de Programação Orientada a Objetos; • Arquitetura e programação VBA; • Automatização de formulários; • Gestão e manipulação de bases de dados com recurso aos modelos DAO e ADO; • Integração com o SQL Server e outras aplicações do Office (Word e Excel) via ODBC. Esta obra, totalmente adaptada para o Access 2013, apresenta os comandos em Inglês e em Português (Europeu e do Brasil), e a matéria que trata é compatível com todas as edições do Office, incluindo as desktop do Office 365, o que a torna ideal para os utilizadores de qualquer edição. É disponibilizada ainda a correspondência dos principais termos técnicos para o Português do Brasil.

Ajuda à resolução dos exercícios propostos, bem como soluções dos exercícios propostos e das perguntas de revisão, disponíveis em www.fca.pt, até o livro se esgotar ou ser publicada nova edição atualizada ou com alterações.

ISBN 978-972-722-730-3

www.fca.pt

Henrique Loureiro – Formado em Engenharia Química pelo Instituto Superior de Engenharia de Lisboa. Analista/Programador na área de desenvolvimento de aplicações de Gestão e Engenharia. Autor de diversos livros editados pela FCA, entre os quais Acess 2007 Macros & VBA, Excel 2013 Macros & VBA, Visual Basic 2012 e C# 5.0 com Visual Studio 2012, todos da coleção Curso Completo.

Henrique Loureiro

• Inúmeros exemplos e exercícios resolvidos e propostos • Inclui um caso real e dois projetos completos • Matéria compatível com todas as edições do Office, incluindo as desktop do Office 365


Distribuição

Lidel – edições técnicas, lda

Sede R. D. Estefânia, 183, R/C Dto. – 1049-057 LISBOA Tel: +351 213 511 448 * Fax: +351 213 522 684 Revenda: revenda@lidel.pt Exportação: depinternacional@lidel.pt Venda online: livraria@lidel.pt Marketing: marketing@lidel.pt

Livraria Av. Praia da Vitória, 14 – 1000-247 LISBOA Tel: +351 213 511 448 * Fax: +351 213 173 259 livraria@lidel.pt Edição

FCA – Editora de Informática

Av. Praia da Vitória, 14 – 1000-247 LISBOA Tel: +351 213 511 448 Email: fca@fca.pt

Copyright © agosto 2014 FCA – Editora de Informática, Lda. ISBN: 978-972-722-730-3 Capa: Emília Calçada Impressão e acabamento: Cafilesa – Soluções Gráficas, Lda. – Venda do Pinheiro Depósito Legal N.º 378946/14 Livro segundo o Novo Acordo Ortográfico Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto, aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções. Os nomes comerciais referenciados neste livro têm patente registada. Marcas Registadas de FCA – Editora de Informática, Lda. – ®

®

®

Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico, mecânico, fotocópia, digitalização, gravação, sistema de armazenamento e disponibilização de informação, sítio Web, blogue ou outros, sem prévia autorização escrita da Editora, exceto o permitido pelo CDADC, em termos de cópia privada pela AGECOP – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas.


ÍNDICE GERAL PRÓLOGO ................................................................................................................ XV COMO UTILIZAR ESTE LIVRO ................................................................................... XVII 1. DESENHO DE BASES DE DADOS .................................................................................. 1 1.1 Sistemas de gestão de bases de dados ....................................................................................................1 1.2 Estruturação de uma base de dados .......................................................................................................2 1.3 Normalização.............................................................................................................................................3 1.3.1 Primeira forma normal ...............................................................................................................3 1.3.2 Segunda forma normal ...............................................................................................................5 1.3.3 Terceira forma normal ................................................................................................................9 1.4 Modelo entidade-relação ........................................................................................................................11 1.4.1 Fase I: definir entidades ............................................................................................................11 1.4.2 Fase II: definir relações ..............................................................................................................12 1.4.3 Fase III: determinar o tipo das relações ...................................................................................13 1.4.4 Fase IV: definir atributos ...........................................................................................................14 1.4.5 Fase V: tratar relações ................................................................................................................15 1.5 Exercícios resolvidos...............................................................................................................................17 1.5.1 Escola de música ........................................................................................................................17 1.5.2 Software house ...........................................................................................................................21 1.5.3 Seguradora ..................................................................................................................................23 Resumo .....................................................................................................................................................27 Perguntas de revisão ...............................................................................................................................28 Exercícios propostos ...............................................................................................................................30 2. UTILIZAÇÃO DA SQL ............................................................................................. 33 2.1 Características e tipos de comandos .....................................................................................................33 2.2 Comandos SQL automáticos .................................................................................................................34 2.2.1 Criação do ficheiro de base de dados ......................................................................................34 2.2.2 Inserção de dados de teste ........................................................................................................37 2.2.3 Criação da consulta ....................................................................................................................38 2.2.4 Execução da consulta .................................................................................................................40 2.2.5 Verificação do código SQL gerado automaticamente ...........................................................40 2.2.6 Interpretação do código SQL ....................................................................................................41 2.3 Consultas de seleção ...............................................................................................................................41 2.3.1 Sintaxe mínima de uma consulta de seleção ..........................................................................41 2.3.2 Estrururação ...............................................................................................................................42 2.4 Consultas de ação ....................................................................................................................................49 2.4.1 Subtipos .......................................................................................................................................49 2.4.2 Estruturação................................................................................................................................49 2.5 Consultas de definição de dados...........................................................................................................55 2.5.1 Tipos de dados SQL ...................................................................................................................56 2.5.2 Estruturação................................................................................................................................56 2.6 Exercícios resolvidos...............................................................................................................................61 © FCA – Editora de Informática


VI

ACCESS 2013 MACROS & VBA – CURSO COMPLETO 2.6.1 Banco ...........................................................................................................................................62 2.6.2 Escola de música ........................................................................................................................71 2.6.3 Software House ..........................................................................................................................81 2.6.4 Seguradora ..................................................................................................................................86 Resumo .....................................................................................................................................................88 Perguntas de revisão ...............................................................................................................................89 Exercícios propostos ...............................................................................................................................90

3. MACROS ............................................................................................................. 93 3.1 Definição de macro .................................................................................................................................93 3.2 Criação de macros ...................................................................................................................................93 3.3 Segurança .................................................................................................................................................95 3.3.1 Ativação de macros....................................................................................................................95 3.3.2 Níveis de segurança e certificação ...........................................................................................95 3.4 Ações-macro ............................................................................................................................................98 3.4.1 Ação QuitAccess (SairDoAccess) .............................................................................................98 3.4.2 Ação CloseDatabase (FecharBase/BancoDeDados)) ..............................................................98 3.4.3 Ação CloseWindow (FecharJanela) ......................................................................................... 99 3.4.4 Ação SelectObject (SelecionarObjeto) .................................................................................... 100 3.4.5 Ação Beep (Aviso/AlarmeSonoro) ......................................................................................... 100 3.4.6 Ações MaximizeWindow (MaximizarJanela), MinimizeWindow (MinimizarJanela) e RestoreWindow(RestaurarJanela) ....................................................................................... 100 3.4.7 Ação MoveAndSizeWindow (MoverEDimensionarJanela) ............................................... 101 3.4.8 Ação OpenTable (AbrirTabela) .............................................................................................. 101 3.4.9 Ação GoToRecord (IrParaRegisto/Registro) ......................................................................... 102 3.4.10 Ação FindRecord (EncontrarRegisto/Registro) .................................................................... 102 3.4.11 Ação ApplyFilter (AplicarFiltro) ............................................................................................ 104 3.4.12 Ação OpenQuery (AbrirConsulta)......................................................................................... 104 3.4.13 Ação RunMacro (ExecutarMacro).......................................................................................... 104 3.4.14 Ação MessageBox (CaixaDeMensagem) ............................................................................... 104 3.5 Exercícios resolvidos............................................................................................................................. 105 3.5.1 Correio eletrónico..................................................................................................................... 105 3.5.2 Excel ........................................................................................................................................... 107 3.5.3 Bom dia e boa noite.................................................................................................................. 108 Resumo ................................................................................................................................................... 109 Perguntas de revisão ............................................................................................................................. 109 Exercícios propostos ............................................................................................................................. 110 4. METODOLOGIA DA PROGRAMAÇÃO ......................................................................... 111 4.1 Operadores............................................................................................................................................. 111 4.1.1 Operadores aritméticos ........................................................................................................... 111 4.1.2 Operadores relacionais ............................................................................................................ 112 4.1.3 Operadores de lógica ............................................................................................................... 113 4.1.4 Operadores de texto................................................................................................................. 114 4.2 Algoritmos ............................................................................................................................................. 115 4.2.1 Sequências ................................................................................................................................. 115 4.2.2 Decisões ..................................................................................................................................... 117 4.2.3 Seleções...................................................................................................................................... 120 4.2.4 Repetições em número determinado ..................................................................................... 122 © FCA – Editora de Informática


ÍNDICE GERAL 4.3

4.4

4.5

VII

4.2.5 Repetições em número indeterminado ................................................................................. 126 Elementos de programação e edição de código ................................................................................ 128 4.3.1 Noção de módulo e procedimento......................................................................................... 129 4.3.2 Criação de módulos ................................................................................................................. 129 4.3.3 Remoção de módulos .............................................................................................................. 129 4.3.4 Definição de procedimento ..................................................................................................... 130 4.3.5 Criação de procedimentos ...................................................................................................... 131 4.3.6 Definição de variável ............................................................................................................... 131 4.3.7 Atribuição de valores a variáveis ........................................................................................... 132 4.3.8 Obtenção de valores contidos em variáveis.......................................................................... 132 4.3.9 Definição de constante ............................................................................................................ 133 4.3.10 Leitura de dados provenientes do utilizador ....................................................................... 133 4.3.11 Apresentação de dados ao utilizador .................................................................................... 135 4.3.12 Regras e convenções de nomenclatura .................................................................................. 136 Os 10 mandamentos da programação ................................................................................................ 136 4.4.1 Fase I: compreender o problema ............................................................................................ 136 4.4.2 Fase II: desenhar o algoritmo.................................................................................................. 137 4.4.3 Fase III: definir variáveis ......................................................................................................... 137 4.4.4 Fase IV: definir constantes ...................................................................................................... 137 4.4.5 Fase V: inicializar variáveis .................................................................................................... 137 4.4.6 Fase VI: obter dados de entrada ............................................................................................. 137 4.4.7 Fase VII: verificar dados de entrada ...................................................................................... 138 4.4.8 Fase VIII: obter resultado ........................................................................................................ 138 4.4.9 Fase IX: apresentar resultado.................................................................................................. 138 4.4.10 Fase X: testar programa ........................................................................................................... 138 Exercícios resolvidos............................................................................................................................. 139 4.5.1 Média aritmética ...................................................................................................................... 139 4.5.2 Área ........................................................................................................................................... 140 4.5.3 Par ou ímpar ............................................................................................................................. 140 4.5.4 Maior de dois ............................................................................................................................ 141 4.5.5 Alunos ....................................................................................................................................... 142 4.5.6 Salários ...................................................................................................................................... 143 4.5.7 Anos bissextos .......................................................................................................................... 145 4.5.8 Dias úteis ................................................................................................................................... 146 4.5.9 Fatorial....................................................................................................................................... 147 4.5.10 Números primos ...................................................................................................................... 147 Resumo ................................................................................................................................................... 148 Perguntas de revisão ............................................................................................................................. 149 Exercícios propostos ............................................................................................................................. 152

5. ARQUITETURA VBA............................................................................................. 153 5.1 A crise do software ................................................................................................................................. 153 5.2 Noção de objeto ..................................................................................................................................... 154 5.3 Noção de coleção ................................................................................................................................... 154 5.4 Tipos de módulos .................................................................................................................................. 154 5.5 Projetos VBA .......................................................................................................................................... 155 5.6 Propriedades .......................................................................................................................................... 155 5.6.1 Tipos de propriedades............................................................................................................. 156 5.6.2 Alteração de propriedades em design-time ............................................................................ 156 © FCA – Editora de Informática


VIII

5.7

5.8 5.9

5.10

5.11

5.12

5.13

ACCESS 2013 MACROS & VBA – CURSO COMPLETO 5.6.6 Alteração de propriedades em run-time ................................................................................ 163 Métodos .................................................................................................................................................. 164 5.7.1 Tipos de métodos ..................................................................................................................... 164 5.7.2 Métodos do tipo A: tarefas sem parâmetros ......................................................................... 165 5.7.3 Métodos do tipo B: tarefas com parâmetros ......................................................................... 165 5.7.4 Métodos do tipo C: tarefas com devolução de valor ........................................................... 166 5.7.5 Natureza dos argumentos ....................................................................................................... 166 5.7.6 Argumentação .......................................................................................................................... 168 Eventos ................................................................................................................................................... 169 Procedimentos ....................................................................................................................................... 170 5.9.1 Tipos de procedimentos .......................................................................................................... 170 5.9.2 Procedimentos gerais............................................................................................................... 171 5.9.3 Procedimentos de evento ........................................................................................................ 173 5.9.4 Procedimentos de função ........................................................................................................ 178 5.9.5 Pontos de execução .................................................................................................................. 180 5.9.6 Saída forçada de procedimentos ............................................................................................ 181 Tipos de dados ...................................................................................................................................... 182 5.10.1 Byte ............................................................................................................................................. 183 5.10.2 Integer......................................................................................................................................... 184 5.10.3 Long ............................................................................................................................................ 184 5.10.4 Single .......................................................................................................................................... 185 5.10.5 Double......................................................................................................................................... 185 5.10.6 Currency ..................................................................................................................................... 185 5.10.7 String .......................................................................................................................................... 186 5.10.8 Date ............................................................................................................................................ 186 5.10.9 Boolean........................................................................................................................................ 187 5.10.10 Object.......................................................................................................................................... 188 5.10.11 Variant ........................................................................................................................................ 189 5.10.12 Tipos de dados personalizados .............................................................................................. 189 Declaração de variáveis ........................................................................................................................ 190 5.11.1 Declaração explícita ................................................................................................................. 191 5.11.2 Declaração implícita ................................................................................................................ 191 5.11.3 Declaração múltipla ................................................................................................................. 192 5.11.4 Significado de Option Explicit ................................................................................................. 192 5.11.5 Significado de Option Compare................................................................................................ 192 5.11.6 Ciclo de vida das variáveis ..................................................................................................... 195 Arrays ...................................................................................................................................................... 197 5.12.1 Comprimento de um array ...................................................................................................... 198 5.12.2 Significado de Option Base....................................................................................................... 199 5.12.3 Dimensão de um array ............................................................................................................. 200 Estruturas de controlo .......................................................................................................................... 200 5.13.1 Tipos de estruturas de controlo.............................................................................................. 201 5.13.2 Estrutura de decisão If ............................................................................................................. 201 5.13.3 Estrutura de decisão Select Case.............................................................................................. 204 5.13.4 Estrutura de repetição Do ....................................................................................................... 206 5.13.5 Estrutura de repetição While ................................................................................................... 207 5.13.6 Estrutura de repetição For ....................................................................................................... 208 5.13.7 Estrutura de repetição For Each .............................................................................................. 209

© FCA – Editora de Informática


ÍNDICE GERAL

IX

5.13.8 Ciclos infinitos .......................................................................................................................... 210 5.14 Comentários ........................................................................................................................................... 210 5.15 Exercícios resolvidos............................................................................................................................. 212 5.15.1 Formulário ................................................................................................................................ 212 5.15.2 Browser ..................................................................................................................................... 212 5.15.3 Barra de estado ......................................................................................................................... 213 5.15.4 Navegação, divisão e seleção.................................................................................................. 214 Resumo ................................................................................................................................................... 214 Perguntas de revisão ............................................................................................................................. 215 Exercícios propostos ............................................................................................................................. 218 6. FUNÇÕES DO VBA ............................................................................................... 221 6.1 Sintaxe geral ........................................................................................................................................... 221 6.2 Funções de diálogo ............................................................................................................................... 221 6.2.1 Função MsgBox ......................................................................................................................... 221 6.2.2 Função InputBox ....................................................................................................................... 227 6.3 Funções de texto .................................................................................................................................... 228 6.3.1 Função Len ................................................................................................................................ 228 6.3.2 Funções LCase e UCase ............................................................................................................. 229 6.3.3 Funções Left, Right e Mid ......................................................................................................... 229 6.3.4 Função Space ............................................................................................................................. 230 6.3.5 Funções LTrim, RTrim e Trim .................................................................................................. 230 6.3.6 Funções Asc e Chr ..................................................................................................................... 231 6.3.7 Função InStr .............................................................................................................................. 232 6.4 Funções matemáticas ............................................................................................................................ 233 6.4.1 Função Abs ................................................................................................................................ 233 6.4.2 Função Sgn ................................................................................................................................ 234 6.4.3 Função Round............................................................................................................................ 234 6.4.4 Funções Int e Fix ....................................................................................................................... 235 6.4.5 Função Sqr ................................................................................................................................. 236 6.4.6 Função Log ................................................................................................................................ 236 6.4.7 Função Rnd ............................................................................................................................... 236 6.4.8 Funções Sin, Cos, Tan e Atn ..................................................................................................... 237 6.5 Funções de data e hora ......................................................................................................................... 237 6.5.1 Funções Date, Time e Now ....................................................................................................... 237 6.5.2 Funções Day, WeekDay, Month, Year, Hour, Minute e Second ............................................... 238 6.5.3 Função WeekDayName.............................................................................................................. 239 6.5.4 Função MonthName .................................................................................................................. 240 6.5.5 Função DateDiff ........................................................................................................................ 241 6.5.6 Função DateAdd ........................................................................................................................ 242 6.5.7 Função DateSerial ..................................................................................................................... 243 6.6 Outras funções ....................................................................................................................................... 243 6.6.1 Função CreateObject (função de objeto) ................................................................................. 243 6.6.2 Função LoadPicture (função de objeto) ................................................................................... 244 6.6.3 Funções LBound e UBound (funções de array) ....................................................................... 244 6.6.4 Função Format (função de formatação) ................................................................................. 245 6.6.5 Função RGB (função de cor) ................................................................................................... 246 6.6.6 Função QBColor (função de cor) ............................................................................................. 246 6.6.7 Funções de conversão entre tipos de dados ......................................................................... 247 © FCA – Editora de Informática


X

6.7

ACCESS 2013 MACROS & VBA – CURSO COMPLETO 6.6.8 Funções de verificação de tipos de dados ............................................................................. 248 Exercícios resolvidos............................................................................................................................. 248 6.7.1 Frase ........................................................................................................................................... 249 6.7.2 Numeração romana ................................................................................................................. 250 6.7.3 Overflow ................................................................................................................................... 252 Resumo ................................................................................................................................................... 254 Perguntas de revisão ............................................................................................................................. 255 Exercícios propostos ............................................................................................................................. 257

7. OBJETOS DO ACCESS ........................................................................................... 259 7.1 Bibliotecas de objetos ............................................................................................................................ 259 7.1.1 Utilização do Object Browser (Localizador de Objetos)...................................................... 259 7.1.2 Bibliotecas predefinidas .......................................................................................................... 260 7.1.3 Referência a outras bibliotecas ............................................................................................... 261 7.1.4 Considerações hierárquicas .................................................................................................... 262 7.1.5 Principais elementos da biblioteca de objetos do Access .................................................... 263 7.2 Sensibilização ao sistema de ajuda online ........................................................................................... 264 7.3 Objeto Application .................................................................................................................................. 264 7.3.1 Propriedade Name .................................................................................................................... 265 7.3.2 Propriedades Version e Build ................................................................................................... 265 7.3.3 Propriedade FileDialog ............................................................................................................. 266 7.3.4 Propriedade DoCmd ................................................................................................................. 267 7.3.5 Método NewCurrentDatabase................................................................................................... 267 7.3.6 Método OpenCurrentDatabase ................................................................................................. 268 7.3.7 Método CloseCurrentDatabase ................................................................................................. 268 7.3.8 Método Quit .............................................................................................................................. 269 7.3.9 Método RunCommand .............................................................................................................. 269 7.3.10 Método GetOption .................................................................................................................... 270 7.3.11 Método SetOption ..................................................................................................................... 270 7.4 Objeto DoCmd ........................................................................................................................................ 271 7.4.1 Método Quit .............................................................................................................................. 271 7.4.2 Método Save .............................................................................................................................. 272 7.4.3 Método Rename ......................................................................................................................... 273 7.4.4 Método Close ............................................................................................................................. 273 7.4.5 Método DeleteObject ................................................................................................................. 274 7.4.6 Método CopyObject ................................................................................................................... 274 7.4.7 Método SelectObject .................................................................................................................. 275 7.4.8 Método Beep .............................................................................................................................. 275 7.4.9 Método HourGlass .................................................................................................................... 275 7.4.10 Método PrintOut ...................................................................................................................... 276 7.4.11 Método RunCommand .............................................................................................................. 276 7.4.12 Método OpenTable .................................................................................................................... 277 7.4.13 Método GotoRecord ................................................................................................................... 277 7.4.14 Método FindRecord ................................................................................................................... 278 7.4.15 Método ApplyFilter ................................................................................................................... 279 7.4.16 Método OpenQuery .................................................................................................................. 280 7.4.17 Método RunSql ......................................................................................................................... 280 7.4.18 Método RunMacro .................................................................................................................... 280 7.5 Exercícios resolvidos............................................................................................................................. 281 © FCA – Editora de Informática


ÍNDICE GERAL

XI

7.5.1 Word .......................................................................................................................................... 281 7.5.2 Correio eletrónico..................................................................................................................... 286 Resumo ................................................................................................................................................... 289 Perguntas de revisão ............................................................................................................................. 290 Exercícios propostos ............................................................................................................................. 292 8. AUTOMATIZAÇÃO DE FORMULÁRIOS ........................................................................ 293 8.1 O GDI do Windows .............................................................................................................................. 293 8.2 Controlos ................................................................................................................................................ 294 8.2.1 Label (Rótulo) ............................................................................................................................ 294 8.2.2 Text Box (Caixa de Texto) ........................................................................................................ 295 8.2.3 Option Group (Grupo de Opções) ........................................................................................... 295 8.2.4 Toggle Button (Botão de Alternar)........................................................................................... 296 8.2.5 Option Button (Botão de Opção) ............................................................................................. 296 8.2.6 Check Box (Caixa de Verificação) ............................................................................................ 296 8.2.7 Combo Box (Caixa de Combinação) ........................................................................................ 297 8.2.8 List Box (Caixa de Listagem) ................................................................................................... 297 8.2.9 Command Button (Botão de Comando) .................................................................................. 298 8.2.10 Image (Imagem) ........................................................................................................................ 298 8.2.11 Tab Control (Controlo Separador) ........................................................................................... 299 8.3 Convenções de nomenclatura.............................................................................................................. 299 8.4 Objeto Form ............................................................................................................................................ 300 8.4.1 Modos de visualização ............................................................................................................ 300 8.4.2 Propriedade Caption................................................................................................................. 301 8.4.3 Propriedade Picture.................................................................................................................. 301 8.4.4 Propriedade BackColor (secções do formulário) ................................................................... 302 8.4.5 Propriedade Enabled................................................................................................................. 302 8.4.6 Propriedade Visible................................................................................................................... 303 8.4.7 Eventos Load e Unload .............................................................................................................. 303 8.4.8 Eventos Activate e DeActivate .................................................................................................. 304 8.4.9 Eventos Click e DblClick ........................................................................................................... 304 8.4.10 Eventos MouseMove, MouseDown e MouseUp ....................................................................... 305 8.4.11 Eventos KeyDown e KeyUp ...................................................................................................... 306 8.4.12 Evento KeyPress ........................................................................................................................ 306 8.5 Controlo Label ........................................................................................................................................ 307 8.5.1 Propriedades já estudadas ...................................................................................................... 307 8.5.2 Propriedades Height e Width ................................................................................................... 307 8.5.3 Propriedades Left e Top............................................................................................................ 308 8.5.4 Propriedade TextAlign ............................................................................................................. 308 8.5.5 Propriedade BackStyle .............................................................................................................. 308 8.5.6 Propriedade ForeColor.............................................................................................................. 309 8.5.7 Propriedades FontName e FontSize ......................................................................................... 309 8.5.8 Propriedades FontItalic e FontUnderline................................................................................. 309 8.5.9 Propriedade FontWeight .......................................................................................................... 309 8.5.10 Propriedade ControlTipText .................................................................................................... 310 8.5.11 Eventos já estudados ............................................................................................................... 310 8.6 Controlo Command Button .................................................................................................................... 310 8.6.1 Propriedades já estudadas ...................................................................................................... 310 8.6.2 Propriedades Default e Cancel ................................................................................................. 311 © FCA – Editora de Informática


XII

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

8.6.3 Propriedades TabIndex e TabStop ............................................................................................ 312 8.6.4 Eventos já estudados ............................................................................................................... 312 8.7 Controlo Text Box .................................................................................................................................. 313 8.7.1 Propriedades já estudadas ...................................................................................................... 313 8.7.2 Propriedade Format .................................................................................................................. 314 8.7.3 Propriedade Locked................................................................................................................... 314 8.7.4 Propriedade InputMask............................................................................................................ 314 8.7.5 Propriedades ValidationRule e ValidationText ........................................................................ 315 8.7.6 Propriedade DefaultValue ........................................................................................................ 317 8.7.7 Eventos já estudados ............................................................................................................... 317 8.7.8 Evento Change ........................................................................................................................... 317 8.7.9 Eventos Enter e Exit ................................................................................................................. 318 8.8 Controlos Combo Box e List Box ............................................................................................................ 318 8.8.1 Propriedades já estudadas ...................................................................................................... 318 8.8.2 Propriedade ColumnCount ...................................................................................................... 319 8.8.3 Propriedade ColumnHeads....................................................................................................... 319 8.8.4 Propriedade ColumnWidths ..................................................................................................... 320 8.8.5 Propriedade BoundColumn ...................................................................................................... 320 8.8.6 Propriedade LimitToList (apenas em Combo Box) ................................................................. 320 8.8.7 Eventos já estudados ............................................................................................................... 321 8.9 Controlos Check Box e Option Button ................................................................................................... 321 8.9.1 Propriedades já estudadas ...................................................................................................... 321 8.9.2 Eventos já estudados ............................................................................................................... 322 8.10 Exercício resolvido (caso real) ............................................................................................................. 322 Resumo ................................................................................................................................................... 334 Perguntas de revisão ............................................................................................................................. 335 Exercícios propostos ............................................................................................................................. 337 9. MODELO DAO .................................................................................................... 339 9.1 Modelos de acesso a dados .................................................................................................................. 339 9.2 A hierarquia no modelo DAO ............................................................................................................. 339 9.2.1 Requisitos para utilizar o modelo DAO ................................................................................ 340 9.2.2 Diagrama hierárquico .............................................................................................................. 341 9.3 Objeto DBEngine .................................................................................................................................... 341 9.3.1 Propriedade Version ................................................................................................................. 342 9.3.2 Método CompactDatabase ......................................................................................................... 342 9.4 Objeto Workspace ................................................................................................................................... 343 9.4.1 Propriedade Name .................................................................................................................... 343 9.4.2 Propriedade UserName ............................................................................................................ 344 9.4.3 Método CreateDatabase............................................................................................................. 344 9.4.4 Método OpenDatabase .............................................................................................................. 345 9.4.5 Método Close ............................................................................................................................. 346 9.5 Objeto Database ...................................................................................................................................... 346 9.5.1 Propriedade Name .................................................................................................................... 346 9.5.2 Método CreateTableDef ............................................................................................................. 347 9.5.3 Método CreateRelation .............................................................................................................. 348 9.5.4 Método CreateQueryDef ........................................................................................................... 350 9.5.5 Método Execute ......................................................................................................................... 351 9.5.6 Método Close ............................................................................................................................. 352 © FCA – Editora de Informática


ÍNDICE GERAL 9.6

9.7

9.8

9.9

XIII

Objeto TableDef ...................................................................................................................................... 352 9.6.1 Propriedade Name .................................................................................................................... 352 9.6.2 Propriedades DateCreated e LastUpdated................................................................................ 353 9.6.3 Propriedade RecordCount ........................................................................................................ 354 9.6.4 Método CreateField ................................................................................................................... 354 9.6.6 Método CreateIndex .................................................................................................................. 356 Objeto QueryDef..................................................................................................................................... 357 9.7.1 Propriedade Name .................................................................................................................... 357 9.7.2 Propriedades DateCreated e LastUpdated................................................................................ 357 9.7.3 Propriedade SQL ...................................................................................................................... 358 9.7.4 Propriedade Type ..................................................................................................................... 358 9.7.5 Método Execute ......................................................................................................................... 359 Objeto Recordset ..................................................................................................................................... 360 9.8.1 Criação de Recordsets (método OpenRecordset) ..................................................................... 361 9.8.2 Leitura de Recordsets ................................................................................................................ 361 9.8.3 Navegação entre registos (métodos Move)............................................................................ 363 9.8.4 Pesquisa de registos (métodos Find) ...................................................................................... 367 9.8.5 Adição de registos (método AddNew).................................................................................... 368 9.8.6 Alteração de registos (método Edit) ....................................................................................... 368 9.8.7 Eliminação de registos (método Delete) ................................................................................. 370 Projeto com DAO .................................................................................................................................. 371 9.9.1 Objetivo ..................................................................................................................................... 371 9.9.2 Criação e preparação das tabelas ........................................................................................... 372 9.9.3 Recolha ...................................................................................................................................... 385 9.9.4 Consulta .................................................................................................................................... 397 9.9.5 Gráfico ....................................................................................................................................... 401 Resumo ................................................................................................................................................... 405 Perguntas de revisão ............................................................................................................................. 405 Exercícios propostos ............................................................................................................................. 407

10. MODELO ADO .................................................................................................. 409 10.1 DAO vs. ADO ........................................................................................................................................ 409 10.2 A hierarquia no modelo ADO ............................................................................................................. 409 10.3 Referência à biblioteca ADO ................................................................................................................ 410 10.4 Ligação à base de dados ....................................................................................................................... 411 10.5 Manipulação e pesquisa de dados ...................................................................................................... 412 10.5.1 Obtenção de Recordsets ............................................................................................................ 412 10.5.2 Contagem de registos .............................................................................................................. 412 10.5.3 Obtenção dos nomes dos campos .......................................................................................... 413 10.5.4 Leitura do Recordset ................................................................................................................. 414 10.5.5 Ordenação de registos (propriedade Sort) ............................................................................ 417 10.5.6 Navegação entre registos (métodos Move)............................................................................ 418 10.5.7 Pesquisa de registos (método Find)........................................................................................ 419 10.5.8 Adição de registos (método AddNew).................................................................................... 420 10.5.9 Alteração de registos ............................................................................................................... 421 10.5.10 Eliminação de registos (método Delete) ................................................................................. 423 10.6 Extensões para criação de objetos ....................................................................................................... 423 10.6.1 Criação de tabelas e campos ................................................................................................... 424 10.6.2 Renomeação de tabelas ........................................................................................................... 425 © FCA – Editora de Informática


XIV

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

10.6.3 Renomeação de campos .......................................................................................................... 425 10.6.4 Inserção de um campo numa tabela ...................................................................................... 425 10.6.5 Definição de índices e chaves primárias ............................................................................... 426 10.6.6 Definição de relações entre tabelas ........................................................................................ 427 10.6.7 Alteração de índices, chaves primárias e relações ............................................................... 429 10.6.8 Eliminação de campos ............................................................................................................. 431 10.6.9 Remoção de tabelas.................................................................................................................. 431 10.7 Projeto com ADO .................................................................................................................................. 431 10.7.1 Preparação do ficheiro de base de dados .............................................................................. 432 10.7.2 Alteração do código-fonte ....................................................................................................... 432 Resumo ................................................................................................................................................... 436 Perguntas de revisão ............................................................................................................................. 437 Exercícios propostos ............................................................................................................................. 439 11. INTEGRAÇÃO COM OUTRAS TECNOLOGIAS .............................................................. 441 11.1 Integração com o Excel ......................................................................................................................... 441 11.1.1 Criação do ficheiro de Excel ................................................................................................... 441 11.1.2 Criação da origem de dados ................................................................................................... 442 11.1.3 Acesso aos dados (via ADO) .................................................................................................. 444 11.1.4 Acesso aos dados (via biblioteca de objetos do Excel) ........................................................ 446 11.1.5 Envio de dados (via ADO) ...................................................................................................... 447 11.1.6 Envio de dados (via biblioteca de objetos do Excel) ............................................................ 448 11.2 Integração com o Word ........................................................................................................................ 448 11.3 Integração com o SQL Server............................................................................................................... 453 11.3.1 Criação da tabela de dados no SQL Server ........................................................................... 453 11.3.2 Criação da origem de dados SQL .......................................................................................... 456 11.3.3 Inserção de registos de teste ................................................................................................... 458 11.3.4 Acesso ao SQL Server a partir do Access .............................................................................. 459 Resumo ................................................................................................................................................... 460 Perguntas de revisão ............................................................................................................................. 460 Exercícios propostos ............................................................................................................................. 461 A. ANEXO – TABELAS AUXILIARES ............................................................................. 463 A.1 Códigos ASCII ....................................................................................................................................... 463 A.1.1 Códigos ASCII (grupo básico) ................................................................................................ 463 A.1.2 Códigos ASCII (grupo estendido).......................................................................................... 464 A.2 Máscaras de formatação ....................................................................................................................... 465 A.3 Máscaras de introdução........................................................................................................................ 466 A.4 Relação de tipos de dados .................................................................................................................... 467 GLOSSÁRIO DE TERMOS – PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL......................... 469 ÍNDICE REMISSIVO ................................................................................................. 471

© FCA – Editora de Informática


COMO UTILIZAR ESTE LIVRO Com o objetivo de facilitar uma aprendizagem rápida e eficaz, tomamos a liberdade de sugerir um conjunto de indicações às quais o leitor deverá dar especial atenção de forma a tirar o maior proveito deste livro. Os diferentes temas foram encadeados pedagógica e naturalmente, pelo que não é, de todo, recomendado que progrida sem a compreensão das matérias abordadas em capítulos anteriores. A tabela seguinte apresenta um resumo dos principais conteúdos tratados nesta obra. CAPÍTULO

TÍTULO

1

Desenho de Bases de Dados

2

Utilização da SQL

3

Macros

4

Metodologia da Programação

5

Arquitetura VBA

6

Funções do VBA

7

Objetos do Access

PRINCIPAIS TEMAS/ASSUNTOS Introdução aos SGBD; Normalização; Modelo entidade-relação; Implementação em Access. Tipos de instruções e características da linguagem; Seleção de dados; Atualização de dados; Definição de dados. Definição de macro; Macros de comando; Macros de função; Segurança e certificação. Algoritmos; Noções de módulo e procedimento; Utilização de variáveis, constantes e operadores; Regras e convenções de nomenclatura. Noções de objeto e coleção; Propriedades, métodos e eventos; Tipos de dados; Utilização de arrays; Estruturas de controlo (condições e ciclos); Depuração e tratamento de erros. Caixas de diálogo padrão de sistema operativo; Estudo das principais funções do VBA. Utilização de bibliotecas de objetos; Estudo dos principais objetos do Access. (continua)

© FCA – Editora de Informática


XVIII ACCESS 2013 MACROS & VBA – CURSO COMPLETO (continuação)

CAPÍTULO

TÍTULO

8

Automatização de Formulários

9

Modelo DAO

10

Modelo ADO

11

Integração com outras Tecnologias

PRINCIPAIS TEMAS/ASSUNTOS Conceito visual; Utilização de controlos gerais. Apresentação de um caso real. Integração do modelo DAO com o Access; Apresentação de um projeto completo. Integração do modelo ADO com o Access; Apresentação de um projeto completo. Integração com o Word e com Excel; Integração com o SQL Server.

Sugerimos também a resposta às perguntas de revisão e a resolução dos exercícios propostos que são apresentados no final dos capítulos; nesta fase, aconselhamos que os resolva por mera consulta do livro e das dicas apresentadas no Anexo – Ajuda à Resolução dos Exercícios Propostos, disponível na página do livro em www.fca.pt (até este se esgotar ou ser publicada nova edição atualizada ou com alterações), e que depois compare os seus resultados com as soluções que disponibilizamos também na página do livro em www.fca.pt (nos mesmos moldes).

CONVENÇÕES Associado a esta estrutura criou-se um conjunto de convenções com o objetivo de facilitar a compreensão das matérias. EXEMPLO Apresentação de ações teórico-práticas resolvidas na íntegra. CÓDIGO Todos os excertos de código são apresentados no mesmo formato, sendo frequente a junção de um comentário adicional a cinza: Dim nome As String 'Declaração de uma variável

Quando estamos perante uma instrução muito longa, podemos utilizar o caráter _ (underscore) para proceder à mudança de linha. Desta forma, são interpretadas múltiplas linhas como fazendo parte de uma única instrução. A utilização deste caráter em módulos de programação facilita a interpretação do código e a sua impressão: MsgBox "Está a utilizar a aplicação " & Application.Name & ".", _ vbInformation, "Propriedade Name (Objeto Application)"

© FCA – Editora de Informática


COMO UTILIZAR ESTE LIVRO

XIX

SINTAXE Explicação de como deve escrever as instruções para que estas sejam devidamente compiladas. ANÁLISE Interpretação teórica de um bloco de código e explicação do seu objetivo. D IC A S Sempre que aparecer esta apresentação gráfica, isso significa que são fornecidas ao leitor dicas, isto é, informações úteis e complementares sobre a matéria que, essencialmente, permitem tornar as tarefas mais fáceis.

N O T AS Sempre que necessário, aparecem pequenas notas com descrição complementar à matéria tratada nessa secção, com o objetivo de fornecer ao leitor esclarecimentos adicionais, embora não essenciais, sobre a matéria.

EQUIVALÊNCIA INGLÊS/PORTUGUÊS DE COMANDOS E TERMOS São utilizadas as edições standard das aplicações em Inglês do Office e do SQL Server como base de trabalho, mas o livro adapta-se também aos utilizadores das versões em Português. Assim, os comandos e termos ingleses são destacados a negrito (bold) e precedidos dos seus correspondentes em Português Europeu e, se justificável, em Português do Brasil entre parênteses curvos, conforme o seguinte exemplo: File (Ficheiro/Arquivo) → Save (Guardar/Salvar)

GLOSSÁRIO DE TERMOS – PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL Para facilitar a interpretação do texto por parte dos leitores brasileiros, incluímos um glossário de outros termos correspondentes que, embora não estejam presentes nas interfaces de utilizador das diferentes aplicações, são empregues pelo autor na explicação das matérias. Este glossário pode ser consultado no final do livro.

CONTACTAR O AUTOR2 No sentido de proporcionar aos leitores uma ferramenta complementar ao conhecimento transmitido através desta obra, o autor disponibiliza-se a ser contactado

2

Este serviço é da responsabilidade do autor e pode deixar de existir sem aviso prévio. © FCA – Editora de Informática


XX

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

para auxiliar os leitores a ultrapassarem eventuais dificuldades que sintam na interpretação das matérias abordadas e/ou na resolução dos variados exercícios apresentados ao longo deste livro. Assim, e com o objetivo de facilitar a resposta por parte do autor, agradecemos que considere os pontos que se seguem aquando do seu contacto: 

Identifique claramente a obra (Access 2013 Macros & VBA – Curso Completo);

Verifique se, porventura, existe uma errata disponível no site da FCA (http://www.fca.pt), na página do livro;

Refira os números do capítulo e da página, caso o seu pedido de informação esteja diretamente relacionado com o conteúdo do livro;

Indique a versão e a edição do seu sistema operativo em uso (por exemplo, Windows 7 Home, Windows 8 Ultimate);

Especifique a edição do Office que está a utilizar (por exemplo, Professional, Home & Business);

Refira a versão e a edição em uso, se a sua questão estiver relacionada com o acesso a bases de dados SQL, (por exemplo, SQL Server 2012 Express, SQL Server 2008 Enterprise);

Proceda ao envio do(s) ficheiro(s) inerentes à sua questão, se aplicável;

Inclua capturas de ecrã com as mensagens de erro, se for o caso.

Todos os pedidos de esclarecimento, assim como eventuais sugestões, poderão ser enviados diretamente para o autor: loureirohenrique@hotmail.com.

© FCA – Editora de Informática


14

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

Por exemplo, numa escola, se um aluno só pudesse estar inscrito numa única turma, estaríamos perante uma relação do tipo 1-1; em contrapartida, se um aluno se pudesse inscrever em várias turmas, estaríamos perante uma relação do tipo N-N. No exemplo da loja de computadores, temos três relações de dois tipos (uma do tipo N-N e duas do tipo 1-N): A relação ‘Produtos’ – ‘Encomendas’ é do tipo N-N (vários produtos para diversas encomendas); A relação ‘Fornecedores’ – ‘Encomendas’ é do tipo 1-N (um fornecedor pode ser solicitado por diversas vezes e uma encomenda só faz referência a um fornecedor); A relação ‘Distritos’ – ‘Fornecedores’ é do tipo 1-N (um distrito pode acolher vários fornecedores e um fornecedor tem sede num único distrito). Em diagramas ER, o tipo de relação é assinalado no interior de losângulos, como na Figura 1.3.

ENCOMENDAS

1-N

FORNECEDORES

N-N

1-N

PRODUTOS

DISTRITOS

FIGURA 1.3 – Indicação dos tipos de relações num diagrama ER

1.4.4

FASE IV: DEFINIR ATRIBUTOS

Os atributos representam propriedades elementares e definem os valores associados a cada ocorrência das entidades. Por exemplo, as pessoas têm idade, altura, peso; os veículos automóveis têm cor, cilindrada, número de portas. Um identificador é um atributo ou grupo de atributos que determinam univocamente uma entidade (chave). A Tabela 1.9 apresenta os atributos das entidades envolvidas no processo de encomendas.

© FCA – Editora de Informática


UTILIZAÇÃO DA SQL

75

FIGURA 2.57 – Esquema relacional completo

RESOLUÇÃO (PONTO 2) Para obter uma listagem dos professores que lecionam mais de uma turma: 1)

Crie uma consulta em vista de SQL e componha a instrução seguinte: SELECT Professores.P, Professores.Prof, COUNT(Turmas.T) AS Contagem FROM Professores INNER JOIN Turmas ON Professores.P=Turmas.P GROUP BY Professores.P, Professores.Prof HAVING COUNT(Turmas.T)>1

2)

Guarde a consulta com o nome ProfessoresComVariasTurmas;

3)

Ao executar a consulta, obtém duas linhas de retorno – de facto, os professores Rui Lopes e Ana Sá monitorizam duas turmas cada (Figura 2.58);

FIGURA 2.58 – Lista de monitores com mais de uma turma

4)

Feche a consulta.

RESOLUÇÃO (PONTO 3) Para determinar o número total de turmas: 1)

Crie uma consulta em vista de SQL e digite a seguinte instrução: SELECT COUNT(*) AS [Total de Turmas] FROM Turmas

© FCA – Editora de Informática


108

3.5.3

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

BOM DIA E BOA NOITE

Crie uma macro capaz de mostrar o texto ”Bom dia!”, se a hora atual estiver compreendida entre as 7:00 e as 19:00, e o texto “Boa noite!”, no caso inverso. Recorra à ação MessageBox (CaixaDeMensagem). RESOLUÇÃO 1)

Crie uma macro na base de dados utilizada nos dois exercícios anteriores;

2)

Na janela de estruturação da macro, estabeleça as duas expressões condicionais If (Se) e as respetivas ações MessageBox (CaixaDeMensagem), exatamente como na Figura 3.12;

FIGURA 3.12 – Utilização de condições em macros

3)

Guarde a macro com o nome DiaNoite;

4)

Feche a estrutura da macro;

5)

Execute a macro;

6)

Mediante a hora atualmente definida no sistema operativo, deverá surgir a caixa de diálogo com a mensagem correspondente.

© FCA – Editora de Informática


126

4.2.5

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

REPETIÇÕES EM NÚMERO INDETERMINADO

Nos casos em que se torna percetível a necessidade de reexecução de instruções, mas não se sabe o número de vezes que determinado ciclo deve ser consumado, recorre-se às operações de repetição em número indeterminado. Um problema clássico cuja resolução contenha este método é aquele que, dado um número inteiro superior à unidade, determina o seu fatorial27. A representação (em linguagem natural) de um algoritmo para determinar o fatorial de um número consiste nos passos que se seguem: 1) Introdução de um número inteiro superior a 1 por parte do utilizador; 2) O primeiro fator da multiplicação é o próprio número; 3) Enquanto não se chegar à unidade… → O próximo fator é decrementado em uma unidade; → É efetuado o produto correspondente. 4) Apresentação do fatorial. O respetivo fluxograma encontra-se disposto na Figura 4.9. INÍCIO

FAT = FAT * N

N

FAT = N

N>1

SIM

NÃO FAT

FIM

N=N-1

FIGURA 4.9 – Fatorial de um número (fluxograma)

Em pseudocódigo, obtém-se a listagem que se segue: Start 'Início do programa Input n 'Introdução de um número inteiro superior a 1 fat = n 'O primeiro fator é igual ao próprio número While n > 1 'Enquanto não se chegar à unidade… n = n – 1 'Decremento do fator

27 O fatorial de um número inteiro n corresponde ao produto dos números inteiros desde 1 até n; é representado por um ponto de exclamação (!) precedido do número para o qual se pretende determinar o seu fatorial; por exemplo, 5! = 5x4x3x2x1  5! = 120.

© FCA – Editora de Informática


ARQUITETURA VBA

159

O posicionamento e as dimensões escolhidas nesta fase não são definitivos. Para redimensionar o objeto, pode utilizar um dos quadrados que o delimitam e, para alterar a sua localização no formulário, deve arrastá-lo até à posição pretendida.

Tal como já foi enunciado, todos os objetos contêm propriedades predefinidas que podem ser alteradas mediante as preferências do programador. Quando terminámos o desenho do nosso objeto, o Access encarregou-se de escrever o texto “Command0” na sua face. Como modificá-lo? O processo para modificar qualquer característica de determinado controlo em modo de desenho é o seguinte: 1)

Selecione o objeto em causa, fazendo clique com o botão esquerdo do rato sobre o mesmo. Verificamos facilmente que o controlo está selecionado através dos quadrados a cheio que o circundam;

2)

Faça clique com o botão direito do rato sobre o objeto a ser modificado. Do menu de contexto, escolha a opção Properties (Propriedades);

Pode também fazer clique sobre o botão Property Sheet (Folha de Propriedades), disponível na secção Tools (Ferramentas), ou recorrer à combinação de teclas <Alt + Enter>.

3)

Surge a Property Sheet (Folha de Propriedades). Esta janela apresenta uma listagem das propriedades e respetivos valores para os objetos presentemente selecionados (Figura 5.6).

Tipo de objeto Caixa do objeto Separadores Propriedades

Valores

FIGURA 5.6 – Componentes da Property Sheet (Folha de Propriedades)

Na Property Sheet (Folha de Propriedades), pode encontrar as secções que apresentamos no Quadro 5.2.

© FCA – Editora de Informática


FUNÇÕES DO VBA

227

FIGURA 6.6 – Valores retornados pela função MsgBox (exemplo)

6.2.2

FUNÇÃO INPUTBOX

A função InputBox apresenta no ecrã uma caixa de mensagem padrão de sistema operativo que serve para recolher informações do utilizador na forma de texto. São utilizados os argumentos apresentados na Tabela 6.6. NOME

DESCRIÇÃO

OBRIGATÓRIO?

TIPO

Prompt

Mensagem a ser apresentada na caixa.

Sim

String

Title

Texto da barra de título da janela. O texto predefinido é “Microsoft Access”.

Não

String

Default

Texto predefinido na caixa de introdução.

Não

String

Não

Number

Não

Number

XPos

YPos

Expressão numérica que especifica, em medidas de ecrã (twips), a distância horizontal entre a extremidade esquerda da caixa de diálogo e o limite esquerdo do ecrã. Se este argumento for omitido, a caixa é centrada na horizontal. Especifica a distância vertical entre o topo da caixa de diálogo e o topo do ecrã. Se este argumento for omitido, a caixa é centrada na vertical.

Helpfile

Aponta para determinado ficheiro de ajuda.

Não

String

Context

Número correspondente ao tópico de ajuda para o qual o utilizador será direcionado.

Não

Number

TABELA 6.6 – Argumentos da função InputBox © FCA – Editora de Informática


OBJETOS DO ACCESS

285

17) Feche o Access; 18) Feche o Word. Apenas pode executar este procedimento uma única vez, pois, caso o ficheiro já exista, o Access não consegue, por si só, eliminá-lo do sistema de ficheiros para dar origem a um novo. Se for o caso, o leitor obtém um erro em tempo de execução, com indicação de que já existe uma base de dados com o mesmo nome. Neste caso, a aplicação Access, apesar de invisível, continua a ser executada e deverá recorrer-se à combinação de teclas <Ctrl + Alt + Del> para forçar o encerramento da aplicação e terminar todos os processos a ela referentes.

ANÁLISE (INSTRUÇÃO A INSTRUÇÃO) Para além das respetivas declarações e inicializações da variável e da constante globais, foi criado o procedimento TesteAccess para executar a tarefa: Dim appAccess As Object – visa a declaração da variável-objeto, que irá funcionar como um apontador para a aplicação Access; Const

fich

As

String

=

"C:\Curso\MacroWord.accdb" – permite

declarar uma constante correspondente ao caminho completo do ficheiro de base de dados a ser criado e posteriormente aberto; Set appAccess = CreateObject("Access.Application") – instrução que

corresponde à inicialização do objeto Application da biblioteca de Access. A partir deste instante, o Access é inicializado (sem abrir qualquer base de dados) e permanece na memória do computador enquanto a variável-objeto appAccess não for destruída ou redefinida com futuras atribuições Set; appAccess.NewCurrentDatabase fich – o método NewCurrentDatabase do

objeto Application permite criar um novo ficheiro de base de dados (esse ficheiro é criado com o nome MacroWord e com extensão accdb); appAccess.CreateForm fich – o método CreateForm do objeto Application

cria um formulário vazio no ficheiro especificado; Não é necessário especificar o nome da base de dados quando se pretende criar um formulário no ficheiro atual. appAccess.DoCmd.Save acForm, "Form1" – recorreu-se ao método Save do

objeto DoCmd (descendente direto do objeto Application) que, neste caso, guarda o formulário com o nome Form1; appAccess.CreateControl "Form1", acTextBox, acDetail – o método

CreateControl do objeto Application adiciona um controlo ao formulário ou relatório especificado; esta instrução desenha no Form1 uma caixa de texto © FCA – Editora de Informática


AUTOMATIZAÇÃO DE FORMULÁRIOS

8.2.2

295

TEXT BOX (CAIXA DE TEXTO)

Controlo que obtém informações do utilizador sob a forma de texto. Estas caixas podem ser configuradas de forma a validarem a informação introduzida, antes de o programa levar a cabo determinada tarefa. Podemos, ainda, estabelecer o número de carateres (mínimo e máximo) e definir uma máscara de introdução (expressão que limita o tipo de caráter, posição a posição). Normalmente, as caixas de texto apresentam rótulos à sua esquerda, na intenção de elucidar o utilizador acerca da categoria de informação a ser digitada. Em Access, sempre que se desenha uma caixa de texto surge um controlo associado (rótulo) à sua esquerda. O formulário da Figura 8.4 contém três caixas de texto, que obtêm o nome, a idade e a profissão de um cliente de uma agência de seguros.

FIGURA 8.4 – Apresentação de caixas de texto

8.2.3

OPTION GROUP (GRUPO DE OPÇÕES)

Em formulários mais complexos, é comum utilizar-se este tipo de controlos no sentido de agrupar um conjunto vasto de informações em diferentes categorias. Para além de tornar o formulário mais explícito, é um contributo de mais-valia para melhorar a apresentação e estética do mesmo. O formulário apresentado na Figura 8.5 encontra-se dividido em três secções com informações diferentes: os dados pessoais de um cliente de um banco, o sexo e a sua nacionalidade. Repare-se que foi possível selecionar dois botões de opção no mesmo ecrã, isto porque ambos se encontram em secções diferentes (outra funcionalidade importante dos grupos de opção).

FIGURA 8.5 – Apresentação de grupos de opção © FCA – Editora de Informática


MODELO DAO

9.8.4

367

PESQUISA DE REGISTOS (MÉTODOS FIND) A Tabela 9.4 apresenta os quatro métodos utilizados na pesquisa de registos. MÉTODO

INICIA A PESQUISA A PARTIR DO…

NA DIREÇÃO DO…

FindFirst

Primeiro registo.

Último registo.

FindLast

Último registo.

Primeiro registo.

FindPrevious

Registo atual.

Primeiro registo.

FindNext

Registo atual.

Último registo.

TABELA 9.4 – Métodos utilizados na pesquisa de registos (objeto Recordset)

EXEMPLO Sub PesquisarRegistos() Dim db As Database Dim rst As Recordset Dim fld As Field Set db = CurrentDb Set rst = db.OpenRecordset("SELECT * FROM CLIENTES") rst.FindFirst "Idade Between 30 And 40" For Each fld In rst.Fields texto = texto & fld.Value & " " Next Debug.Print texto texto = Empty rst.FindLast "Idade Between 30 And 40" For Each fld In rst.Fields texto = texto & fld.Value & " " Next Debug.Print texto End Sub

ANÁLISE Como podemos constatar pelo resultado obtido, o primeiro cliente com idade compreendida entre 30 e 40 anos é a Ana (cliente 1) e o último cliente nessa faixa etária é o José (cliente 2): 1 Ana Maria Silva 34 Lisboa 216662525 2 José Rodrigo dos Santos Ribeiro 31 Lisboa 917777777 © FCA – Editora de Informática


412

ACCESS 2013 MACROS & VBA – CURSO COMPLETO

10.5 MANIPULAÇÃO E PESQUISA DE DADOS Tal como no modelo DAO, é o objeto Recordset que irá permitir consultar e manipular a informação contida na base de dados. Os exemplos que se seguem utilizam a tabela Clientes como referência, que foi criada na secção 9.8 do Capítulo 9. Importe esta tabela para o ficheiro de base de dados atual através do assistente de importação de dados do Acccess [botão Access disponível no separador External Data (Dados Externos)].

10.5.1 OBTENÇÃO DE RECORDSETS O objeto Command representa um comando a ser executado diretamente na origem de dados. A maior parte destes comandos surge na forma de instruções de SQL que permitem obter, alterar, adicionar e eliminar registos, ou até alterar o próprio esquema da base de dados. O método Execute do objeto Command é similar ao método OpenRecordset utilizado no DAO para obtenção de objetos do tipo Recordset. EXEMPLO Sub ObterRecordset() Dim con As ADODB.Connection Dim cmd As ADODB.Command Dim rst As ADODB.Recordset Set con = CurrentProject.Connection Set cmd = New ADODB.Command cmd.ActiveConnection = con cmd.CommandText = "SELECT * From Clientes" Set rst = cmd.Execute End Sub

ANÁLISE Após a criação do objeto Command (inicialização com o operador New), foi definida a propriedade CommandText do objeto Command, que armazena a instrução de SQL a ser executada na origem de dados atual (propriedade ActiveConnection). O método Execute retorna um objeto Recordset que, neste caso, possui toda a informação da tabela Clientes.

10.5.2 CONTAGEM DE REGISTOS O método RecordCount do objeto Recordset permite obter o número de registos retornados pelo método Execute. No capítulo anterior já vimos que era necessário utilizar © FCA – Editora de Informática


INTEGRAÇÃO COM OUTRAS TECNOLOGIAS

457

Por predefinição, é criada apenas uma instância do SQL Server Express, que é designada pelo nome da máquina onde reside e pela indicação do tipo de servidor (SQLEXPRESS), separados por um backslash (\). Reveja o nome completo da sua instância com o procedimento que levou a cabo para mostrar a caixa de diálogo apresentada na Figura 11.18.

5) Avance para o passo seguinte; 6) Na caixa de diálogo da Figura 11.25, utilize o modo de autenticação predefinido (pelo sistema operativo) e avance para o passo seguinte;

FIGURA 11.25 – Criação da origem de dados SQL Server: 2º passo

7) Altere a base de dados predefinida para RH (Figura 11.26);

FIGURA 11.26 – Criação da origem de dados SQL Server: 3º passo

8) No último passo (Figura 11.27), mantenha as configurações predefinidas e conclua o processo de criação da origem de dados. © FCA – Editora de Informática


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.