Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

nereu1301

[Resolvido] registro anterior e proximo

Recommended Posts

novamente peço vossa ajuda

Está me retornando a mensagem Compile error: invalid or unqualified referense na Private Sub Mostrar , mas já conferi todas as linhas e nada está errado.

Se alguem puder indicar oque pode estar errado, agradeço.

 

Private Sub ProximoRegistro()
Dim cnnComando As New ADODB.Command
Dim rsSelecao As New ADODB.Recordset
	With cnnComando
		.ActiveConnection = cnnkasInf
		.CommandType = adCmdText
		.CommandText = "Select * From Clientes"
		Set rsSelecao = .Execute
		rsSelecao.MoveNext
		If rsSelecao.EOF = True Then
			rsSelecao.MovePrevious
		End If
	End With
Mostrar
End Sub

Private Sub RegistroAnterior()
Dim cnnComando As New ADODB.Command
Dim rsSelecao As New ADODB.Recordset
	With cnnComando
		.ActiveConnection = cnnkasInf
		.CommandType = adCmdText
		.CommandText = "Select * From Clientes"
		Set rsSelecao = .Execute
		If rsSelecao.BOF = True Then
			rsSelecao.MoveNext
		End If
	End With
Mostrar
End Sub

Private Sub Mostrar()
	TxtCodCliente.Text = !Codigo_Cliente
	TxtNomeCliente.Text = !Nome_Cliente
	TxtTel.Text = !Telefone
	TxtCidade.Text = !Cidade
	TxtDataInicioServico.Text = !Data_Inicio_Servico
	TxtHoraInicioServico.Text = !Hora_Inicio_Servico
	TxtProduto.Text = !Produto
	TxtMotivo.Text = !Motivo
	TxtObs.Text = !Obs
End Sub

Fico no aguardo

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Nereu.

 

O que é isso?

 

!Codigo_cliente
!Nome_cliente
!telefone

Suponho que você queria que o valor da tabela aparecece ai né.

 

Pra começar, você abriu sua conexão e abriu sua vairável recordset e connection como dim. Já ai tem um erro, pois elas só funcionam dentro dessa sub.

E outra coisa, quando arrumar isso, a forma correta é assim:

rsSelecao!Codigo_cliente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu camarada Claudio Neto,

como voce deve ter percebido estou estreando no VB( eu entendo bem de ACCESS), então tento de tudo pra resolver sozinho e quando não consigo peço pra quem é mestre.

Eu já tinha testado com:

 

TxtCodCliente.Text = rsSelecao!Codigo_Cliente

 

mas não tinha dado certo.

Claro,

Tinha até testado com o recorset, mas deixado o connection de fora e ai não fuincionava. Agora me liguei: ou declaro as duas variaveis como Public ou vou usando conforme minha necessidade.

 

Já testei e tá funcionando.

 

Obrigado

Nereu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que conseguiu e obrigado por compartilhar a solução.

 

 

Qualquer dúvida grita!

 

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nao se se é possivel voltar para esse topico, entao vou colocar o problema se for possivel me ajudar auqi beleza senao me dem um toque.

Considerei resolvido mas depois vi que ele me retornava nas duas sub o primeiro lancamento da minha tabela, que nao está certo claro.

Entao depois de muitas tentativas sem solucao e buscas inuteis, voltei pra pedir socorro.

 

Fiz umas alteraçoes:

na general

Dim rsSelecao As New ADODB.Recordset
Dim cnnComando As New ADODB.Command

nas subs

Private Sub ProximoRegistro()
    With cnnComando
        .ActiveConnection = cnnCetecInfServiços
        .CommandType = adCmdText
        .CommandText = "Select * From Clientes WHERE Codigo_Cliente = " & TxtCodCliente.Text & ";"
    If Not rsSelecao.BOF = True Then
        rsSelecao.MoveNext
    End If
    End With
