Você está na página 1de 4

12/11/2017 VB - Programao com Banco de dados

Eu sei que tem muita gente que ainda usa oVisual Basic 6e que existem muitos sistemas
desenvolvidos nesta linguagem que vo precisar de manuteno por muito tempo.

Lembrar disso me faz no abandonar totalmente a essa verso anterior do VB .NET.

No h como negar que o VB .NET muito superior em recursos alm de contar com uma
ferramenta gratuita a disposio de quem desejar aprender a linguagem: basta baixar a verso
Express do Visual Basic .NET.

Se voc ainda no tem baixe neste link:http://www.microsoft.com/visualstudio/en-


us/products/2010-editions/visual-basic-express

Se voc desejar porta a sua verso para a lingua portuguesa baixe o pacote
aqui:http://www.microsoft.com/downloads/details.aspx?FamilyID=7ee0d8a7-32fb-407d-a010-
da3a7d93fc2f&displaylang=pt-br

Se voc ainda usa ou pretende usar a linguagem Visual Basic pode consultar aseo Visual Basic
do site Macoratti.netonde encontrar centenas de artigos que o ajudaro no seu dia a dia.

Hoje eu vou mostrar novamente os conceitos bsicos para programao com banco de dados
usando o Visual Basic 6. um resumo que mostra como se conectar e manipular um banco de
dados usando o bom e velho Visual Basic ou VB.(Os exemplos mostrados aqui tambm
funcionaro com a linguagem VBA com pequenos ajustes)

Existem vrias maneiras de se conectar a um banco de dados (por exemplo, Access, SQL Server,
etc.): atravs de controles de dados vinculados, DAO ou ADO.

Em geral, se voc pretende ou gosta de ter mais controles sobre o que esta acontecendo o
aconselhvel usar DAO ou ADO e no site voc tem dezenas de artigos que mostram como fazer
isso.

Vamos ento ao resumo...

Introduo
H vrias maneiras para abrir um objeto Connection da ADO:

Definir a propriedade ConnectionString para string de conexo vlida e , a seguir, chamar o


mtodo Open().(Este seqncia de conexo depende do provedor).
Passar uma string de conexo vlida o primeiro argumento do mtodo Open();
Passar um objeto comando vlido para o primeiro argumento do mtodo Open do
Recordset;
Passar o nome da fonte dados ODBC e, opcionalmente, a identificao de usurio e a senha
para o mtodo Open() do objeto de conexo;

H trs maneiras de abrir um objetoRecordsetda ADO:

Abrir o Recordset via mtodo Connection.Execute()


Abrir o Recordset via mtodo Command.Execute()
Abrir o objeto Recordset sem um objeto Connection ou Commad e passar uma cadeia
de conexo vlida para o segundo argumento do mtodo Recordset.Open().

1- Definindo variveis bsicas

Para comear, voc precisa criar algumas variveis dos seguintes tipos :

http://macoratti.net/12/04/vb_pbd1.htm 1/4
12/11/2017 VB - Programao com Banco de dados

ADODB.Connection- Usada se voc estiver usando processos de transao;


DataBase- Usada para se conectar ao banco de dados;
ADODB.Recordset- Esta a varivel usada a nvel de tabela/consulta
ADODB.Field- Isso nos permite obter informaes sobre os campos

2- Conexo com banco de dados


Usando o VB podemos nos conectar usando o Jet ou o ODBC. O recomendado usar o JET pois o
ODBC mais lento.

Podemos tambm escolher entre as tecnologias ADO ou DAO. Embora a primeira seja mais
moderna a DAO em alguns casos tem um desempenho melhor.

Dim ws as Workspace
Dim db as Database
DAO -
JET
Set ws=DBEngine.Workspaces(0)
set db=ws.OpenDatabase((nome caminho do banco de dados))

Dim ws as Workspace
dim db as database
dim strConnection as string
DAO -
set ws=DBEngine.Workspaces(0) ODBC
let strConnection=
"ODBC;DSN="&nomeBancoDados&";UID="&nomUsuario&";PWD="&senha
set db=ws.OpenDatabase("", False, False, strConnection)
Dim ad as ADODB.Connection

set ad=New ADODB.Connection


ADO
Let ad.ConnectionString=
"ODBC;DSN="&nomeBancoDados& ";UID="&nomUsuario&";PWD="&senha
ad.Open

