12
Curso: Técnico Unidade de co Projecto Nº 0 MED OBJECTIVOS Reconhecer alguns dos ob Automatizar bases de dad O objecto DOCMD Este objecto permite o ace pesquisa e tratamento de dados, e automatização de formulários, imp Docmd contém apenas m disponibilizadas pelas macros não Método Quit - Este método termin Exemplo: Docmd.quit Método RunSql - Executa uma con instrução SQL. Exemplo: DoCmd.RunSQL "delete from clien delete. Método OpenForm - Abre o formu Exemplo: docm.openform “verClie Método Close - Fecha um determi Exemplos: docmd.close – fecha a j O objecto ADODB Com o VBA, o programado especificamente com os seus obje objectos que proporciona toda a g A tabela seguinte apresen biblioteca de objectos ADO: OBJECTO DESCRIÇÃO Recordset Conjunto de regist Field Corresponde a um Fields Colecção contendo Connection Representa uma lig 1 o/a de Informática – Sistemas Form ompetência: Administração de Bases de Dados 038925/2010/22 Nº SIIFSE: 8 Códi DIDA 2.2 - Cursos de Educação e Formaçã bjectos VBA dos recorrendo à programação VBA e scripts SQL esso a todas as operações sobre todos os objecto execução de consultas de todos os tipos, navegaç pressão, etc.). métodos na sua definição, cujo lote de coma programadas do Access. na a aplicação. nsulta de acção ou de definição de dados por esp ntes where nome='" & txtNome & "' and bi=" & tx ulário com determinado nome. entes” – abre o formulário verClientes. inado objecto de BD com um nome específico. janela actual or pode gerir quando e como uma aplicação inter ectos. O modelo de programação ADO é constituí gestão e acesso a um SGBD. nta a listagem dos objectos e colecções mais impo tos retornados por uma origem de dados ou quer ma coluna (campo) num objecto recordset o todas as colunas de um objecto recordset. gação a uma BD madora: Patrícia Mateus igo Sigo: 4757201 ão de Adultos os de BD (filtragem, ção entre registos, andos se refere às acções pecificação de uma xtBi – executa a query rage com uma BD, mais ído por uma biblioteca de ortantes, definidos na ry.

O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

  • Upload
    hamien

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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.

Page 2: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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:

Page 3: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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

Page 4: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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

Page 5: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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) à

Page 6: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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.

Page 7: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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

Page 8: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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

Page 9: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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

Page 10: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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.

Page 11: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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

Page 12: O objecto DOCMDpatriciamateus.wikispaces.com/file/view/Sql+e+Vba+-+doc+apoio.pdf · de dados ou query. 4757201 – executa a query ... Curso: Técnico/a de Informática Unidade de

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