0% acharam este documento útil (0 voto)
218 visualizações10 páginas

DAO

O documento descreve como acessar e manipular dados em uma base de dados do Microsoft Access usando o DAO (Data Access Objects) no Visual Basic. Ele discute como abrir uma base de dados e um recordset, navegar e editar registros, e executar consultas SQL.

Enviado por

api-19959782
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
218 visualizações10 páginas

DAO

O documento descreve como acessar e manipular dados em uma base de dados do Microsoft Access usando o DAO (Data Access Objects) no Visual Basic. Ele discute como abrir uma base de dados e um recordset, navegar e editar registros, e executar consultas SQL.

Enviado por

api-19959782
Direitos autorais
© Attribution Non-Commercial (BY-NC)
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 10

DAO

Linguagem : Visual Basic


Base de dados : Access
Indice
1 – Introdução
2 – Mecanismos de Acesso a uma Base de dados
3- Abertura de uma Base Dados, Opendatabase
4 – Abertura de um RecordSet
4.1 – Métodos de Navegação no Recordset
4.2 – Propriedades BOF e EOF
4.3 – Propriedades do RecordCount , AbsolutePosition e Percentposition
4.4 – Acesso aos Campos do Registo Actual
4.5 – Métodos Edit,Addnew,Update e CancelUpdate
4.6 – Método Delete
4.7 – Método Find e NoMatch
5 – DAO e SQL

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.

Neste Artigo irei abordar como poderemos fazer a


abertura da Databases e de RecordSets (acedendo as
suas propriedades e métodos) através de código. E
também a explicação de como poderá-se fazer uma
query em SQL à base de dados Access utilizando DAO.

2 – Mecanismos de Acesso a uma Base de Dados


Data Control – Controlo padrão;
Data Access Objects (DAO) – Permite utilizar código;
Open Database Conectivity (ODBC) – Permite a utilização directa das API;
Remote Data Objects (RDO) – Desenvolvido para ultrapassar a complexidade
do ODBC,é uma combinação deste último com o DAO;
ActiveX Data Objects (ADO) – Desenvolvido para combinar as melhores
características das três tecnologias (DAO,ODBC e RDO);
Visual Basic SQL Libraries (VBSQL) – Permitem l Ligação directa a um servidor
Microsoft SQL;
3 – Abertura de uma Base Dados (Opendatabase)
Uma base de dados pode ser aberta invocando o método OpenDatabase do
workspace corrente. O método OpenDatabase abre a base de dados e retorna uma
referência do tipo da base de dados e a sua localização . Exemplo:

Dim MinhaBD As Database


Set MinhaBD = OpenDatabase(“c:\...\MinhaBD.mdb”)

4 – Abertura de um Recordset
O método OpenRecordset de um objecto do tipo Database permite abrir os recordsets da
base de dados.

Sintaxe:

MeuRecordSet = MinhaBD.OpenRecordset(source, type)

source – nome da tabela ou query de que resulta o recordset


type – DBOpenTable, DBOpenDynaset ou DBOpenSnapShot

Exemplo:
‘ Declaração das variáveis necessárias
Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)

Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

4.1 – Metodos de Navegação no recordset


O registo actual de um recordset pode ser alterado através de um dos seguintes métodos:
MoveFirst, o registo actual passa a ser o primeiro registo do recordset
MoveLast, o registo actual passa a ser o último registo do recordset
MovePrevious, o registo actual passa a ser o registo anterior ao actual
MoveNext, o registo actual passa a ser o registo seguinte ao actual
Move, permite especificar o número de registos que se avança ou recua no recordset.
Exemplos: MeuRecordset.Move 5 ou MeuRecordset.Move -10

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)

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

MeuRecordSet.Movefirst 

O cursor/ponteiro irá para o primeiro registo da nossa Tabela chamada Clientes.

MeuRecordSet.MoveNext

O cursor/ponteiro passará para ao próximo registo.

MeuRecordSet.MovePrevious

O cursor/ponteiro passará para o registo anterior.