3- Abrindo uma Tabela/Consulta ou Viso(View)

Dim rs as recordset

set rs=db.openrecordset(nome da tabela ou comando SQL)

do while not rs.eof


'Ponha aqui o cdigo para tratar a informao.
'A informao do campo pode ser acessado pelo nome do campo DAO
intID=rs!IDField
'Ou pelo nmero do ndice na relao de campos(iniciando com 0)
intString=rs.Field(1)
'move-se para o prximo registro
rs.movenext
loop
dim ar as ADODB.recordset ADO

set rs=new adodb.recordset


rs.open (instruo SQL)

http://macoratti.net/12/04/vb_pbd1.htm 2/4
12/11/2017 VB - Programao com Banco de dados

do while not rs.EOF


'Ponha aqui o cdigo para tratar a informao.
'A informao do campo pode ser acessado pelo nome do campo
intID=rs!IDField
'Ou pelo nmero do ndice na relao de campos(iniciando com 0)
intString=rs.Field(1).value
'move-se para o prximo registro
rs.movenext
loop

4- Alterando um registro
- Para oeditar/adicionar/excluirum registro podemos usar instrues SQL ou comandos diretos.
- Tanto a tecnologia DAO como a ADO podem usar o mtodoExecutepara fazer atualizaes via
SQL.
- Podemos ainda usar procedimentos armazenados ou stored procedures que tem um
desempenho melhor.

a- Alterando um registro - Incluso usando SQL

Dim rs as recordset
DAO
set rs=db.openrecordset((nome da tabela ou SQL))
rs.execute "INSERT INTOnome_da_tabela(ID,Nome) VALUES (10,'Macoratti')"
dim rs as ADODB.recordset

set rs=new adodb.recordset ADO


rs.open (string de conexo com o banco de dados)
rs.execute "INSERT INTO nome_da_tabela(ID,Nome) VALUES (10,'Macoratti')"

Estamos incluindo os campos ID e Nome.

b- Alterando um registro - Incluso

Dim rs as recordset

set rs=db.openrecordset((nome da tabela ou SQL))


rs.addnew DAO
rs!ID=intID
rs!Nome=strNome
rs.update
Dim ar as ADODB.recordset

set ar=new adodb.recordset


ar.open (string de conexo com o banco de dados)
ADO
ar.addnew
ar!ID=intID
ar!Nome=strNome
ar.update

Neste exemplos aps abrir um recordset verificamos se h um registro que satisfaz os critrios
no SQL aberto. Se no ele existir criado um novo registro usando a instruoaddnewe em
seguida a instruoupdate.

c- Alterando um registro - Editar


http://macoratti.net/12/04/vb_pbd1.htm 3/4
12/11/2017 VB - Programao com Banco de dados

Dim rs as recordset

set rs=db.openrecordset("SELECT * FROMnome_da_tabelaWHERE ID=10")


if rs.eof then
rs.addnew
else DAO
rs.edit
end if
rs!ID=intID
rs!Nome=strNome
rs.update
dim ar as ADODB.recordset

set ar=new adodb.recordset


ar.open "SELECT * FROM nome_da_tabela WHERE ID=10"
if ar.eof then
ar.addnew
ADO
else
ar.edit
end if
ar!ID=intID
ar!Nome=strNome
ar.update

d- Alterando um registro - Excluso

Dim rs as recordset

set rs=db.openrecordset("SELECT * FROMnome_da_tabelaWHERE ID=10")


DAO
if not rs.eof then
rs.delete
end if
Dim ar as ADODB.recordset

set ar=new adodb.recordset


ar.open "SELECT * FROM nome_da_tabela WHERE ID=10" ADO
if not ar.eof then
ar.delete
end if

Recomendao final :

Ao abrir um objeto voc deve sempre fechar e liberar o recurso usado:

rs.close
set rs=nothing
1Pedro 1:13 Portanto, cingindo os lombos do vosso entendimento, sede sbrios, e
esperai inteiramente na graa que se vos oferece na revelao de Jesus Cristo.
1Pedro 1:14 Como filhos obedientes, no vos conformeis s concupiscncias que antes
tnheis na vossa ignorncia;
1Pedro 1:15 mas, como santo aquele que vos chamou, sede vs tambm santos em
todo o vosso procedimento;

http://macoratti.net/12/04/vb_pbd1.htm 4/4