BANCO DE DADOS ACCESS 97

XXZEROXX 21/12/2009 13:58:19
#330200
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
F001E 21/12/2009 14:13:01
#330204
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...
WEBMASTER 21/12/2009 14:13:44
#330205
Resposta escolhida
Verifique as referencias dentro do menu projeto -> referencias, as versoes citadas usam mecanismos diferentes.
Voce usa ADO, ele desenvolveu provavelmente usando DAO.
XXZEROXX 21/12/2009 14:18:13
#330206
esta a microsoft dao 3.51 .....
XXZEROXX 21/12/2009 14:21:20
#330207
o que que precisa mudar agora ??
XXZEROXX 21/12/2009 14:29:07
#330209
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
XXZEROXX 21/12/2009 14:50:01
#330215
ALGUEM ??
ALVAROVB2009 22/12/2009 09:01:35
#330253
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)
XXZEROXX 22/12/2009 09:24:56
#330255
Putz kra o codigo ta certinho só que voltou a dar erro no banco de dados .... Unrecognized data base format ....
JPAULO101 22/12/2009 09:37:17
#330257
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]

DANIKULL 22/12/2009 10:12:58
#330261
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

[ô]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