Mostrar
End Sub
Private Sub RegistroAnterior()
    With cnnComando
        .ActiveConnection = cnnCetecInfServiços
        .CommandType = adCmdText
        .CommandText = "Select * From Clientes WHERE Codigo_Cliente = " & TxtCodCliente.Text & ";"
    If Not rsSelecao.BOF = True Then
        rsSelecao.MovePrevious
    End If
    End With
Mostrar
End Sub

Private Sub Mostrar()
    TxtCodCliente.Text = rsSelecao!Codigo_Cliente
    TxtNomeCliente.Text = rsSelecao!Nome
    TxtTel.Text = rsSelecao!Telefone
    TxtCidade.Text = rsSelecao!Cidade
    TxtDataInicioServico.Text = rsSelecao!Data_Inicio_Servico
    TxtHoraInicioServico.Text = rsSelecao!Hora_Inicio_Servico
    TxtProduto.Text = rsSelecao!Produto
    TxtMotivo.Text = rsSelecao!Motivo_Chamada
    TxtObs.Text = rsSelecao!Obs
End Sub

retorna erro runtime 3021

BOF e EOF sao verdadeiros ou o reg atual foi excluido. o processo....

 

Se poderem me indicar onde estou errando

agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, eu não entendi porque você colocou isso dentro das Sub de proximo e anterior

 

 .CommandText = "Select * From Clientes WHERE Codigo_Cliente = " & TxtCodCliente.Text & ";"
Em algum outro lugar você usa?

 

 

 

No evento load do form, coloca para carregar toda a tabela(se quiser)

rsSelecao.Open "Select * From Clientes",cnnCetecInfServiços

If Not rsSelecao.EOF And Not rsSelecao.BOF then
    rsSelecao.MoveFirst
    Mostrar
End If

 

As sub de movimentação ficam apenas com

 

    If Not rsSelecao.EOF = True Then
        rsSelecao.MoveNext
        If Not rsSelecao.EOF = True Then
            Mostrar
        End If
    End If

E

    If Not rsSelecao.BOF = True Then
        rsSelecao.MovePrevious
        If Not rsSelecao.BOF = True Then
            Mostrar
        End If
    End If

 

tente desse jeito e veja se funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, eu não entendi porque você colocou isso dentro das Sub de proximo e anterior

 

  .CommandText = "Select * From Clientes WHERE Codigo_Cliente = " & TxtCodCliente.Text & ";"
Em algum outro lugar você usa?

 

 

 

No evento load do form, coloca para carregar toda a tabela(se quiser)

 rsSelecao.Open "Select * From Clientes",cnnCetecInfServiços
 
 If Not rsSelecao.EOF And Not rsSelecao.BOF then
     rsSelecao.MoveFirst
     Mostrar
 End If

 

As sub de movimentação ficam apenas com

 

     If Not rsSelecao.EOF = True Then
         rsSelecao.MoveNext
         If Not rsSelecao.EOF = True Then
             Mostrar
         End If
     End If

E

     If Not rsSelecao.BOF = True Then
         rsSelecao.MovePrevious
         If Not rsSelecao.BOF = True Then
             Mostrar
         End If
     End If

tente desse jeito e veja se funciona.

 

 

valeu scorpio, pela paciencia

 

na primeira sub deu certo

na segunda retornou erro 3219 operaçao nao permetida neste contexto.

 

como ele esta carregando o primeiro lancamento no evento load está indo corretamente para o proximo, mas depois nao aceita a seg sub.

 

seguinte, postei errado anteriormente porque voces mudaram a forma de responder e ai me enrolei

 

fico no aguardo

 

nereu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta mudar o tipo do cursor

rsSelecao.Open "Select * From Clientes",cnnCetecInfServiços,1

Por padrão vem como Forward-only(0).

 

O 1 é OpenKeyset

 

de uma olhada nesse link se quiser saber outros http://www.w3schools...met_rs_open.asp

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, cursor está correto, proximo e anterior funcionando certo.

Obrigado.

Já dei uma olhada no site recomendado.

Acho que vai ajudar, mas espero contar com a ajuda dos mestres ai, caso eu precise.

valeu

Abraço

Nereu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora tá resolvido então neh?! rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.