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


5 participantes

    [Resolvido] Ordenar Registros

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Ordenar Registros

    Mensagem  andre.lr 7/11/2011, 13:58

    Amigos, pequeno problema!

    No meu formulário, possuo um campo com nome Texto158 sem vinculação a nenhuma tabela, nele coloquei o comando =LocReg() conforme abaixo, apenas para numerar automaticamente!

    Public Function LocReg()
    On Error Resume Next

    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone

    rs.MoveLast
    rs.Bookmark = Me.Bookmark

    If (Err <> 0) Then
    LocReg = rs.RecordCount + 1
    Else
    LocReg = rs.AbsolutePosition + 1
    End If

    End Function


    Os registros estão se ordenando pelo campo "Data de Emissão", porém, preciso que eles se ordenem pelo campo Texto158 que possui comando =LocReg() que citei!!

    Tentei o comando abaixo mas não adiantou.... ao abrir aparece uma caixa de dialogo dizendo pra inserir o valor padrão... Texto158 e também continua ao salvar o formulário eles ordenados pelo campo "Data de Emissão"

    Private Sub Form_Open(Cancel As Integer)

    Me.OrderBy = "Texto158"
    Me.OrderByOn = True

    End Sub



    Por favor alguem pode me ajudar?


    PS: NÃO É FORMULÁRIO CONTINUO!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  criquio 7/11/2011, 14:20

    Não entendi bem. Você quer ordenar um formulário simples de acordo o campo? Bota uns exemplos de registros para entendermos melhor.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 7/11/2011, 16:22

    Então... eu formatei um campo chamado Texto158 com o comando de =LocReg() daquela forma que postei...
    Quando eu entro em um novo registro o campo Texto158 até mostra automaticamente o número da sequência, por exemplo se tem 8 registros eu clico no botão NOVO REGISTRO então o campo texto158 já aparece preenchido com o numero da sequencia que seria 9 nesse caso.... porém quando eu preencho o registro este registro não fica sendo o numero 9 ele se ordena pelo campo Data de Emissão e se essa Data for a terceira por exemplo então o registro que era para ser o número 9 vira o número 3.....

    Eu só queria que ele ficasse na ordem do campo texto158 que tem la o comando =LocReg() independente do campo Data de Emissão!

    Essa tá meio difícil explicar mas é isso mesmo que eu falei!
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 7/11/2011, 19:55

    ninguem entendeu ainda?
    help!!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  Alexandre Neves 7/11/2011, 20:50

    Estranhei a primeira exposição mas como o amigo Críquio já lhe tinha pedido para esclarecer, aguardei.
    Para ordenar tem de indicar algum campo da tabela. Faça o seguinte:
    1 - Altere o nome da caixa de texto para TxtOrdem
    2 - Preencha, na caixa de texto, o nome do campo que pretende a ordenação
    3 - utilize o código
    Me.OrderBy = TxtOrdem
    Me.OrderByOn = True
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 8/11/2011, 10:50

    Amigos vou tentar ser bem mais claro e detalhista para que possam entender melhor o caso!
    Sei que é duro entender sem ver, mas vou tentar... se ninguem entender dou como resolvido e vou para o plano B... =D obrigado pelo esforço e paciencia de quem ter paciencia de ler tudo isso!

    O formulário chama-se "RG LA 23" e é todo composto de campos de uma tabela também chamada "RG LA 23"

    Entre vários campos 5 deles são de datas, "Data da Emissão", "Data da Abertura", "DATA", "Prazo1" e "Prazo2"

    Além desses campos de Data tenho um campo número com nome "SAP" .Na fonte do controle do campo "SAP" coloquei um comando de =LocReg() só para ele ir autonumerando os novos registros, 1, 2, 3... etc!

    Public Function LocReg()
    On Error Resume Next

    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone

    rs.MoveLast
    rs.Bookmark = Me.Bookmark

    If (Err <> 0) Then
    LocReg = rs.RecordCount + 1
    Else
    LocReg = rs.AbsolutePosition + 1
    End If

    End Function


    O botão que abre o formulário sempre vai direto para um novo registro em branco... este novo registro já aparece com o numero da sequência.... por exemplo se já tem 5 registros salvos quando eu clico para abrir o formulário ele mostra um formulário em branco com o Campo "SAP" mostrando 6....se não tem nenhum registro salvo mostra 1... e assim por diante!

    Explicado os detalhes O PROBLEMA!

    Quando preencho um novo registro e clico no botão salvar, que está com uma macro para salvar o registro, fechar o formulário, abrir o formulário e ir para um novo registro!

    Quando clico nesse botão, o registro não fica salvo com número do campo SAP que ele tinha no momento em que eu o preenchi e salvei!

    Ele se ordena pela data mais antiga de um dos 5 campos de data do formulário!

    Ou seja, se no registro eu tiver colocado uma data em qualquer um dos 5 campos de data que seja por exemplo a quarta data mais antiga entre todos os registros, então o registro mesmo que no momento em que o criei tivesse com o campo SAP mostrando 15, ele vai se posicionar com o número 4 no campo SAP,,,, por causa das benditas datas!!!

    O que eu quero é q a ordem de datas seja irrelevante e que ele fique na ordem que ele tinha no campo SAP quando foi criado!!

    Nossa confuso demais neh?

    Sad

    Já fiz o seguinte comando e não mudou nada!!

    Private Sub Form_Open(Cancel As Integer)

    Me.OrderBy = "SAP"
    Me.OrderByOn = True

    End Sub



    PS.: Detalhe, tenho 2 botões, um para correr para o próximo registro e outro para correr para o registro anterior, o campo SAP sempre está ordenado na sequencia certinha 1, 2, 3, 4 ....

    Só que quando salvo um novo registro ele se encaixa na posição de acordo com a data mais antiga q constar em um dos campos data.... =/

    Também tenho um outro formulário que serve como um MAPA de controle onde eu só visualizo não altero nada pois todos os campos dele estão com comando desfazer ao alterar, ele é continuo e só serve para visualizar alguns dados dos registros q estão sendo preenchidos....

    Nesse formulário consigo observar certinho quando crio um novo registro ele vai pra ordem q a data mais antiga mandar....

    Bom é isso!! Obrigado amigos!
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 8/11/2011, 13:32

    E ai amigos, dou como resolvido e plano B ou alguém entendeu e tem um coelho na cartola!?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  criquio 8/11/2011, 13:48

    Ih, agora estou confuso, sem saber se está faltando verbos ou se temos verbos em excesso na explicação Razz
    Confesso que está meio complicado de entender. Uma coisa que digo, a princípio, é que se você colocar uma expressão na origem do campo, esse campo perde o vínculo com a tabela. Outra coisa é que eu usaria o DMax no lugar de contar os registros e adicionar + 1, pois, se por algum motivo, perder um registro, vai dar erro de duplicidade. Imagine que você tenha a sequência abaixo:

    1
    2
    3
    4
    5
    6
    7

    Temos 7 registros. Usando rs.RecordCount + 1, iremos para o registro de número 8, certo? Mas, e se o registro de número 5 sumir por algum motivo? Ficaremos com 6 registros. 6 + 1 = 7. Só que o 7 já existe. Usando DMax + 1 irá sempre adicionar 1 ao maior número, independente do número de registros ser menor do que o maior número da tabela:

    If rs.RecordCount > 0 Then
    LocReg = DMax("Código", "NomeDaTabela") + 1
    Else
    LocReg = 1
    End If



    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 8/11/2011, 14:00

    Nossa até eu fiquei confuso nem sei que que eu escrevi ali!

    Mas acho que o erro está acontecendo justamente pelo o que vc disse!

    então essa função Dmax ficaria assim?

    Public Function LocReg()

    If rs.RecordCount > 0 Then
    LocReg = DMax("Código", "SAP") + 1
    Else
    LocReg = 1
    End If

    End Function



    O que devo colocar ali onde diz Código??
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 8/11/2011, 18:59

    Please Help!!
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  criquio 8/11/2011, 19:18

    A forma como você colocou só dará erro se acontecer de algum registro for apagado na sequência. Talvez tenha algo a ver com o que você está colocando na origem do campo. Para esse caso acredito que será mais prático se disponibilizar uma cópia exemplo seguindo as dicas abaixo ↓


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 8/11/2011, 20:00

    então criquio,,, me explica como usa a função Dmax
    tá certo isso aqui?
    tem que deixar também na fonte do controle =LocReg() ???

    Public Function LocReg()

    If rs.RecordCount > 0 Then
    LocReg = DMax("Código", "SAP") + 1
    Else
    LocReg = 1
    End If

    End Function
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  criquio 8/11/2011, 20:03

    Como eu falei, se colocar alguma coisa na fonte do controle, esse dado não será registrado na tabela, pois o campo perde o vínculo com o campo da tabela. Basta colocar o DMax conforme exemplificado. Na fonte do controle, coloque o nome do campo da tabela.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    rogerio1987
    rogerio1987
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 32
    Registrado : 05/11/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  rogerio1987 8/11/2011, 23:54

    Desculpa me entrometer na conversa de vcs e sei que o criquio é o "Crânio" Razz

    Mas não séria mais fácil em vez de vc criar um campo com uma macro que faz autonumeração no formulário

    vc criar um campo na tabela... pois até onde sei o fomulário vai puxar os dados da tabela...

    assim a autonumeração vai da tabela em vez do formulário...

    fora que se vc for fazer cruzameto de dados será necessário um campo na tabela que ñ se repita...

    se ajudei Very Happy

    se não desconsidera lol!
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 9/11/2011, 10:33

    Eh isso que to tentando fazer rogerio, o criquio ta explicando q se eu por algo na fonte do controle perde esse vinculo com a tabela o que eu não quero... vlw!

    Soh não entrou na minha cachola ainda como implementar o comando Dmax

    CRIQUIO eu coloco esse comando em qual evento?? ao entrar do formulário?
    não está dando certo....

    e por favor me diga o que devo colocar aonde diz CÓDIGO que raio de código é esse???

    If rs.RecordCount > 0 Then
    LocReg = DMax("Código", "Nome da tabela") + 1
    Else
    LocReg = 1
    End If


    Por favor ajude to perdendo maior tempo com essa bagaça Very Happy TKS!
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  Alexandre Neves 9/11/2011, 11:25

    andre,

    Se percorrer o controlo ao introduzir os dados, pode colocar ao receber o foco:
    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone

    rs.MoveLast
    NomeDoControlo = rs.RecordCount + 1
    set rs=nothing
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 9/11/2011, 11:42

    Alexandre entendi... coloquei ao receber foco e mudei o índice de tabulação para 0... mas apaguei os registros pra começar a testar do zero e ele da erro "nenhum registro atual!!



    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 9/11/2011, 12:19

    Help friends, já já da hora do lunch!
    JPaulo
    JPaulo
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11026
    Registrado : 04/11/2009

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  JPaulo 9/11/2011, 12:20

    Caro Andre, isto não é MSN, é um fórum pelo qual peço que leia as Regras antes de postar o que acabou de postar.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido] Ordenar Registros Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido] Ordenar Registros Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido] Ordenar Registros Folder_announce_new Instruções SQL como utilizar...
    andre.lr
    andre.lr
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 222
    Registrado : 17/10/2011

    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  andre.lr 9/11/2011, 13:08

    Só coloquei pedindo ajuda, calmai cara sem estress, João pra começar você nem tentou me ajudar nenhuma vez!!=P

    Mas beleza da próxima vou ter mais paciência antes de reforçar o pedido de ajuda ok amigo...sem crise!!

    ...... de qualquer forma acabei de conseguir solucionar o meu problema e o tópico está resolvido!

    A solução tava na minha cara mas fritei os neurônios para chegar nela!

    SOLUÇÃO:

    Voltei a utilizar
    =LocReg() e a public function só que dessa vez ao invés de colocar ele na fonte do controle perdendo o vinculo com a tabela como o Criquio me explicava eu coloquei ele no valor padrão do campo que eu queria que era o campo "SAP" .... dessa forma a função funcionou da forma que eu queria e sem tirar o vinculo com a tabela!

    Public Function LocReg()
    On Error Resume Next

    Dim rs As DAO.Recordset
    Set rs = Me.RecordsetClone

    rs.MoveLast
    rs.Bookmark = Me.Bookmark

    If (Err <> 0) Then
    LocReg = rs.RecordCount + 1
    Else
    LocReg = rs.AbsolutePosition + 1
    End If

    End Function

    Também coloquei este comando abaixo para ordenar pelo campo "SAP"

    Private Sub Form_Open(Cancel As Integer)

    Me.OrderBy = "SAP"
    Me.OrderByOn = True

    End Sub




    Obrigado aos amigos que tem me fornecido valiosos conhecimentos principalmente do Criquio e do Alexandre que sempre tem sido prestativos, me fazendo gostar cada vez mais do forum!

    Espero que o tópico ajude outras pessoas, tenho tentado ser o mais claro possível!

    Mais uma vez peço desculpas se cometi algum incomodo!

    Conteúdo patrocinado


    [Resolvido] Ordenar Registros Empty Re: [Resolvido] Ordenar Registros

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 25/11/2024, 05:27