Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

caezar

Conecção com BD Access

Recommended Posts

Amigos,

Estou aprendendo a fazer uma conecção access e criei um BD chamado TesteBD nele criei uma tabela chamada tabUser, e três campos nessa tabela chamados codUser, nome e tel.

 

No visual criei um form chamado formConec e nele inseri três TextBox com os respectivos nomes TextUserCod, TextNome, TextTel.

 

Criei um Módulo chamado Conec para fazer a conecção com o BD.

Abaixo o código:

 

Global cn As New ADODB.ConnectionGlobal rs As New ADODB.RecordsetPrivate Sub Main()Dim strArquivo As StringDim strLocal As StringDim Conecta As StringLoad frmConecfrmConec.ShowDoEventsSet cn = New ADODB.ConnectionSet rs = New ADODB.RecordsetstrArquivo = "TesteBD.mdb"strLocal = App.PathSet cn = creatobject("ADODB.Connection")Conecta = "driver{Microsoft Access Driver (*.mdb)};" & "Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"cn.Open ConectaEnd Sub
Agora falta fazer uma coisa que eu ainda não sei.

Eu quero que ao executar a aplicação apareção os dados nos TextBox's do form mas eu não sei como fazer isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim:

set rs = cn.execute("select * from tabuser")txtcoduser = rs("coduseR")txtnome = rs("nome")txttel = rs("tel")
Tipo essa sua string de conexão da pra usa ro Jet 4.0 tb:

conecta = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strLocal & "\" & strArquivo & ";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tipo essa sua string de conexão da pra usa ro Jet 4.0 tb:

conecta = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strLocal & "\" & strArquivo & ";"

<{POST_SNAPBACK}>

Amigo não intendi o que você quiz me exolicar na linha acima??

Eu usso o Access 2002!

Compartilhar este post


Link para o post
Compartilhar em outros sites

String de conexão é o nome do 'texto' que a gente usa pra conectar ao BD.

Você esta usando assim:

Conecta = "driver{Microsoft Access Driver (*.mdb)};" & "Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"
Mas tb da pra usar assim (num sei se para BD no formato do Access 2002 funciona):
conecta = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strLocal & "\" & strArquivo & ";"

Compartilhar este post


Link para o post
Compartilhar em outros sites

String de conexão é o nome do 'texto' que a gente usa pra conectar ao BD.

Você esta usando assim:

Conecta = "driver{Microsoft Access Driver (*.mdb)};" & "Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"
Mas tb da pra usar assim (num sei se para BD no formato do Access 2002 funciona):
conecta = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strLocal & "\" & strArquivo & ";"

<{POST_SNAPBACK}>

Obrigado amigo,

É que eu estou começando a pouco com VB.

Por que seria melhor usar está string?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, não consegui.

Coloquei o código que você me passou no formuário desta forma:

Private Sub Form_Load()Call montarListaEnd SubPrivate Sub montarLista()Set rs = cn.Execute("select * from tabuser")txtcoduser = rs("coduser")txtnome = rs("nome")txttel = rs("tel")End Sub
E ele me retomou o seguinte erro:

 

Run-time error '3704':

Operação não permitida quando o objeto está fechado.

 

O que ocorre?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro você tem quem executar a rotina que abre a conexão com o BD:

Private Sub Main()Dim strArquivo As StringDim strLocal As StringDim Conecta As StringLoad frmConecfrmConec.ShowDoEventsSet cn = New ADODB.ConnectionSet rs = New ADODB.RecordsetstrArquivo = "TesteBD.mdb"strLocal = App.PathSet cn = creatobject("ADODB.Connection")Conecta = "driver{Microsoft Access Driver (*.mdb)};" & "Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"cn.Open ConectaEnd Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu coloquei o módulo para executar primeiro. defini nas propriedades do projeto, para que ele inicialize primeiro pelo Sub Main().

Mas ele da o mesmo problema e quando eu aperto debug ele me mostra que o erro está nesta linha:

Set rs = cn.Execute("select * from tabuser")
E ele me retomou o seguinte erro:

 

Run-time error '3704':

Operação não permitida quando o objeto está fechado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente tem que dar um open no objeto cn que é do Tipo Connection

 

