MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Navegação entre registros

    avatar
    Azelha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 12
    Registrado : 09/11/2012

    [Resolvido]Navegação entre registros Empty Navegação entre registros

    Mensagem  Azelha 17/12/2012, 16:24

    Já tive algumas "brincadeiras" com access mas nunca me aventurei com a conexão via VBA, hoje experimentei! Uma tabela e formulário fiz umas buscas, (Que grande confusão) mas consegui ligar-me à base de dados e à tabela, onde inseri 3 registos, para os visualizar no formulário, porém não consigo navegar entre eles. A tabela tem 3 registos, no entanto o "objecto" de botões de navegação só indica a existência de 1 registo.

    Código:

    Option Compare Database
    Option Explicit

    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset

    Private Sub cmdPrevious_Click()
    rst.MovePrevious
    End Sub

    Private Sub cmdSeguinte_Click()
    rst.MoveNext
    End Sub

    Private Sub Form_Load()
    Set cnx = New ADODB.Connection
    cnx.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0; Data Source = C:\Users\daddy\Desktop\tstConectaAdo\dbConnecta.mdb"
    cnx.Open

    Set rst = New ADODB.Recordset
    rst.Open "select * from tblTeste", cnx, adOpenKeyset, adLockOptimistic
    rst.MoveLast

    txtCamp1 = rst.Fields("Campo1")
    txtCamp2 = rst.Fields("Campo2")

    End Sub

    Será possivel ajudarem-me? Obrigado.
    avatar
    Azelha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 12
    Registrado : 09/11/2012

    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Azelha 17/12/2012, 17:31

    Resolvi em parte.

    Como não acrescentei estas linhas "txtCamp1 = rst.Fields("Campo1")txtCamp2 = rst.Fields("Campo2") aos eventos MoveNext ou MovePrevious ainda que se movimentasse mostrava sempre o mesmo conteudo, daí eu dizer que não navegava pelos registos.

    Mas causou outro problema, quando chega ao fim dos registos (First or Last) mostra uma mensagem de erro e pára o código.[Resolvido]Navegação entre registros Errojy
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Alexandre Neves 17/12/2012, 18:39

    Boa tarde,
    Coloque
    Option Compare Database
    Option Explicit

    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset

    Private Sub cmdPrevious_Click()
    if not rst.bof then rst.MovePrevious
    End Sub

    Private Sub cmdSeguinte_Click()
    if not rst.eof then rst.MoveNext
    End Sub

    Private Sub Form_Load()
    Set cnx = New ADODB.Connection
    cnx.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0; Data Source = C:\Users\daddy\Desktop\tstConectaAdo\dbConnecta.mdb"
    cnx.Open

    Set rst = New ADODB.Recordset
    rst.Open "select * from tblTeste", cnx, adOpenKeyset, adLockOptimistic
    rst.MoveLast

    txtCamp1 = rst.Fields("Campo1")
    txtCamp2 = rst.Fields("Campo2")

    End Sub


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Azelha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 12
    Registrado : 09/11/2012

    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Azelha 17/12/2012, 19:22

    Tudo na mesma, a mensagem mantém-se o Debug, aponta txtCamp1 = rst.Fields("Campo1")

    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Alexandre Neves 17/12/2012, 19:23

    veja o conteúdo do registo, pode ser nulo


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Azelha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 12
    Registrado : 09/11/2012

    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Azelha 17/12/2012, 19:37

    A tabela está preenchida, só tem 3 registos, o erro ocorre quando ultrapassa os registos.

    Obrigado

    Anexei o "projecto"
    Anexos
    [Resolvido]Navegação entre registros AttachmentdbConnecta.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (66 Kb) Baixado 13 vez(es)
    avatar
    Azelha
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 12
    Registrado : 09/11/2012

    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Azelha 18/12/2012, 15:23

    Dim cnx As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim numreg As Integer
    Sub carrega()
    If Not (rst.BOF = True Or rst.EOF = True) Then
    txtCamp1 = rst.Fields(1)
    txtCamp2 = rst.Fields(2)
    Else
    MsgBox ("Chegou ao fim dos registos"), vbCritical
    End If
    End Sub
    Private Sub cmdCount_Click()
    numreg = rst.RecordCount
    MsgBox "Existem " & numreg
    End Sub
    Private Sub cmdPrevious_Click()
    If Not (rst.BOF = True) Then
    rst.MovePrevious
    carrega
    End If
    End Sub

    Private Sub cmdSeguinte_Click()
    If Not (rst.EOF = True) Then
    rst.MoveNext
    carrega
    End If
    End Sub

    Private Sub Form_Load()
    Set cnx = New ADODB.Connection
    cnx.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0; Data Source = C:\Users\daddy\Desktop\tstConectaAdo\dbConnecta.mdb"
    cnx.Open
    Set rst = New ADODB.Recordset
    rst.Open "select * from tblTeste", cnx, adOpenKeyset, adLockOptimistic
    rst.MoveLast
    carrega
    End Sub

    Conteúdo patrocinado


    [Resolvido]Navegação entre registros Empty Re: [Resolvido]Navegação entre registros

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 19:46