Acesso a Bancos de Dados usando Visual Basic
Generalidades
VB fornece diversas ferramentas para criação e acesso à BD. As ferramentas principais, para isto são:
- O controle Data
- Os Data Access Objects
O controle Data fornece um meio de ter acesso a BD sem qualquer programação. O que se faz é ajustar algumas propriedades deste controle e utilizar outros controles usuais, tais como caixas de texto para exibir os campos do BD.
Os objetos Data Access Objects constituem um modelo de estrutura de objetos para acesso a BD por meio de programação tradicional. Todas as funcionalidades do controle Data estão disponíveis pelo Data Access Objects(DAO).
Data Access Objects correspondem a um conjunto de objetos, cada qual com sua biblioteca de comandos, funções e estruturas para acesso a Bancos de Dados. DAO aceita dois ambientes, chamados de WorkSpaces.
1. Microsoft Jet WorkSpaces, que contém
· Microsoft Jet DataBases, usado para bases de dados no formato .mdb
· Microsoft Jet conectado via ODBC, usado para qualquer origem de dados (DataSource) criada via ODBC
· Installable ISAM para conexão a dBase, Excel e outras bases
2. ODBC Direct WorkSpaces, que permite acesso a bases de dados por meio de conexões ODBC sem usar o Microsoft Jet Database Engine
Sempre que for necessário usar DAO deve-se referenciar a versão através do Menu Project/References ativando a CheckBox da biblioteca desejada e acionando o botão OK.
Os BD relacionais armazenam as informações em tabelas. Os dados, nas tabelas, ficam armazenados em linhas e colunas. As linhas contém peças de informação da mesma natureza, sendo similar a registros de arquivos.
O objeto de mais alto nível dentre os DAO é o DBEngine. O objeto DBEngine possui uma coleção de Workspaces. Os Workspaces funcionam como as janelas de um documento Word ou planilha Excel. Inicialmente não precisamos nos preocupar com esse objetos pois DBEngine é único e iniciaremos o estudo apenas com um Workspace aberto, o Workspace default DBEngine.Workspace(0), que pode ser omitido.
Cada um dos Workspaces possui diversas coleções, a saber
Coleção
Descrição sumária
Connections
Indicação de aonde estão os BD que serão acessado
Databases
Indicação de quais são os BD abertos ou definidos no Workspace
Users
Indicação das contas dos usuários que terão acesso a essa aplicação
Groups
Indicação dos grupos de usuários que terão acesso a essa aplicação
A coleção Databases possui diversos objetos Database e, cada qual, possui diversas coleções:
TableDefs
Indicação de quais são as tabelas do BDs
Containers
Indicação de aspectos de histórico e segurança do BD
QueryDefs
Indicação de quais são as consultas armazenadas no BD
RecordSets
Indicação de uma tabela base ou resultado de uma consulta
Relations
Indicação de relacionamentos entre campos de tabelas do BD
A coleção TableDefs possui diversos objetos TableDef e, cada qual possui diversas propriedades:
Connect
Attributes
ConflictTable
LastUpdated
Name
RecordCount
SourceTableName
Updatable
ValidationText
ValidationRule
Replicable
KeepLocal
ReplicaFilter
Além das propriedades cada objeto TableDef contém também duas coleções:
Fields
Indicação de quais são os campos da tabela
Indexes
Indicação de quais são os índices que facilitam o acesso à tabela
A coleção Fields possui diversos objetos Field e, cada qual possui diversas propriedades:
Collating Order
AllowZeroLength
DataUpdatable
ForeignName
DefaultValue
OrdinalPosition
Required
Size
SourceTable
Type
ValidateOnSet
Value
OriginalValue
FieldSize
VisibleValue
A coleção Indexes possui diversos objetos Index e, cada qual possui diversas propriedades:
Clustered
Foreign
DistinctCount
IgnoreNulls
Primary
Unique
A coleção Relations possui diversos objetos Relation e, cada qual possui diversas propriedades:
ForeignTable
Table
PartialReplica
A coleção Containers possui diversos objetos Container e, cada qual possui diversas propriedades:
AllPermissions
Inherit
Permissions
Owner
UserName
A coleção QueryDefs possui diversos objetos QueryDef e, cada qual possui diversas propriedades:
CacheSize
LogMessages
ReturnsRecord
ODBCTimeout
RecordsAffected
SQL
Prepare
StillExecuting
MaxRecords
Para fazer referência, nos programas VB a qualquer desses objetos é necessário declarar uma variável do tipo, da forma
Dim BD152 As Database
Dim rs As RecordSet
Dim tbl as TableDef
Dim consulta As QueryDef
Dim campo As Field
Dim indice As Index
Para obter os nomes da primeira e da segunda tabelas de um Banco de Dados BD152, por exemplo pode-se escrever
BD152.Tabledef(0).Name e BD152.TableDefs(1).Name
ou então
Set tbl = ...
andrejufreire