ABRIR ACCDB COM VB6 DA ERRO PARA ABIR
Pessoal estou tentando abrir o banco de dados do access 2010 que tem a extensao accdb e ta dando erro diz que nao reonhece a base.
Estou fazendo assim.
Private Sub CODIGO_GotFocus()
Dim db As Database
Dim query As String
Dim dyn As Recordset
Set db = OpenDatabase([Ô]C:\Sistema\CadastroNovo.accdb[Ô], False, False, [Ô];PWD=Senha[Ô])
query = [Ô]Select max(CODIGO) from Tabela1[Ô]
Set dyn = db.OpenRecordset(query, dbOpenDynaset)
DBEngine.Idle dbFreeLocks
If Not dyn.EOF Then
If Not IsNull(dyn(0)) Then
Codigo = Format$(Val(dyn(0)) + 1, [Ô]00000[Ô])
Else
Codigo = [Ô]00001[Ô]
End If
End If
db.Close
End Sub
Assim abro o campo codigo e inicio a numeracao automatica de registro ok.
Estou fazendo assim.
Private Sub CODIGO_GotFocus()
Dim db As Database
Dim query As String
Dim dyn As Recordset
Set db = OpenDatabase([Ô]C:\Sistema\CadastroNovo.accdb[Ô], False, False, [Ô];PWD=Senha[Ô])
query = [Ô]Select max(CODIGO) from Tabela1[Ô]
Set dyn = db.OpenRecordset(query, dbOpenDynaset)
DBEngine.Idle dbFreeLocks
If Not dyn.EOF Then
If Not IsNull(dyn(0)) Then
Codigo = Format$(Val(dyn(0)) + 1, [Ô]00000[Ô])
Else
Codigo = [Ô]00001[Ô]
End If
End If
db.Close
End Sub
Assim abro o campo codigo e inicio a numeracao automatica de registro ok.
vc ta utilizando ADO.
Não abri.
DAO.
Antigo.
Idoso.
DAO.
Antigo.
Idoso.
Alguem poderia me explicar como seria do jeito novo entao por favor!
Por acaso achei e lembrei do seu post
Segue exemplo
VB6 Access 2007 using SEEK (after convert mdb to accdb)
[ô]Code sample vb6 connecting with Ms-Access 2007/2010
[ô]Exemplo vb6 conectando com Ms-Access 2007/2010
[ô]--------------------------------------------------------
Global sDirInstall
Global sMyDB As String
[ô]---------------------------------------------------------
Sub UserInfo()
[ô]Marcar referência:
[ô]PROJECT -> REFERENCE: Microsoft ActiveX Data Objects 2.8 Library
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
sDirInstall = App.Path
sMyDB = sDirInstall & [Ô]USER.accdb[Ô]
con.Open [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & sMyDB & [Ô];Persist Security Info=False;Jet OLEDBDatabase Password=[Ô]
rs.Index = [Ô]Primarykey[Ô]
rs.CursorLocation = adUseServer
rs.Open ([Ô]tb_User[Ô]), con, adOpenDynamic, adLockOptimistic, adCmdTableDirect
Do While Not rs.EOF
MsgBox rs.Fields([Ô]Userid[Ô]) & [Ô] - [Ô] & rs.Fields([Ô]Nome[Ô])
rs.MoveNext
Loop
rs.Seek Array([Ô]NewUser[Ô]), adSeekMinEQ
If rs.EOF Then
rs.AddNew
rs.Fields([Ô]Userid[Ô]) = [Ô]NewUser[Ô]
rs.Fields([Ô]Nome[Ô]) = [Ô]USER NEW[Ô]
rs.Update
MsgBox [Ô]1 user added![Ô]
Else
rs.Fields([Ô]Nome[Ô]) = [Ô]USER NEW [Ô] & Now()
rs.Update
MsgBox [Ô]1 user changed![Ô]
End If
rs.Close
con.Close
End Sub
Segue exemplo
VB6 Access 2007 using SEEK (after convert mdb to accdb)
[ô]Code sample vb6 connecting with Ms-Access 2007/2010
[ô]Exemplo vb6 conectando com Ms-Access 2007/2010
[ô]--------------------------------------------------------
Global sDirInstall
Global sMyDB As String
[ô]---------------------------------------------------------
Sub UserInfo()
[ô]Marcar referência:
[ô]PROJECT -> REFERENCE: Microsoft ActiveX Data Objects 2.8 Library
Dim con As ADODB.Connection
Dim rs As ADODB.Recordset
Set con = New ADODB.Connection
Set rs = New ADODB.Recordset
sDirInstall = App.Path
sMyDB = sDirInstall & [Ô]USER.accdb[Ô]
con.Open [Ô]Provider=Microsoft.ACE.OLEDB.12.0;Data Source=[Ô] & sMyDB & [Ô];Persist Security Info=False;Jet OLEDBDatabase Password=[Ô]
rs.Index = [Ô]Primarykey[Ô]
rs.CursorLocation = adUseServer
rs.Open ([Ô]tb_User[Ô]), con, adOpenDynamic, adLockOptimistic, adCmdTableDirect
Do While Not rs.EOF
MsgBox rs.Fields([Ô]Userid[Ô]) & [Ô] - [Ô] & rs.Fields([Ô]Nome[Ô])
rs.MoveNext
Loop
rs.Seek Array([Ô]NewUser[Ô]), adSeekMinEQ
If rs.EOF Then
rs.AddNew
rs.Fields([Ô]Userid[Ô]) = [Ô]NewUser[Ô]
rs.Fields([Ô]Nome[Ô]) = [Ô]USER NEW[Ô]
rs.Update
MsgBox [Ô]1 user added![Ô]
Else
rs.Fields([Ô]Nome[Ô]) = [Ô]USER NEW [Ô] & Now()
rs.Update
MsgBox [Ô]1 user changed![Ô]
End If
rs.Close
con.Close
End Sub
Jesus nao consegui compreender acho que tava bem idoso mesmo na programacao em vb hehehehe
Este é jeito simples de abrir Banco de Dados e tabelas com Ado e Access .accdb
Explicações:
[CursorType]: Opcional. Um valor CursorTypeEnum que determina o tipo de cursor que o provedor deve usar ao abrir o Recordset. Pode ser uma das seguintes constantes:
Constante
Descrição
adOpenForwardOnly
Cursor somente progressivo. Padrão. Idêntico ao cursor estático exceto pelo fato de que é possÃvel somente efetuar rolagem progressiva pelos registros. Isso melhora o desempenho em situações em que é necessária somente uma passagem pelo recordset.
adOpenKeyset
Cursor do conjunto de teclas. Como um cursor dinâmico, exceto pelo fato de que não é possÃvel consultar os registros que outros usuário adicionaram, embora os registros excluÃdos por outros usuários sejam inacessÃveis a partir do recordset. As alterações nos dados feitas por outros usuários permanecem visÃveis.
adOpenDynamic
Cursor dinâmico. Adições, alterações e exclusões feitas por outros usuários são visÃveis e todos os tipos de movimentos pelo recordset são permitidos, exceto indicadores, se o provedor não der suporte a eles.
adOpenStatic
Cursor estático. Uma cópia estática de um recordset que pode ser usada para localizar dados ou gerar relatórios. Adições, alterações ou exclusões feitas por outros usuários não são visÃveis.
[LockType]: Opcional. Um valor LockTypeEnum que determina qual tipo de bloqueio (simultaneidade) o provedor deve usar ao abrir o Recordset. Pode ser uma das seguintes constantes:
Constante
Descrição
adLockReadOnly
Padrão. Somente leitura - não é possÃvel alterar os dados.
adLockPessimistic
Bloqueio pessimista, registro por registro - o provedor faz o que for necessário para garantir o êxito da edição dos registros, em geral, bloqueando-os na fonte de dados imediatamente acima de uma edição.
adLockOptimistic
Bloqueio otimista, registro por registro - o provedor usa o bloqueio otimista, bloqueando os registros somente quando o método Update for chamado.
adLockBatchOptimistic
Atualizações em lotes otimistas - necessárias para o modo de atualização em lotes em oposição ao modo de atualização imediata.
Explicações:
[CursorType]: Opcional. Um valor CursorTypeEnum que determina o tipo de cursor que o provedor deve usar ao abrir o Recordset. Pode ser uma das seguintes constantes:
Constante
Descrição
adOpenForwardOnly
Cursor somente progressivo. Padrão. Idêntico ao cursor estático exceto pelo fato de que é possÃvel somente efetuar rolagem progressiva pelos registros. Isso melhora o desempenho em situações em que é necessária somente uma passagem pelo recordset.
adOpenKeyset
Cursor do conjunto de teclas. Como um cursor dinâmico, exceto pelo fato de que não é possÃvel consultar os registros que outros usuário adicionaram, embora os registros excluÃdos por outros usuários sejam inacessÃveis a partir do recordset. As alterações nos dados feitas por outros usuários permanecem visÃveis.
adOpenDynamic
Cursor dinâmico. Adições, alterações e exclusões feitas por outros usuários são visÃveis e todos os tipos de movimentos pelo recordset são permitidos, exceto indicadores, se o provedor não der suporte a eles.
adOpenStatic
Cursor estático. Uma cópia estática de um recordset que pode ser usada para localizar dados ou gerar relatórios. Adições, alterações ou exclusões feitas por outros usuários não são visÃveis.
[LockType]: Opcional. Um valor LockTypeEnum que determina qual tipo de bloqueio (simultaneidade) o provedor deve usar ao abrir o Recordset. Pode ser uma das seguintes constantes:
Constante
Descrição
adLockReadOnly
Padrão. Somente leitura - não é possÃvel alterar os dados.
adLockPessimistic
Bloqueio pessimista, registro por registro - o provedor faz o que for necessário para garantir o êxito da edição dos registros, em geral, bloqueando-os na fonte de dados imediatamente acima de uma edição.
adLockOptimistic
Bloqueio otimista, registro por registro - o provedor usa o bloqueio otimista, bloqueando os registros somente quando o método Update for chamado.
adLockBatchOptimistic
Atualizações em lotes otimistas - necessárias para o modo de atualização em lotes em oposição ao modo de atualização imediata.
Omar obrigado pela dica agora começo a enteder..
E como ficaria a operacao de adicionar registros?
E como ficaria a operacao de adicionar registros?
Para abir você entendeu .....
para adicionar:
Private TB As ADODB.Recordset
[ô]adiciona novo registro
TB.AddNew
[ô]coloca novos valores
TB([Ô]RazãoSocial[Ô]) = mRazãoSocial
TB([Ô]VÃnculo[Ô]) = mVÃnculo
[ô]atualizando registro na tabela
TB.Update
para adicionar:
Private TB As ADODB.Recordset
[ô]adiciona novo registro
TB.AddNew
[ô]coloca novos valores
TB([Ô]RazãoSocial[Ô]) = mRazãoSocial
TB([Ô]VÃnculo[Ô]) = mVÃnculo
[ô]atualizando registro na tabela
TB.Update
Faça seu login para responder