Cn.open StringdeConexao'Agora pode usar este comando abaixoSet rs = cn.Execute("select * from tabuser")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ocorreu outro erro:

Run-time error '-2147467259 (80004005)'

[Microsoft][ODBC Driver Manager] Nome da fonte de dados não encontrado e nenhum driver padrão especificado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua string de conexão ta errada faz assim:

StringDeConexao = "{Microsoft Access Driver (*.mdb)};Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"
Se continuar dando erro verifica o caminho certo do BD

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sua string de conexão ta errada faz assim:

StringDeConexao = "{Microsoft Access Driver (*.mdb)};Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"
Se continuar dando erro verifica o caminho certo do BD

<{POST_SNAPBACK}>

Desculpe estar te incomodando com esse problema.

Eu mudei o a strng como você falou e o problema percistiu.

Então verifiquei o local do BD que é C:\Documents and Settings\home\Meus documentos\Caio\Engeval\TesteConec\TesteConec

e mudei algumas linhas do código.

Na verdade coloquei o código do formulário dentro do módulo com o caminho exato do BD desta forma:

Global cn As New ADODB.ConnectionGlobal rs As New ADODB.RecordsetPrivate Sub Main()Dim strArquivo As StringDim strLocal As StringDim Conecta As StringLoad frmConecfrmConec.ShowDoEventsSet cn = New ADODB.ConnectionSet rs = New ADODB.RecordsetstrArquivo = "TesteBD.mdb"strLocal = "C:\Documents and Settings\home\Meus Documentos\Caio\Engeval\TesteConec\TesteConec\"Set cn = CreateObject("ADODB.Connection")Conecta = "{Microsoft Access Driver (*.mdb)};Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"cn.Open ConectaSet rs = cn.Execute("select * from tabuser")txtcoduser = rs("coduseR")txtnome = rs("nome")txttel = rs("tel")End Sub
MAs o erro continuou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

OPs cara escrevi errado -.-, malz ae nem tinha percebido.

Essa é a certa:

StringDeConexao = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"
Mal ae

 

Qualquer coisa da uma olhadinha nesse tópico sobre string de conexão:

Criando Vária Conexões

Compartilhar este post


Link para o post
Compartilhar em outros sites

OPs cara escrevi errado -.-, malz ae nem tinha percebido.

Essa é a certa:

StringDeConexao = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & strArquivo & ";" & "DefaultDir=" & strLocal & ";" & "Uid=Admin;Pwd=;"
Mal ae

 

Qualquer coisa da uma olhadinha nesse tópico sobre string de conexão:

Criando Vária Conexões

<{POST_SNAPBACK}>

E ai amigo, tudo bem?

Meu problema ainda continua a me atrazar no o meu aprendizado.

Nunca pensei que seria tão dificil fazer uma simples conecção com um BD.

Será que você poderia testar estes código para mim e me explicar quais as referências utilizadas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tira esse parâmentro defaultdir e coloca tudo no dbq:

StringDeConexao = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" strLocal & "\" & strArquivo & ";" & "Uid=Admin;Pwd=;"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos, tentei tudo o que vcs mencionaram e nada, abaixo as imagens da minha aplicação!

Tem que ter algo errado!

 

Referencias:

 

Imagem Postada

 

Layout:

 

Imagem Postada

 

Módulo:

 

Imagem Postada

 

Código do Form + Erro, lembrado que a linha que o Debug indica o erro é a cn.Open Conecta

 

Imagem Postada

 

A Esperança continua!!!!!!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude sua string de conexão:

 

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\myDb.mdb;" & _            "User Id=admin;" & _           "Password="A""

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mude sua string de conexão:

 

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _           "Data Source=c:\somepath\myDb.mdb;" & _            "User Id=admin;" & _           "Password="A""

<{POST_SNAPBACK}>

Ok, mas o que é iConn?

Onde eu ponho a variavel Conecta que eu criei?

Como ficaria o módulo? Você poderia ajustá-lo para mim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atribua a sua variável Conecta.

 

Conecta= "Provider=Microsoft.Jet.OLEDB.4.0;" & _               "Data Source=c:\somepath\myDb.mdb;" & _              "User Id=admin;" & _              "Password="A""

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.