BANCO DE DADOS ACCESS 97
Eae pessoal ..
Seguinte eu e um colega meu começamos um projeto só que ele coemçou com o banco de dados do access 97 e eu poreciso editar esse banco de dados agora (eu tenho o office 2007) mas quando eu converto ele para o formato 2002 - 2003 ele da um erro no codigo ...
Codigo
Public BD As Database
Public RL As Recordset
Public RD As Recordset
Public RF As Recordset
Public Sub abre_banco()
Set BD = OpenDatabase(App.Path & [Ô]\bd98.mdb[Ô], False)
Set RL = BD.OpenRecordset([Ô]tabelalotes[Ô], dbOpenDynaset)
Set RD = BD.OpenRecordset([Ô]tabeladetalhes[Ô], dbOpenDynaset)
[ô]Set RF = BD.OpenRecordset([Ô]tabeladetalhes[Ô], dbOpenDynaset)
End Sub
o banco de dados esta no mesmo nome do antigo que era a versão do access 97 mas ele fala que não é possÃvel encontrar ?? o que eu posso fazer
Seguinte eu e um colega meu começamos um projeto só que ele coemçou com o banco de dados do access 97 e eu poreciso editar esse banco de dados agora (eu tenho o office 2007) mas quando eu converto ele para o formato 2002 - 2003 ele da um erro no codigo ...
Codigo
Public BD As Database
Public RL As Recordset
Public RD As Recordset
Public RF As Recordset
Public Sub abre_banco()
Set BD = OpenDatabase(App.Path & [Ô]\bd98.mdb[Ô], False)
Set RL = BD.OpenRecordset([Ô]tabelalotes[Ô], dbOpenDynaset)
Set RD = BD.OpenRecordset([Ô]tabeladetalhes[Ô], dbOpenDynaset)
[ô]Set RF = BD.OpenRecordset([Ô]tabeladetalhes[Ô], dbOpenDynaset)
End Sub
o banco de dados esta no mesmo nome do antigo que era a versão do access 97 mas ele fala que não é possÃvel encontrar ?? o que eu posso fazer
Verifica na Referencia do Projeto se o DAO, ou RDO ou o ADO, não sei qual conexão voce esta usandoi, esteja em uma versão mais Atualizada....pode ser que a Referencia esteja em uma Versão Antiga e vc tente conectar um Banco mais novo....pode ser isso...
Verifique as referencias dentro do menu projeto -> referencias, as versoes citadas usam mecanismos diferentes.
Voce usa ADO, ele desenvolveu provavelmente usando DAO.
Voce usa ADO, ele desenvolveu provavelmente usando DAO.
esta a microsoft dao 3.51 .....
o que que precisa mudar agora ??
eu mudei a versão do DAO para a 3.6 ... e parece que não deu erro mais na localização do banco de dados ... mas agora ele ta dando erro na seguinte linha
Set RL = BD.OpenRecordset([Ô]tabelalotes[Ô], dbOpenDynaset)
ta dando type mismatch
Set RL = BD.OpenRecordset([Ô]tabelalotes[Ô], dbOpenDynaset)
ta dando type mismatch
ALGUEM ??
XXZEROXX da uma olhada na opção Microsoft Access X.0 Object Library, selecione a de maior versão e apenas um detalhe.
E procure mudar a abertura do banco também, talvez possa ser isso também, segue o meu exemplo
Set DB = OpenDatabase(App.Path & [Ô]\sebo.mdb[Ô])
Set Pagar = DB.OpenRecordset([Ô]Pagar[Ô], dbOpenTable)
E procure mudar a abertura do banco também, talvez possa ser isso também, segue o meu exemplo
Set DB = OpenDatabase(App.Path & [Ô]\sebo.mdb[Ô])
Set Pagar = DB.OpenRecordset([Ô]Pagar[Ô], dbOpenTable)
Putz kra o codigo ta certinho só que voltou a dar erro no banco de dados .... Unrecognized data base format ....
XXZEROXX, vai no menu projeto -> referencias e muda para Microsoft ADO 2.7, e dopis posta sua conexão, pois a conexão com ADO e diferente do DAO, segue em exemplo:
[txt-color=#007100]Na seção geration coloca[/txt-color]
Option Explicit
[txt-color=#0000f0]Public [/txt-color]cnn [txt-color=#0000f0]As New[/txt-color] ADODB.Connection
[txt-color=#0000f0]Public[/txt-color] rs [txt-color=#0000f0]As New[/txt-color] ADODB.Recordset
[ô]-----------------------------------------------------------[ô]
[txt-color=#0000f0]Public Function [/txt-color]Conex()
[txt-color=#0000f0]Dim[/txt-color] Endereco [txt-color=#0000f0]As String[/txt-color]
[txt-color=#0000f0]Set[/txt-color] cnn = New ADODB.Connection
Endereco = App.Path & [Ô]\seu banco.mdb[Ô]
cnn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & Endereco
[txt-color=#0000f0]End Function[/txt-color]
[txt-color=#0000f0]
Public Function[/txt-color] Desconex()
cnn.Close
[txt-color=#0000f0]Set[/txt-color] cnn = [txt-color=#0000f0]Nothing[/txt-color]
[txt-color=#0000f0]End Function[/txt-color]
[txt-color=#007100]Na seção geration coloca[/txt-color]
Option Explicit
[txt-color=#0000f0]Public [/txt-color]cnn [txt-color=#0000f0]As New[/txt-color] ADODB.Connection
[txt-color=#0000f0]Public[/txt-color] rs [txt-color=#0000f0]As New[/txt-color] ADODB.Recordset
[ô]-----------------------------------------------------------[ô]
[txt-color=#0000f0]Public Function [/txt-color]Conex()
[txt-color=#0000f0]Dim[/txt-color] Endereco [txt-color=#0000f0]As String[/txt-color]
[txt-color=#0000f0]Set[/txt-color] cnn = New ADODB.Connection
Endereco = App.Path & [Ô]\seu banco.mdb[Ô]
cnn.Open [Ô]Provider=Microsoft.Jet.OLEDB.4.0;Data Source=[Ô] & Endereco
[txt-color=#0000f0]End Function[/txt-color]
[txt-color=#0000f0]
Public Function[/txt-color] Desconex()
cnn.Close
[txt-color=#0000f0]Set[/txt-color] cnn = [txt-color=#0000f0]Nothing[/txt-color]
[txt-color=#0000f0]End Function[/txt-color]
XXZEROXX, bom dia.
Primeiro me diz uma coisa, você tem o SP6 do VB instaládo?? se tiver segue me exemplo:
Eu utilizo a seguinte referencia:
[Ô]Microsoft ActiveX Data Objects 2.5 Library[Ô]
e para conectar faço da seguinte forma:
Tenho uma rotina de conexao com o Banco de Dados que é feita na abertura do sistema, porem não abro nem uma tabela ainda
Pode parecer meio confuso a stgring de conexão mais é que eu uso o MySql, para Access segue abaixo:
Espero que ajude.
Primeiro me diz uma coisa, você tem o SP6 do VB instaládo?? se tiver segue me exemplo:
Eu utilizo a seguinte referencia:
[Ô]Microsoft ActiveX Data Objects 2.5 Library[Ô]
e para conectar faço da seguinte forma:
Tenho uma rotina de conexao com o Banco de Dados que é feita na abertura do sistema, porem não abro nem uma tabela ainda
[ô]Variáveis do tipo Global
Public ERPConn As ADODB.Connection
Public ERPChamado As ADODB.Recordset [ô]tabela de chamados técnico
Public Sub DataBaseConnection()
On Error GoTo Abrir
Dim StrConnection As String
StrConnection = [Ô]DRIVER={[Ô] & SGASysDriver & [Ô]};[Ô] & _
[Ô]SERVER=[Ô] & SGASysServer & [Ô];[Ô] & _
[Ô]PORT=[Ô] & SGASysPort & [Ô];[Ô] & _
[Ô]DATABASE=[Ô] & SGASysDataBase & [Ô];[Ô] & _
[Ô]USER=[Ô] & SGASysUser & [Ô];[Ô] & _
[Ô]PASSWORD=[Ô] & SGASysPass & [Ô];[Ô] & _
[Ô]OPTION=35[Ô]
Set ERPConn = New ADODB.Connection
With ERPConn
.CursorLocation = adUseClient
.ConnectionString = StrConnection
.Mode = adModeShareExclusive
.Open StrConnection
ERPOpen = True
End With
Exit Sub
Abrir:
Msg1 = [Ô][Ô]
Msg1 = Msg1 & [Ô] ** ERRO ** [Ô] & vbNewLine & vbNewLine
Msg1 = Msg1 & [Ô]Erro nº.: [Ô] & Err.Number & vbNewLine
Msg1 = Msg1 & [Ô]Não foi possÃvel realizar a conexão com a base de dados.[Ô] & vbNewLine
Msg1 = Msg1 & [Ô]Driver incompatÃvel.[Ô] & vbNewLine & vbNewLine
Msg1 = Msg1 & [Ô] ** AJUDA ** [Ô] & vbNewLine & vbNewLine
Msg1 = Msg1 & [Ô]Verifique nos parâmetros inciais se as informações refente[Ô] & vbNewLine
Msg1 = Msg1 & [Ô]ao Driver de conexão estão corretos. Deseja verifica-los agora???[Ô] & vbNewLine & vbNewLine
If MsgBox(Msg1, vbCritical + vbYesNo, [Ô]Conexao com Banco de Dados[Ô]) = vbYes Then
[ô]Aqui faço o tratamento do erro de abertura do banco de dados
Else
End
End If
End Sub
[ô]Esta rotina só é invocada quando abro a tela, neste caso de chamados de assistência técnica
Public Function ConectaTabelaChamado()
Set ERPChamado = New ADODB.Recordset
With ERPChamado
.CursorType = adOpenStatic
.CursorLocation = adUseClient
.LockType = adLockPessimistic
.Source = [Ô]Select * From CHAT[Ô]
.ActiveConnection = ERPConn
.Open
End With
End Function
Pode parecer meio confuso a stgring de conexão mais é que eu uso o MySql, para Access segue abaixo:
With ERPConn
.Provider = [Ô]Microsoft.JET.OLEDB.4.0[Ô]
.ConnectionString = (Diretorio_onde_esta_o_Banco_de_Dados + [Ô]\[Ô] + Nome_do_seu_Banco_de_Dados.mdb)
.Mode = adModeShareExclusive
.Open
End With
Espero que ajude.
Tópico encerrado , respostas não são mais permitidas