Professional Documents
Culture Documents
VBA e Access
Modo de interaco
As funcionalidades do VBA esto completamente integradas com o Access
Um bom exemplo dessa integrao o facto dos formulrios e dos mdulos
fazerem por defeito parte integrante de uma base de dados em Access
Visual Basic for Applications: # 2
Opes do Access
Consultar e alterar opes
Application.GetOption(OptionName)
Application.SetOption OptionName, Setting
Visual Basic for Applications: # 3
Hierarquia de Objectos
Objectos de nvel um
[Application.]Forms: collection dos formulrios que se encontram abertos na base
de dados
[Application.]Reports: collection dos relatrios que se encontram abertos na base
de dados
[Application.]DataAccessPages: collection das pginas que se encontram
abertas na base de dados
[Application.]Modules: collection dos mdulos que se encontram abertos na base
de dados
[Application.]DoCmd: permite utilizar directamente no cdigo o conjunto de
aces disponveis como macros (abrir formulrios, imprimir relatrios, ...)
[Application.]Screen: permite referenciar o controle, pgina, folha de dados,
formulrio ou relatrio que tem o foco num dado momento
Screen.ActiveControl
Screen.ActiveDataAccessPage
Screen.ActiveDatasheet
Screen.ActiveForm
Screen.ActiveReport
Visual Basic for Applications: # 4
Objecto DoCmd
Abrir formulrios/relatrios
DoCmd.OpenForm FormName, , , WhereCondition, DataMode, , OpenArgs
DoCmd.OpenReport ReportName, , , WhereCondition, , OpenArgs
DataMode pode ser uma das seguintes constantes:
acFormPropertySettings usa as permisses definidas nas propriedades do formulrio
acFormEdit permite inserir novos registos e alterar os existentes
acFormAdd apenas permite inserir novos registos (os registos existentes so ocultos)
acFormReadOnly no permite inserir novos registos nem editar os existentes
Fechar formulrios/relatrios
DoCmd.Close ObjectType, ObjectName, Save
ObjectType pode ser uma das seguintes constantes (entre outras):
acDefault para fechar a janela activa
acForm para fechar formulrios
acReport para fechar relatrios
Save pode ser uma das seguintes constantes:
acSavePrompt questiona o utilizador para guardar possveis alteraes
acSaveYes guarda possveis alteraes
acSaveNo no guarda possveis alteraes
Visual Basic for Applications: # 5
Objectos Form I
Referenciao
Forms(Clientes)
Forms!Clientes
Forms![Clientes e Facturas]
Forms(0)
Screen.ActiveForm
Propriedades I
form.Name nome do formulrio
form.Caption ttulo do formulrio
form.Visible visibilidade do formulrio
form.NavigationButtons esconde/apresenta os botes de navegao
form.AllowAdditions se True permite adicionar novos registos (activa o boto
Novo registo da barra de ferramentas e da barra de navegao)
form.AllowDeletions se True permite remover registos (activa o boto Eliminar
registo da barra de ferramentas)
form.AllowEdits se True permite editar os registos previamente guardados. Se
False permite editar novos registos at o momento anterior a serem guardados
form.DataEntry se True apenas permite adicionar novos registos
Visual Basic for Applications: # 6
Objectos Form II
Propriedades II
form.Modal se True requer que o formulrio seja fechado para que o foco possa
ser movido para outro objecto da aplicao
form.RecordSource origem dos registos do formulrio ( possvel indicar uma
tabela/consulta da base de dados ou uma expresso vlida em SQL)
form.Filter filtra os registos a apresentar no formulrio
form.FilterOn activa/desactiva o filtro
form.OrderBy modo de ordenao dos registos do formulrio
form.OrderByOn activa/desactiva o modo de ordenao
Mtodos
form.Recalc recalcula todos os controlos que possuem expresses com clculos
form.Refresh actualiza o conjunto actual de registos do formulrio. Os registos que
entretanto tenham sido adicionados/removidos (por outro utilizador num ambiente
multi-utilizador) no sero includos/excludos do conjunto actual. To pouco sero
excludos os registos que j no satisfaam a consulta associada ao formulrio
form.Requery executa novamente a consulta na qual o formulrio baseado
form.Undo desfaz todas as alteraes feitas ao registo actual desde que foi
guardado pela ltima vez
Visual Basic for Applications: # 7
Objectos Report I
Referenciao
Reports(Clientes)
Reports!Clientes
Reports![Clientes e Facturas]
Reports(0)
Screen.ActiveReport
Propriedades
report.Name nome do relatrio
report.Caption ttulo do relatrio
report.Visible visibilidade do relatrio
report.RecordSource origem dos registos do relatrio ( possvel indicar uma
tabela/consulta da base de dados ou uma expresso vlida em SQL)
report.Filter filtra os registos a apresentar no relatrio
report.FilterOn activa/desactiva o filtro
report.OrderBy modo de ordenao dos registos do relatrio
report.OrderByOn activa/desactiva o modo de ordenao
Visual Basic for Applications: # 8
Objectos Report II
Seces e grupos I
report.Section(Index) seces do relatrio
(tambm vlido para formulrios)
Index pode ser uma das seguintes constantes:
acDetail seco detalhe
acHeader seco cabealho
acFooter seco rodap
acPageHeader seco cabealho de pgina
acPageFooter seco rodap de pgina
acGroupLevel1Header cabealho do nvel de
agrupamento 1 (s relatrios)
acGroupLevel1Footer rodap do nvel de
agrupamento 1 (s relatrios)