DAO
DAO
1 – Introdução
DAO, foi criado antes do RDO e do ADO, é um conjunto
de “tarefas” que permite que o programador possa
aceder a informação de uma base de dados,contudo o
DAO não permite apenas aceder informação também
deixa controlar e administrar base de dados locais ou
remotas em vários formatos.
Usando DAO poderá criar e modificar a estrutura
da base de dados, criar tabelas, querys, relações,indexar
,receber, adicionar, actualizar e remover informação.
4 – Abertura de um Recordset
O método OpenRecordset de um objecto do tipo Database permite abrir os recordsets da
base de dados.
Sintaxe:
Exemplo:
‘ Declaração das variáveis necessárias
Dim MinhaBD As Database
Dim MeuRecordSet As Recordset
Caso não existam registos no recordset ocorrerá um erro sempre que qualquer destes
métodos seja invocado. O mesmo acontecerá sempre que a invocação de um destes
métodos implicar a deslocação para um registo anterior ao primeiro ou posterior ao
último registo do recordset.
Exemplos
Problema Proposto : “ Ligar a uma base de dados Access e por o ponteiro/cursor no
primeiro registo do recordset” (tabela)
MeuRecordSet.Movefirst
MeuRecordSet.MoveNext
MeuRecordSet.MovePrevious
MeuRecordSet.MoveLast
Exemplo .:
Problema Proposto : “ Indicar se o cursor/ponteiro chegou ao fim do
RecordSet(tabela)”
MeuRecordset.MoveLast
Estas propriedades só indicam valores correctos depois de terem sido percorridos todos
os registos do recordset. Por isso, é comum fazer preceder a sua utilização da invocação
do método MoveLast.
Exemplo .:
Problema Proposto : “Mostrar quantos registos tem o Recordset(tabela)”
MeuRecordset.MoveLast
Msgbox MeuRecordSet.RecordCount
Para aceder por código aos campos do registo actual utiliza-se a seguinte notação:
MinhaTextBox.Text = MeuRecordset!Nsocio
Ou então
MinhaTextBox.text = MeuRecordset.Fields(0)
MeuRecordset!Nsocio = MinhaTextBox.Text
Ou então
MeuRecordset.Fields(0) = MinhaTextBox.Text
(irei usar este método nos exemplos)
O método Edit copia os campos do registo actual para uma zona de memória
temporária de forma a que o mesmo possa ser actualizado.
O método AddNew cria um novo registo e copia os seus campos para uma zona de
memória temporária de forma a que estes possam ser editados.
Ao chamar os métodos Edit e AddNew os registos não são guardados automaticamente
na base de dados. Para que tal aconteça é necessário invocar o método Update após a
alteração dos campos que foram copiados para a zona de memória temporária.
O método CancelUpdate permite cancelar qualquer actualização pendente, isto é,
cancelar uma operação iniciada com os métodos Edit ou AddNew sem gravar as
alterações na base de dados.
Exemplo .:
Problema Proposto : “Actualizar o ultimo registo do campo Nsocio para o valor 11 e
criar um novo registo.”
MeuRecordset.MoveLast
MeuRecordset.edit
MeuRecordset.Fields(0) = MinhaTextBox.Text
MeuRecordset.Addnew
MeuRecordset.update
MeuRecordset.MoveLast
MeuRecordset.Delete
Exemplo:
Problema Proposto : “Procurar na tabela Clientes o primeiro registo que satisfaz a
seguinte condição Nsocio = 1 e procurar na tabela o ultimo registo na tabela que
satisfaz a seguinte condição Nome =’ teste3’.”
MeuRecordset.FindFirst “Nsocio = 1 ”
MeuRecordset.FindLast “Nome = ‘teste3’ ”
Sempre que na sequência da invocação de um dos métodos FindFirst, FindLast,
FindNext e FindPrevious for encontrado um registo, esse registo passa a ser o registo
actual e a propriedade NoMatch do recordset assume o valor False.
Sempre que não seja encontrado nenhum registo a propriedade NoMatch assume o valor
True.
5 – DAO e SQL
O mecanismo de Acesso DAO permite a utilização de querys à base de dados ou
seja de instruções SQL , passarei a demonstrar num simples exemplo como se poderá
fazer isso.
Exemplo:
Problema Proposto : “Selecionar todos os clientes com 19 anos de idade , utilizando
SQL.”
TMCS – RoLaN2
http://rprogrammer.blogspot.com
21 Abr. 06