CONEXAO BANCO ACCESS
Olá amigos
gostaria de ajuda para conexão com banco de dados access, o código abaixo esta dando o seguinte erro ao se conectar.
could not find installable isam
segue o código
On Error GoTo ErrLoad
Data1.DatabaseName = DirDb & [Ô]\sistema.mdb[Ô]
Data1.RecordSource = [Ô]Select * from fornecedor order by razao,codigo[Ô]
NomeArq = [Ô]Sistema.mdb[Ô]
NomeTabela = [Ô]Fornecedor[Ô]
PathApp = DirDb
Titulo = [Ô]VBMANIA[Ô]
If Right(PathApp, 1) <> [Ô]\[Ô] Then PathApp = PathApp & [Ô]\[Ô]
Set Arq = OpenDatabase(PathApp & NomeArq)
Set Tb = Arq.OpenRecordset(NomeTabela, dbOpenDynaset)
Exit Sub
ErrLoad:
If Err = 3024 Then
MsgBox [Ô]Arquivo de dados não encontrado[Ô] & Chr(10) & [Ô]em [Ô] & PathApp, 16, Titulo
End
End If
Exit Sub
desde já agradeço pela colaboração
gostaria de ajuda para conexão com banco de dados access, o código abaixo esta dando o seguinte erro ao se conectar.
could not find installable isam
segue o código
On Error GoTo ErrLoad
Data1.DatabaseName = DirDb & [Ô]\sistema.mdb[Ô]
Data1.RecordSource = [Ô]Select * from fornecedor order by razao,codigo[Ô]
NomeArq = [Ô]Sistema.mdb[Ô]
NomeTabela = [Ô]Fornecedor[Ô]
PathApp = DirDb
Titulo = [Ô]VBMANIA[Ô]
If Right(PathApp, 1) <> [Ô]\[Ô] Then PathApp = PathApp & [Ô]\[Ô]
Set Arq = OpenDatabase(PathApp & NomeArq)
Set Tb = Arq.OpenRecordset(NomeTabela, dbOpenDynaset)
Exit Sub
ErrLoad:
If Err = 3024 Then
MsgBox [Ô]Arquivo de dados não encontrado[Ô] & Chr(10) & [Ô]em [Ô] & PathApp, 16, Titulo
End
End If
Exit Sub
desde já agradeço pela colaboração
Colega sugestão use ADO não DAO
no seu caso é pior vc usa o componente datacontrol depois tenta uma conexão DAO
bom veja bem de forma simples vá em project/references e selecione Microsoft ActiveX Data Objects Library 2.8
em um módulo coloque
a partir dai tudo fica mais facil veja
no form quando for consultar proceda da seguinte maneira
No load do Form se conecte ao banco assim
para pesquisar basta declarar o recorset na hora assim
acima fiz uma consulta que exibirá todos os dados (id e nome) em um listbox porém se for consultar um registro especifico ficaria assim:
para incluir dados no banco seria desta forma
para alterar também é simples
no update acima será feito uma alteração no nome de id 001
e por ulçtimo para excluir
que exclui o registro 001 data tabela
bom existem outras maneiras, esta é a mais simples de se explicar e trabalhar, veja bem nada impede vc tabém abrir e fechar a conexão a cada ação, veja um exemplo:
Ao invés de abrir a conexao no load e fecha-la no unload vou abrir executar minha ação e fechar assim
bom por enquanto é isso boa sorte.
no seu caso é pior vc usa o componente datacontrol depois tenta uma conexão DAO
bom veja bem de forma simples vá em project/references e selecione Microsoft ActiveX Data Objects Library 2.8
em um módulo coloque
Global conexao As New ADODB.Connection
Public Function Conecta(ByVal Valor As Boolean)
If conexao.State = 1 Then
conexao.Close
Set conexao = Nothing
Valor = True
End If
If Valor = True Then
conexao.Open [Ô]provider=microsoft.jet.oledb.4.0; data source=[Ô] & App.Path & [Ô]\seubanco.mdb;jet OLEDB:System Database=system.mdw;[Ô]
Else
conexao.Close
Set conexao = Nothing
End If
End Function
a partir dai tudo fica mais facil veja
no form quando for consultar proceda da seguinte maneira
No load do Form se conecte ao banco assim
Conecta True
para pesquisar basta declarar o recorset na hora assim
Dim RS As Recordset
Dim sSQL As String
sSQL = [Ô]SELECT * FROM suatabela [Ô]
Set RS = Conexao.Execute(sSQL)
Do While Not RS.EOF
List1.AddItem RS!id & [Ô] - [Ô] RS!nome
RS.Movenext
Loop
acima fiz uma consulta que exibirá todos os dados (id e nome) em um listbox porém se for consultar um registro especifico ficaria assim:
sSQL = [Ô]SELECT * FROM suatabela WHERE id = 001[Ô]
Set RS = Conexao.Execute(sSQL)
If Not (RS.EOF And RS.BOF) Then
msgbox RS!Nome
Else
msgbox [Ô]registro não existe[Ô]
End If
para incluir dados no banco seria desta forma
Conexao.Execute([Ô]Insert Into Tabela(id, nome) Values ([Ô] & txtId.text & [Ô],[ô][Ô] & txtNome.text & [Ô][ô])[Ô])
para alterar também é simples
Conexao.Execute([Ô]UPDATE FROM tabela SET nome = [ô][Ô] & txtnome.Text & [Ô][ô] WHERE id = 001[Ô])
no update acima será feito uma alteração no nome de id 001
e por ulçtimo para excluir
Conexao.Execute([Ô]DELETE FROM tabela WHERE id = 001[Ô])
que exclui o registro 001 data tabela
Citação:[txt-color=#e80000]Observação importante:[/txt-color]
Eu abri a conexão no evento load do form principal, e terei de fechar no evento unload do mesmo
para fechar é desta forma:Conecta False
bom existem outras maneiras, esta é a mais simples de se explicar e trabalhar, veja bem nada impede vc tabém abrir e fechar a conexão a cada ação, veja um exemplo:
Ao invés de abrir a conexao no load e fecha-la no unload vou abrir executar minha ação e fechar assim
Conecta True[txt-color=#007100] [ô] <--Abro a conexão[/txt-color]
Dim RS As Recordset
Dim sSQL As String
sSQL = [Ô]SELECT * FROM suatabela [Ô]
Set RS = Conexao.Execute(sSQL)
Do While Not RS.EOF
List1.AddItem RS!id & [Ô] - [Ô] RS!nome
RS.Movenext
Loop
Conecta False [txt-color=#007100][ô]<---Fecho a Conexao[/txt-color]
bom por enquanto é isso boa sorte.
MARAVILHA !!!
SEM DÚVIDA MARCELO CARA VOCÊ é TREZE MESMO
VALEW !!!
MUITO OBRIGADO
SEM DÚVIDA MARCELO CARA VOCÊ é TREZE MESMO
VALEW !!!
MUITO OBRIGADO
Tópico encerrado , respostas não são mais permitidas