QUAL A MELHOR FORMA DE ATUALIZAR BD ACCESS?

USUARIO.EXCLUIDOS 10/09/2007 14:10:10
#234896
Pessoal... qual seria a melhor forma de atualizar BD access??
Tipo.. criar tabelas e campos (texto, numero, data, autonumerico)

como voces fazem isso? me ajudem...
SERGIO.CARDOSO 10/09/2007 15:03:57
#234905
Existem MUITAS maneiras de acesso ao access. Depende da sua utilizacao. Se for para atualizar um cadastro ( o uso mais comum ),
muitos utilizam o ADO.
Dicas:
1) Procure por apostilas com exemplos na internet (google).
2) Use o VB6 DATA FORM WIZARD:
a) Com o vb6 ligado clique em ADD-INS;
b) Clique em ADD-IN MANAGER;
c) Procure por VB6 DATA FORM WIZARD;
d) Habilite LOADED e LOAD ON STARTUP;
e) OK, ADD-INS e DATA FORM WIZARD.

USUARIO.EXCLUIDOS 10/09/2007 15:04:22
#234906
Criar as tabelas...
e via codigo fazer a conexão e atualização

Usar ADO

Pois bem, a primeira coisa a se fazer é inserir uma referência:

No VB, vá no menu Project > References...

Procure por Microsoft ActiveX Data Objects 2.x Library
(Eu costumo usar o 2.7, q é comum do Win XP SP1)

Inserida a referencia insira um .BAS no seu projeto.

Nele, declare as seguintes Globais:

Global CnnCon As New ADODB.Connection
Global CnnLine As String
Global CnnCmd As New ADODB.Command
Global RsSel As New ADODB.Recordset

muito bem, para conectar a um banco de Dados Access, use aseguinte String:

CnnLine = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "
omedobanco.mdb;Persist Security Info=False"

Agora faça a conexão com a Global:

CnnCon.Open CnnLine

Até aki, moleza.
Agora vem a parte interessante...
Voce tem duas maneiras de fazer SELECT:


'------------------------------------------
RsSel.Open "SELECT * FROM TABELA;", CnnCon
'------------------------------------------

ou

'------------------------------------------
With CnnCmd
.ActiveConnection = CnnCon
.CommandType = adCmdText
.CommandText = "SELECT * FROM TABELA;"
Set RsSel = .Execute
End With
'------------------------------------------

A diferença é q com o Command, vc faz as outras operações do SQL,
sem necessitar dar Open na RsSel:


'------------------ Insert ----------------
With CnnCmd
.ActiveConnection = CnnCon
.CommandType = adCmdText
.CommandText = "INSERT INTO TABELA(campos) VALUES (Valores);"
.Execute
End With


'------------------ Update ----------------
With CnnCmd
.ActiveConnection = CnnCon
.CommandType = adCmdText
.CommandText = "UPDATE TABELA SET(Valores);"
.Execute
End With

'------------------ Delete ----------------
With CnnCmd
.ActiveConnection = CnnCon
.CommandType = adCmdText
.CommandText = "DELETE FROM TABELA;"
.Execute
End With
'-------------------------------------------

Porém, se vc optar pela primeira opção, vc deve fazer o seguinte:


Seleciona o campo ou campos
'------------------------------------------
RsSel.Open "SELECT * FROM TABELA WHERE Field = ?;", CnnCon
'------------------------------------------

Aí se faz as outras operações:

RsSel.AddNew "lista de Campos", "Valores"

RsSel.Delete "opção"

RsSel.Update "lista de Campos", "Valores"

Eu particularmente uso o Command, pq é mais consistente.

Tá aí, espero q sirva para ajudá-lo.
USUARIO.EXCLUIDOS 10/09/2007 15:42:39
#234917
eu consegui esse exemplo que alias é muito bom
ele compara duas tabelas e atualiza o banco antigo.

eu encontrei um erro que aparece quando tem mais de um indice na tabela...alguem sabe corrigir isso?
SERGIO.CARDOSO 10/09/2007 16:04:02
#234923
No arquivo anexado faltou o frmAtualizaBanco.frm ...
USUARIO.EXCLUIDOS 10/09/2007 16:11:12
#234926
desculpa... :D
ta ai o arquivo...
SERGIO.CARDOSO 10/09/2007 16:38:31
#234929
Aqui tem bastante coisa ...

http://macoratti.net/indsql.htm
USUARIO.EXCLUIDOS 10/09/2007 16:46:37
#234930
mas nao saberia me dizer porque ocorre esse errinho?
pois ja esta pronto...
USUARIO.EXCLUIDOS 10/09/2007 17:32:29
#234944
por favor me ajudem
preciso muito disso
Página 1 de 2 [11 registro(s)]
Tópico encerrado , respostas não são mais permitidas