MeuRecordSet.MoveLast

O cursor/ponteiro passará para o ultimo registo.


4.2 - Propriedades BOF e EOF
As propriedades BOF (Beginning Of File) e EOF (End Of File), se forem
verdadeiras, indicam se o registo actual se encontra antes do primeiro registo ou depois
do último registo, respectivamente. Se ambas as propriedades forem verdadeiras
significa que não existem registos no recordset. As propriedades BOF e EOF só são
acessíveis em run-time e apenas para leitura. Estas propriedades são muito úteis no
tratamento de erros resultantes dos métodos de navegação no recordset.

Exemplo .:
Problema Proposto : “ Indicar se o cursor/ponteiro chegou ao fim do
RecordSet(tabela)”

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

MeuRecordset.MoveLast

IF tabela.EOF = True Then


MsgBox "O cursor/ponteiro chegou ao fim do RecordSet(tabela)"
End If

4.3 – Propriedades do RecordCount , AbsolutePosition e Percentposition


A propriedade RecordCount permite saber quantos registos existem num recordset.

A propriedade AbsolutePosition permite saber a posição do registo actual no recordset


ou alterar o registo actual: varia entre 0 e RecordCount-1.

A propriedade PercentPosition permite saber a posição do registo actual no recordset


ou alterar o registo actual em termos de percentagem do total de registos: varia entre
0.00 e 100.00.

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

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

MeuRecordset.MoveLast
Msgbox MeuRecordSet.RecordCount

4.4 – Acesso aos Campos do Registo Actual

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)

Para actualizar o valor de um campo do registo actual utiliza-se a seguinte notação:

MeuRecordset!Nsocio = MinhaTextBox.Text
Ou então
MeuRecordset.Fields(0) = MinhaTextBox.Text
(irei usar este método nos exemplos)

No entanto, como veremos, a actualização de campos do registo actual só é possível


após a invocação do método Edit ou do método AddNew.

4.5 – Métodos Edit,Addnew,Update e CancelUpdate

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.”

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

MeuRecordset.MoveLast

MeuRecordset.edit

MeuRecordset.Fields(0) = MinhaTextBox.Text
MeuRecordset.Addnew

MeuRecordset.update

4.6 – Método Delete


O método Delete permite apagar da base de dados o registo actual. O seguinte
exemplo apaga da base de dados o último registo do recordset:
Exemplo:
Problema Proposto : “Apagar o ultimo registo do RecordSet.”

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

MeuRecordset.MoveLast
MeuRecordset.Delete

4.7 – Método Find e NoMatch


O método FindFirst procura o primeiro registo do recordset que satisfaz um
determinado critério.
O método FindLast procura o último registo do recordset que satisfaz um determinado
critério.
O método FindNext procura o próximo registo que satisfaz um determinado critério
partindo do registo actual.
O método FindPrevious procura o primeiro registo anterior que satisfaz um
determinado critério partindo do registo actual.
A sintaxe geral dos métodos FindFirst, FindLast, FindNext e FindPrevious é a
seguinte:
FindNext critério
critério é uma string que especifica o critério de procura

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’.”

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


Set MeuRecordSet = MinhaBD.OpenRecordset(“AMinhaTabela”, DBOpenTable)

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.”

‘ Declaração das variáveis necessárias


Dim MinhaBD As Database
Dim MeuRecordSet_SQL As Recordset

Set MinhaBD = OpenDatabase(“c:\My Documents\MinhaBD.mdb”)


‘ Definer a Query

sqlquery = "Select * From Clientes Where Idade = 19"

Set MeuRecordSet_SQL = MinhaBD.OpenRecordset(sqlquery)

‘ Mostrar o resultado da query à base de dados


Msgbox MeuRecordSet_SQL!Nsocio
Msgbox MeuRecordSet_SQL!Nome
Msgbox MeuRecordSet_SQL!Idade
Msgbox MeuRecordSet_SQL!Morada
FIM

TMCS – RoLaN2
http://rprogrammer.blogspot.com
21 Abr. 06

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy