Upload
hamien
View
217
Download
0
Embed Size (px)
Citation preview
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
OBJECTIVOS
• Reconhecer alguns dos objectos VBA
• Automatizar bases de dados recorrendo à programação VBA e scripts SQL
O objecto DOCMD
Este objecto permite o acesso a todas as operações sobre todos os objectos de BD (filtragem,
pesquisa e tratamento de dados, execução de consultas de todos os tipos, navegação entre registos,
automatização de formulários, impressão, etc.).
Docmd contém apenas métodos na sua definição, cujo lote de comandos se refere às acções
disponibilizadas pelas macros não programadas d
Método Quit - Este método termina a aplicação.
Exemplo: Docmd.quit
Método RunSql - Executa uma consulta de acção ou de definição de dados por especificação de uma
instrução SQL.
Exemplo:
DoCmd.RunSQL "delete from clientes where nome='" & txtNome
delete.
Método OpenForm - Abre o formulário com determinado nome.
Exemplo: docm.openform “verClientes”
Método Close - Fecha um determinado objecto de BD com um nome específico.
Exemplos: docmd.close – fecha a janela actual
O objecto ADODB Com o VBA, o programador pode gerir quando e como uma aplicação interage com uma BD, mais
especificamente com os seus objectos. O modelo de programação ADO é
objectos que proporciona toda a gestão e acesso a um SGBD.
A tabela seguinte apresenta a listagem dos objectos e colecções mais importantes, definidos
biblioteca de objectos ADO:
OBJECTO DESCRIÇÃO
Recordset Conjunto de registos retornados por uma origem
Field Corresponde a uma coluna (campo) num objecto recordset
Fields Colecção contendo todas as colunas de um objecto recordset.
Connection Representa uma ligação a uma BD
1
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
Reconhecer alguns dos objectos VBA
Automatizar bases de dados recorrendo à programação VBA e scripts SQL
Este objecto permite o acesso a todas as operações sobre todos os objectos de BD (filtragem,
dos, execução de consultas de todos os tipos, navegação entre registos,
automatização de formulários, impressão, etc.).
Docmd contém apenas métodos na sua definição, cujo lote de comandos se refere às acções
disponibilizadas pelas macros não programadas do Access.
Este método termina a aplicação.
Executa uma consulta de acção ou de definição de dados por especificação de uma
DoCmd.RunSQL "delete from clientes where nome='" & txtNome & "' and bi=" & txtBi
Abre o formulário com determinado nome.
Exemplo: docm.openform “verClientes” – abre o formulário verClientes.
Fecha um determinado objecto de BD com um nome específico.
fecha a janela actual
Com o VBA, o programador pode gerir quando e como uma aplicação interage com uma BD, mais
especificamente com os seus objectos. O modelo de programação ADO é constituído
ectos que proporciona toda a gestão e acesso a um SGBD.
A tabela seguinte apresenta a listagem dos objectos e colecções mais importantes, definidos
Conjunto de registos retornados por uma origem de dados ou query.
Corresponde a uma coluna (campo) num objecto recordset
Colecção contendo todas as colunas de um objecto recordset.
Representa uma ligação a uma BD
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
Este objecto permite o acesso a todas as operações sobre todos os objectos de BD (filtragem,
dos, execução de consultas de todos os tipos, navegação entre registos,
Docmd contém apenas métodos na sua definição, cujo lote de comandos se refere às acções
Executa uma consulta de acção ou de definição de dados por especificação de uma
& "' and bi=" & txtBi – executa a query
Com o VBA, o programador pode gerir quando e como uma aplicação interage com uma BD, mais
constituído por uma biblioteca de
A tabela seguinte apresenta a listagem dos objectos e colecções mais importantes, definidos na
de dados ou query.
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
A aplicação a ser construída consiste numa base de dados ond
efectuadas, os clientes e os fornecedores.
Para este exemplo vamos precisar de criar a
Esta tabela deve ser preenchida com os seguintes registos:
Da tabela fornecedores com os
E a tabela encomendas com os seguintes campos e registos:
2
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
A aplicação a ser construída consiste numa base de dados onde vão ser registadas as encomendas
efectuadas, os clientes e os fornecedores.
Para este exemplo vamos precisar de criar a tabela clientes com os seguintes campos:
Esta tabela deve ser preenchida com os seguintes registos:
com os seguintes campos e registos:
com os seguintes campos e registos:
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
e vão ser registadas as encomendas
com os seguintes campos:
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
Na vista de estrutura crie ainda um formulário semelhante ao seguinte. Deve guardá
formClientes.
1. Caixa de texto com o nome 2. Botão com o nome cmd_pesquisa.
Nota: As caixas de listagem são constituídas por rótulo e a caixa onde vai surgir a lista de dados. Altere o texto dos rótulos como mostrado na imagem e em cada lista deve apenas alterar, nas propriedades, o nome. Deve ainda alterar nas propriedades das caixas de listagem no separador dados a propriedade tipo de origem da linha para lista de valores, uma vez que a caixa vai ser preenchida por linhas resultantes de uma consulta à tabela.
3. Caixa de listagem com o nome 4. Caixa de listagem com o nome
O objectivo agora é que a primeira lista (
dos clientes que se encontram na tabela clientes. Como esta acção vai oc
carregado, vai acontecer no evento
Para aceder ao editor de código vba clique com o botão direito no formClientes (em vista de estrutura) e
aceda à opção construir evento > construtor de código
Possivelmente vai-lhe surgir o método Detalhe_Click e não o Form_Load
3
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
Na vista de estrutura crie ainda um formulário semelhante ao seguinte. Deve guardá
Fig. – Formulário FormClientes
o com o nome txt_pesquisa. cmd_pesquisa.
As caixas de listagem são constituídas por rótulo e a caixa onde vai surgir a lista de dados. Altere o texto dos rótulos como mostrado na imagem e em cada lista deve apenas alterar, nas
Deve ainda alterar nas propriedades das caixas de listagem no separador dados a propriedade tipo de origem da linha para lista de valores, uma vez que a caixa vai ser preenchida por linhas resultantes de uma consulta à tabela.
stagem com o nome lst_clientes Caixa de listagem com o nome lst_pesquisa_clientes
O objectivo agora é que a primeira lista (lst_clientes) seja preenchida automaticamente com os nomes
dos clientes que se encontram na tabela clientes. Como esta acção vai ocorrer quando o formulário é
carregado, vai acontecer no evento Form_Load.
Para aceder ao editor de código vba clique com o botão direito no formClientes (em vista de estrutura) e
aceda à opção construir evento > construtor de código.
surgir o método Detalhe_Click e não o Form_Load.
1
3 4
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
Na vista de estrutura crie ainda um formulário semelhante ao seguinte. Deve guardá-lo com o nome
As caixas de listagem são constituídas por rótulo e a caixa onde vai surgir a lista de dados. Altere o texto dos rótulos como mostrado na imagem e em cada lista deve apenas alterar, nas
Deve ainda alterar nas propriedades das caixas de listagem no separador dados a propriedade tipo de origem da linha para lista de valores, uma vez que a caixa vai ser
seja preenchida automaticamente com os nomes
orrer quando o formulário é
Para aceder ao editor de código vba clique com o botão direito no formClientes (em vista de estrutura) e
2
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
Em 1 altera-se o nome do objecto e em
Altere em 1 Detalhe para Form que automaticamente surge o evento Form_Load.
Como vamos necessitar do objecto ADO deve adicionar a bibliote
Library à sua base de dados. Para adicionar a biblioteca clique no menu
Localize a biblioteca, seleccione e por fim clique em OK.
No evento form_Load vai ser estabelecida a ligação à tabela, va
guardar o resultado do select efectuado à tabela clientes e por fim cada registo vai ser adicionado à lista.
1
4
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
se o nome do objecto e em 2 o evento a ele associado.
Detalhe para Form que automaticamente surge o evento Form_Load.
Como vamos necessitar do objecto ADO deve adicionar a biblioteca Microsoft ActiveX Data Objects 2.7
Library à sua base de dados. Para adicionar a biblioteca clique no menu Tools >References
Localize a biblioteca, seleccione e por fim clique em OK.
No evento form_Load vai ser estabelecida a ligação à tabela, vai ser criado um registo que vai
guardar o resultado do select efectuado à tabela clientes e por fim cada registo vai ser adicionado à lista.
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
Detalhe para Form que automaticamente surge o evento Form_Load.
ca Microsoft ActiveX Data Objects 2.7
Tools >References…
i ser criado um registo que vai
guardar o resultado do select efectuado à tabela clientes e por fim cada registo vai ser adicionado à lista.
2
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
O código para este evento vai ser o seguinte:
Neste caso vamos precisar de
preencher a caixa de listagem.
A sintaxe da estrutura de repetição
While condição
Bloco de instruções
Wend
Programação do evento Form_Load()
Nota: Os comentários em VBA são feitos utilizando o apóstrofe ‘.
Dim ligacao As ADODB.ConnectionDim registo As ADODB.Recordset
select efectuado à tabela clientes.Dim sql As String ‘a variável Set ligacao = CurrentProject.Connection
corrente Set registo= New ADODB.Recordset sql = "select nome from clientes order by nome"
clientes e ordenar
registo.Open sql, ligacao
While Not registo.EOFda linha(registo.EOF) as duas linhas de código seguintes vão ser executadas
lst_clientes.AddItem reg
lista lst_clientes.
5
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
O código para este evento vai ser o seguinte:
Fig – Programação do evento Form_Load
caso vamos precisar de usar um ciclo While para percorrer as linhas da tabela e em seguida
da estrutura de repetição While é a seguinte:
Bloco de instruções
Programação do evento Form_Load() - Explicação do código linha a linha
Os comentários em VBA são feitos utilizando o apóstrofe ‘.
Dim ligacao As ADODB.Connection ‘a variável ligação vai conter a ligação à tabela da BDDim registo As ADODB.Recordset ‘a variável registo vai guardar cada linha e coluna resul
select efectuado à tabela clientes. ‘a variável sql vai conter o código sql de consulta à tabela clientes.
Set ligacao = CurrentProject.Connection ‘inicializar a variável ligacao com
w ADODB.Recordset ‘inicializar a variável registo como um novo conjunto de registos
from clientes order by nome" ‘seleccionar apenas
registo.Open sql, ligacao ‘preenchimento do registo com o total de linhas da tabela clientes.
While Not registo.EOF ‘a tabela vai ser percorrida linha a linha e enquanto não chegarmos ao fim da linha(registo.EOF) as duas linhas de código seguintes vão ser executadas
lst_clientes.AddItem registo!nome ‘adicionar o campo nome da variável registo (registo!nome) à
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
usar um ciclo While para percorrer as linhas da tabela e em seguida
à tabela da BD ‘a variável registo vai guardar cada linha e coluna resultante do
sql vai conter o código sql de consulta à tabela clientes. ‘inicializar a variável ligacao com a ligação ao projecto
a variável registo como um novo conjunto de registos
o campo nome, da tabela
o com o total de linhas da tabela clientes.
ser percorrida linha a linha e enquanto não chegarmos ao fim
dicionar o campo nome da variável registo (registo!nome) à
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
Wend ‘fim do ciclo while
End Sub
O próximo passo vai ser programar o botão OK (cmd_pesquisa). O
seleccione da tabela clientes todos os nomes começados pela letra que coloca na caixa de texto. A lista de
nomes encontrada vai preencher a caixa de listagem
O código do evento cmd_pesquisa_click
Fig
Vamos utilizar a estrutura de decisão if para que, no caso da consulta à base de dados não devolver
valores, a caixa de listagem seja preenchida com o texto “Não existem resultados… ”
A estrutura if avalia a condição especificada e, se a mesma for verdadeira, executa determinada
instrução ou conjunto de instruções; se for falsa, executa uma instrução ou bloco de instruções diferente do
anterior.
Sintaxe:
If condição then – utilizamos no ca
If condição then… end if –
If condição then ….else….
instruções após o then, senão executa o bloco de instruções depois de else.
Programação do evento cmd_pesquisa_Click
Private Sub cmd_pesquisa_Click()
‘criação e inicialização das variáveis registo,ligação e sql cuja função já foi explicada antDim registo As ADODB.RecordsetDim ligacao As ADODB.Connection
6
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
registo.MoveNext ‘mudança para a próxima linha da tabela
‘fim do ciclo while
er programar o botão OK (cmd_pesquisa). O que se pretende é que ao clicar ele
seleccione da tabela clientes todos os nomes começados pela letra que coloca na caixa de texto. A lista de
nomes encontrada vai preencher a caixa de listagem lst_pesquisa_clientes.
cmd_pesquisa_click vai ser o seguinte:
Fig – Programação do evento cmd_pesquisa_Click
a estrutura de decisão if para que, no caso da consulta à base de dados não devolver
valores, a caixa de listagem seja preenchida com o texto “Não existem resultados… ”
strutura if avalia a condição especificada e, se a mesma for verdadeira, executa determinada
instrução ou conjunto de instruções; se for falsa, executa uma instrução ou bloco de instruções diferente do
utilizamos no caso de ser preciso executar apenas um bloco de instruções.
quando é necessário executar um bloco de instruções.
If condição then ….else…. end if – a condição é testada, se for verdadeira executa o bloco de
senão executa o bloco de instruções depois de else.
evento cmd_pesquisa_Click- Explicação do código linha a linha
Private Sub cmd_pesquisa_Click()
‘criação e inicialização das variáveis registo,ligação e sql cuja função já foi explicada antDim registo As ADODB.Recordset Dim ligacao As ADODB.Connection
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
mudança para a próxima linha da tabela
que se pretende é que ao clicar ele
seleccione da tabela clientes todos os nomes começados pela letra que coloca na caixa de texto. A lista de
Programação do evento cmd_pesquisa_Click
a estrutura de decisão if para que, no caso da consulta à base de dados não devolver
valores, a caixa de listagem seja preenchida com o texto “Não existem resultados… ”
strutura if avalia a condição especificada e, se a mesma for verdadeira, executa determinada
instrução ou conjunto de instruções; se for falsa, executa uma instrução ou bloco de instruções diferente do
so de ser preciso executar apenas um bloco de instruções.
ecutar um bloco de instruções.
stada, se for verdadeira executa o bloco de
do código linha a linha
‘criação e inicialização das variáveis registo,ligação e sql cuja função já foi explicada anteriormente.
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
Dim sql As String Set ligacao = CurrentProject.ConnectionSet registo = New ADODB.Recordset ‘seleccionar todos os campos e registos da tabela clientes onde o nome começa pela letra
na caixa txt_pesquisa. sql = "select * from clientes where nome like '" & txt_pesquisa & "%'" ‘preenchimento do registo com o total de linhas da tabela clientes. registo.Open sql, ligacao‘limpamos a caixa de listagem para não ficar com os lst_pesquisa_clientes.RowSource = "" ‘enquanto não chegar ao fim da tabela While Not registo.EOF mostra = registo!nome lst_pesquisa_clientes.AddItem registo!nome
listagem registo.MoveNext ‘passar para o Wend‘fim do ciclo while txt_pesquisa = "" ‘limpar a caixa de texto txt_pesquisa If mostra = "" Then ‘se a variável mostra e
“Não existem resultados...” lst_pesquisa_clientes.AddItem "Não existem resultados..." End If ‘fim do if End Sub
Coloque ainda no formulário o seguinte grupo de opções, caixas de texto e botão:
1. Caixa de texto txtNome
7
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
Set ligacao = CurrentProject.Connection Set registo = New ADODB.Recordset
‘seleccionar todos os campos e registos da tabela clientes onde o nome começa pela letra
sql = "select * from clientes where nome like '" & txt_pesquisa & "%'"
eenchimento do registo com o total de linhas da tabela clientes. registo.Open sql, ligacao
limpamos a caixa de listagem para não ficar com os valores da pesquisa anteriorlst_pesquisa_clientes.RowSource = ""
enquanto não chegar ao fim da tabela
mostra = registo!nome ‘guardar campo nome na variável mostra lst_pesquisa_clientes.AddItem registo!nome‘adicionar linha com o campo nome à caixa de
‘passar para o registo seguinte fim do ciclo while
limpar a caixa de texto txt_pesquisa ‘se a variável mostra estiver vazia a caixa de listagem é preenchida com o texto
lst_pesquisa_clientes.AddItem "Não existem resultados..."
Coloque ainda no formulário o seguinte grupo de opções, caixas de texto e botão:
Fig. – Formulário listaClientes
txtNome
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
‘seleccionar todos os campos e registos da tabela clientes onde o nome começa pela letra colocada
valores da pesquisa anterior
dicionar linha com o campo nome à caixa de
a caixa de listagem é preenchida com o texto
Coloque ainda no formulário o seguinte grupo de opções, caixas de texto e botão:
1
2
3
4
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
2. Caixa de texto txtBi3. Caixa de texto txtNif4. Botão cmd_editarCliente
Altere as propriedades de caixas de texto para que fiquem desactivas, para isso c
propriedade activado igual a não (separa Vamos agora programar a caixa de listagem lst_pesquisa_clientes quando ocorre o evento click.Ao clicar numa das opções da lista os dados das caixas de texto(txtNome, txtBi e txtNif) vão ser
automaticamente preenchidos. Esexistem resultados…”
O código para o evento lst
Elabore o seguinte formulário que deve guardar com o nome
Altere os nomes de cada caixa de texto e botão para os seguintes:1. Caixa de texto txtNome2. Caixa de texto txtBi3. Caixa de texto txtNif4. Botão cmd_editarC5. Botão cmd_eliminar6. Botão cmd_fechar
8
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
txtBi txtNif
editarCliente
Altere as propriedades de caixas de texto para que fiquem desactivas, para isso cnão (separador dados).
Vamos agora programar a caixa de listagem lst_pesquisa_clientes quando ocorre o evento click.Ao clicar numa das opções da lista os dados das caixas de texto(txtNome, txtBi e txtNif) vão ser
sta acção só é efectuada caso a opção seleccion
t_pesquisa_clientes_click é o seguinte:
rmulário que deve guardar com o nome verClientes.
Formulário verClientes
Altere os nomes de cada caixa de texto e botão para os seguintes: Caixa de texto txtNome Caixa de texto txtBi Caixa de texto txtNif Botão cmd_editarC Botão cmd_eliminar
o cmd_fechar
1
2
3
4 5 6
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
Altere as propriedades de caixas de texto para que fiquem desactivas, para isso coloque a
Vamos agora programar a caixa de listagem lst_pesquisa_clientes quando ocorre o evento click. Ao clicar numa das opções da lista os dados das caixas de texto(txtNome, txtBi e txtNif) vão ser
nada seja diferente de “Não
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
O botão fechar apenas fecha o formulário e o código é o seguinte:
O botão editar permite registar as alterações, na tabela clientes, efectuadas nos campos do
formulário onde o bi corresponda ao bi apresentado
O código vai ser o seguinte
O botão eliminar vai eliminar o registo corrente da tabela. Caso seleccione sim na caixa de
mensagens, o registo é eliminado e surge a mensagem “o cliente nome_d_cliente foi eliminado!”, caso
contrário o registo mantém-se.
Programação do evento cmd_
Private Sub cmd_eliminar_Click()msg = MsgBox("Tem a certeza que pretende eliminar?", vbQuestion + vbYesNoCancel)
resultado da opção escolhida (botão sim/não/cancelar) na caixa de mensagem vai ser guarvariável msg.
DoCmd.SetWarnings False ‘ If msg = vbYes Then ‘ elimina da tabela clients o registo que está a ser mostrado
DoCmd.RunSQL "delete from clientes where nome‘mostra a caixa de mensagem com o texto “O cliente nome_do_cliente foi
eliminado!” MsgBox "O cliente " & txtNome & " foi eliminado!"
End If End Sub
9
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
O botão fechar apenas fecha o formulário e o código é o seguinte:
O botão editar permite registar as alterações, na tabela clientes, efectuadas nos campos do
onde o bi corresponda ao bi apresentado.
O código vai ser o seguinte:
O botão eliminar vai eliminar o registo corrente da tabela. Caso seleccione sim na caixa de
mensagens, o registo é eliminado e surge a mensagem “o cliente nome_d_cliente foi eliminado!”, caso
evento cmd_eliminar_Click- Explicação do código linha a linha
Private Sub cmd_eliminar_Click() msg = MsgBox("Tem a certeza que pretende eliminar?", vbQuestion + vbYesNoCancel)
resultado da opção escolhida (botão sim/não/cancelar) na caixa de mensagem vai ser guar
DoCmd.SetWarnings False ‘ retirar os avisos mostrados pelo accessIf msg = vbYes Then ‘ se clicar no botão sim (vbYes)
‘ elimina da tabela clients o registo que está a ser mostradoDoCmd.RunSQL "delete from clientes where nome='" & txtNome & "' and bi=" & txtBi‘mostra a caixa de mensagem com o texto “O cliente nome_do_cliente foi
MsgBox "O cliente " & txtNome & " foi eliminado!"
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
O botão editar permite registar as alterações, na tabela clientes, efectuadas nos campos do
O botão eliminar vai eliminar o registo corrente da tabela. Caso seleccione sim na caixa de
mensagens, o registo é eliminado e surge a mensagem “o cliente nome_d_cliente foi eliminado!”, caso
do código linha a linha
msg = MsgBox("Tem a certeza que pretende eliminar?", vbQuestion + vbYesNoCancel) ‘o resultado da opção escolhida (botão sim/não/cancelar) na caixa de mensagem vai ser guardado na
retirar os avisos mostrados pelo access
‘ elimina da tabela clients o registo que está a ser mostrado ='" & txtNome & "' and bi=" & txtBi
‘mostra a caixa de mensagem com o texto “O cliente nome_do_cliente foi
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
EXERCÍCIO – PROGRAMAÇÃO DO FORMULÁRIO ENCOMENDAS
Para este exemplo vai ser necessário importar os seguintes objectos da base de dados Sql e
VBA – exemplo: formulários encomendas, verClientes e verFornecedores e tabela encomendas.
Verifique se os seguintes registos se encontram na
Verifique ainda se os seguintes registos se encontram na
A tabela encomendas enco
10
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
PROGRAMAÇÃO DO FORMULÁRIO ENCOMENDAS
plo vai ser necessário importar os seguintes objectos da base de dados Sql e
exemplo: formulários encomendas, verClientes e verFornecedores e tabela encomendas.
Verifique se os seguintes registos se encontram na tabela clientes.
os seguintes registos se encontram na tabela fornecedores
ontra-se organizada do seguinte modo:
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
plo vai ser necessário importar os seguintes objectos da base de dados Sql e
exemplo: formulários encomendas, verClientes e verFornecedores e tabela encomendas.
tabela fornecedores.
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
No formulário encomendas coloque os nomes nos controlos como se apresenta em seguida
que o texto apresentado só irá surgir depois de programar cada objecto)
1. Caixa de listagem lst_encomenda2. Caixa de texto txt_encomenda3. Caixa de texto txt_fornecedor4. Caixa de texto txt_cliente;5. Caixa de texto txt_valor; 6. Caixa de texto txt_data. 7. Botão cmd_verF; 8. Botão cmd_verC;
Vamos então passar à programação dos objectos do formulário.
a. A caixa de listagem lst_encomendas deve ser preenchida, logo quando o formulário for carregado, com o código de cada encomenda.
b. Quando uma encomenda é seleccionada (ao clicar na lista lst_encomendas) as caixas de texto dos dados da encomenda são automaticamente p
c. O botão verFornecedores vai abrir o formuláriocorresponde aquela encomenda.
1
11
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
No formulário encomendas coloque os nomes nos controlos como se apresenta em seguida
que o texto apresentado só irá surgir depois de programar cada objecto):
lst_encomenda; txt_encomenda; txt_fornecedor;
;
Vamos então passar à programação dos objectos do formulário.
de listagem lst_encomendas deve ser preenchida, logo quando o formulário for carregado, com o código de cada encomenda. Quando uma encomenda é seleccionada (ao clicar na lista lst_encomendas) as caixas de texto dos dados da encomenda são automaticamente preenchidas. O botão verFornecedores vai abrir o formulário verFornecedor com os dados do fornecedor que corresponde aquela encomenda.
2
3
4
5
6
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
No formulário encomendas coloque os nomes nos controlos como se apresenta em seguida (atenção
de listagem lst_encomendas deve ser preenchida, logo quando o formulário for
Quando uma encomenda é seleccionada (ao clicar na lista lst_encomendas) as caixas de texto
com os dados do fornecedor que
7
8
Curso: Técnico/a de Informática
Unidade de competência: Administração deProjecto Nº 038925/2010/22
MEDIDA 2.2
d. O botão ver Cliente vai abrir o formulário verClientes com os dados do cliente que corresponde
aquela encomenda.
e. No formulário dos fornecedores deve programar o botão fechar para fechar o formulário e o
botão remover para remover o registo.Quando clica em remover apenas deve surgir uma msgBox com o texto “Tem a certeza que pretende eliminar o cliente?”. Se clicar em seliminado com sucesso!”, caso contrário mantém o registo.
12
Curso: Técnico/a de Informática – Sistemas Formadora: Patrícia Mateus
Unidade de competência: Administração de Bases de Dados Projecto Nº 038925/2010/22 Nº SIIFSE: 8 Código Sigo:
MEDIDA 2.2 - Curs os de Educação e Formação de Adultos
O botão ver Cliente vai abrir o formulário verClientes com os dados do cliente que corresponde
formulário dos fornecedores deve programar o botão fechar para fechar o formulário e o botão remover para remover o registo. Quando clica em remover apenas deve surgir uma msgBox com o texto “Tem a certeza que pretende eliminar o cliente?”. Se clicar em sim remove e mostra a mensagem “o cliente Maria foi eliminado com sucesso!”, caso contrário mantém o registo.
Formadora: Patrícia Mateus
Código Sigo: 4757201
os de Educação e Formação de Adultos
O botão ver Cliente vai abrir o formulário verClientes com os dados do cliente que corresponde
formulário dos fornecedores deve programar o botão fechar para fechar o formulário e o
Quando clica em remover apenas deve surgir uma msgBox com o texto “Tem a certeza que im remove e mostra a mensagem “o cliente Maria foi