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


3 participantes

    [Resolvido]Ordenar Numeração automaticamente

    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    [Resolvido]Ordenar Numeração automaticamente Empty [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Luiz Carlos Junior 23/1/2014, 14:19

    Bom dia Mestres.
    Tenho formulários que cadastram alunos e criam um ID seguindo a ordem de inscrição.
    Porém, quando excluo um destes, gostaria que arrumasse a ordem automaticamente.
    Vou dar um exemplo:

    Tenho os alunos com ID 1,2,3,4,5...15
    Excluo o ID 5
    Então fica assim: 1,2,3,4,6...15

    O que quero é que ao excluir, ele arrume a ordem e deixe assim:
    1,2,3,4,5...14

    Deu pra entender?

    Aguardo as luzes...

    Abrasss!
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1039
    Registrado : 23/04/2013

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Uilson Brasil 23/1/2014, 14:27

    Luiz Carlos Junior,

    a Chave Primária / Numeração Automática é única. Sendo assim não há possibilidade de realizar este tipo de ajuste. Até mesmo porque se existir relacionamento entre tabelas imagina a "bagunça" que ficaria.

    Dê mais detalhes da estrutura do bd.


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Luiz Carlos Junior 23/1/2014, 15:34

    Blz Uilson. ]

    Não é chave primária. Só uso para ordenar os alunos pelo dia da inscrição.
    E não é automático tb. Uso um código para criá-las.
    Sendo assim, é possível?

    Abrasss!!!
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1039
    Registrado : 23/04/2013

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Uilson Brasil 23/1/2014, 15:39

    Luiz Carlos Junior,

    Creio que seja possível sim. Entretanto nunca fiz algo parecido, mas vamos tentar.

    É possível disponibilizar o bd ou parte com os objetos envolvidos?


    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Luiz Carlos Junior 23/1/2014, 16:31

    Segue a parte...
    Uilson Brasil
    Uilson Brasil
    VIP
    VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1039
    Registrado : 23/04/2013

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Uilson Brasil 25/1/2014, 12:53

    Amigos,

    Alguém poderia ajudar o nosso amigo Luiz Carlos Junior com a sua necessidade a partir do bd que enviara?

    Confesso que pra mim tá complicado.

    Obs. Estou na tentativa aqui também.

    Abraços,


    .................................................................................
    ::: Uilson Brasil
    ::: Design in Microsoft Access
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Dilson 25/1/2014, 16:47


    Dim Rs As DAO.Recordset
    Dim Cont As Long
    Set Rs = CurrentDb.OpenRecordset("SuaTabela")
    Cont = 0
    Rs.MoveLast
    Rs.MoveFirst
         Do While Not Rs.EOF
               Rs.Edit
               Rs("SuaID") = Cont + 1
               Rs.Update
               Cont = Cont + 1
               Rs.MoveNext
         Loop
    Rs.Close
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Luiz Carlos Junior 28/1/2014, 13:17

    Fala Mestre, blz?
    Tenho um botão que exporta os dados da Lista de Espera para o formulário de Matrícula e ao clicar o programa pergunta se quero excluir o mesmo da Lista de Espera. Ao clicar em sim, gostaria que ordenasse automaticamente. Tentei colocar seu código no código do botão, mas ta dando erro e não to achando onde.
    Ele marca na linha Rs.Edit

    Veja como ficou:

    Código:
    Private Sub cmdExpMatricula_Click()

    Dim db As Database
    Dim Rs As Recordset
    Dim resp As Variant
    Dim Cont As Long

    Set db = CurrentDb
       
    Select Case Me.qdoSerie.Value
    Case 1
        Set Rs = db.OpenRecordset("Select * from tb_EsperaI Where RA= '" & Me.txtRA & "'")
    Case 2
        Set Rs = db.OpenRecordset("Select * from tb_EsperaII Where RA= '" & Me.txtRA & "'")
    Case 3
        Set Rs = db.OpenRecordset("Select * from tb_EsperaIII Where RA= '" & Me.txtRA & "'")
    Case 4
        Set Rs = db.OpenRecordset("Select * from tb_EsperaIV Where RA= '" & Me.txtRA & "'")
    Case Else
    MsgBox ("Favor escolher uma série!"), vbInformation, vbOKOnly
    End Select

    If txtRA <> "" And cmbNOME <> "" And txtDATA_NASC <> "" And txtENDERECO <> "" And txtTEL1 <> "" Then

    DoCmd.Close
    DoCmd.OpenForm "Alunos"

        Habilitar_Alunos
       
        Form_Alunos.txtRA = Rs("RA")
        Form_Alunos.cmbNOME = Rs("NOME")
        Form_Alunos.txtDATA_NASC = Rs("DATA_NASC")
        Form_Alunos.txtMae = Rs("MAE")
        Form_Alunos.txtPAI = Rs("PAI")
        If Rs("CERTIDAO_NOVA") <> "" Then
            Form_Alunos.txtCERTIDAO = Rs("CERTIDAO_NOVA")
        Else
            Form_Alunos.txtCERTIDAO = Rs("CERTIDAO")
        End If
        Form_Alunos.txtLIVRO = Rs("LIVRO")
        Form_Alunos.txtFOLHA = Rs("FOLHA")
        Form_Alunos.txtEMISSAO = Rs("EMISSAO")
        Form_Alunos.cmbDISTRITO = Rs("DISTRITO")
        Form_Alunos.cmbCOMARCA = Rs("COMARCA")
        Form_Alunos.cmbESTADO = Rs("ESTADO")
        Form_Alunos.txtENDERECO = Rs("ENDERECO")
        Form_Alunos.cmbBAIRRO = Rs("BAIRRO")
        Form_Alunos.txtTEL1 = Rs("TEL1")
        Form_Alunos.txtTEL2 = Rs("TEL2")
        Form_Alunos.txtTEL3 = Rs("TEL3")
        Form_Alunos.txtTEL4 = Rs("TEL4")
        Form_Alunos.cmbENSINO = Rs("ENSINO")
        Form_Alunos.cmbSERIE = Rs("SERIE")
        Form_Alunos.txtOBS = Rs("OBS")
        Form_Alunos.cmdGravar.Enabled = True
        Form_Alunos.cmbSEXO.SetFocus
       
    resp = MsgBox("Deseja retirar o aluno da Lista de Espera e efetuar a Matrícula?!", vbQuestion + vbYesNo, "Confirmar Exclusão")
        If resp = vbYes Then
            Select Case Form_Alunos.cmbSERIE
                Case "I"
                    db.Execute ("Delete * from tb_EsperaI Where RA= '" & Form_Alunos.txtRA & "'")
                Case "II"
                    db.Execute ("Delete * from tb_EsperaII Where RA= '" & Form_Alunos.txtRA & "'")
                Case "III"
                    db.Execute ("Delete * from tb_EsperaIII Where RA= '" & Form_Alunos.txtRA & "'")
                Case "IV"
                    db.Execute ("Delete * from tb_EsperaIV Where RA= '" & Form_Alunos.txtRA & "'")
                End Select
            MsgBox ("Exclusão realizada com sucesso!"), vbInformation + vbOKOnly, "Sucesso ao Excluir!"
        Else
            MsgBox ("Exclusão da Lista de Espera Cancelada!"), vbInformation + vbOKOnly, "Cancelamento de Exclusão!"
            Exit Sub
        End If
       
    Else
        MsgBox ("Por favor, selecione um aluno antes de efetuar a transferência!")
    End If

    Cont = 0
    Rs.MoveLast
    Rs.MoveFirst
        Do While Not Rs.EOF
              Rs.Edit
              Rs("ID_LISTA") = Cont + 1
              Rs.update
              Cont = Cont + 1
              Rs.MoveNext
        Loop
    Rs.Close

    End Sub

    Abrasss!!!
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Dilson 28/1/2014, 16:02

    Já estou dando uma olhada no código, se aparece o número ou a descrição do erro, me informe neste intervalo por gentileza.

    Já previamente vejo que será necessário setar outro recordset para realizar a auto numeração, visto que os recordset's atuais filtram por parâmetro e com isso registram um número limitado de linhas.

    Aguarde.



    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Luiz Carlos Junior 28/1/2014, 16:34

    https://2img.net/r/ihimg/photo/my-images/163/tdbv.jpg/

    Esse é o erro.

    Fica marcado na linha Rs.Edit

    Fico no aguardo da luz...rs

    Abrasss!!!
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Dilson 28/1/2014, 17:21

    Tente agora:


    Dim db As Database
    Dim Rs As Recordset
    Dim rstDel As Recordset
    Dim strSQL As String

    Dim resp As Variant
    Dim Cont As Long

    Set db = CurrentDb
       
    Select Case Me.qdoSerie.Value
    Case 1
       Set Rs = db.OpenRecordset("Select * from tb_EsperaI Where RA= '" & Me.txtRA & "'")
    Case 2
       Set Rs = db.OpenRecordset("Select * from tb_EsperaII Where RA= '" & Me.txtRA & "'")
    Case 3
       Set Rs = db.OpenRecordset("Select * from tb_EsperaIII Where RA= '" & Me.txtRA & "'")
    Case 4
       Set Rs = db.OpenRecordset("Select * from tb_EsperaIV Where RA= '" & Me.txtRA & "'")
    Case Else
    MsgBox ("Favor escolher uma série!"), vbInformation, vbOKOnly
    End Select

    If txtRA <> "" And cmbNome <> "" And txtDATA_NASC <> "" And txtENDERECO <> "" And txtTEL1 <> "" Then

    DoCmd.Close
    DoCmd.OpenForm "Alunos"

       Habilitar_Alunos
       
       Form_Alunos.txtRA = Rs("RA")
       Form_Alunos.cmbNome = Rs("NOME")
       Form_Alunos.txtDATA_NASC = Rs("DATA_NASC")
       Form_Alunos.txtMAE = Rs("MAE")
       Form_Alunos.txtPAI = Rs("PAI")
       If Rs("CERTIDAO_NOVA") <> "" Then
           Form_Alunos.txtCERTIDAO = Rs("CERTIDAO_NOVA")
       Else
           Form_Alunos.txtCERTIDAO = Rs("CERTIDAO")
       End If
       Form_Alunos.txtLIVRO = Rs("LIVRO")
       Form_Alunos.txtFOLHA = Rs("FOLHA")
       Form_Alunos.txtEMISSAO = Rs("EMISSAO")
       Form_Alunos.cmbDISTRITO = Rs("DISTRITO")
       Form_Alunos.cmbCOMARCA = Rs("COMARCA")
       Form_Alunos.cmbESTADO = Rs("ESTADO")
       Form_Alunos.txtENDERECO = Rs("ENDERECO")
       Form_Alunos.cmbBAIRRO = Rs("BAIRRO")
       Form_Alunos.txtTEL1 = Rs("TEL1")
       Form_Alunos.txtTEL2 = Rs("TEL2")
       Form_Alunos.txtTEL3 = Rs("TEL3")
       Form_Alunos.txtTEL4 = Rs("TEL4")
       Form_Alunos.cmbENSINO = Rs("ENSINO")
       Form_Alunos.cmbSERIE = Rs("SERIE")
       Form_Alunos.txtOBS = Rs("OBS")
       Form_Alunos.cmdGravar.Enabled = True
       Form_Alunos.cmbSEXO.SetFocus
       
    resp = MsgBox("Deseja retirar o aluno da Lista de Espera e efetuar a Matrícula?!", vbQuestion + vbYesNo, "Confirmar Exclusão")
       If resp = vbYes Then
           Select Case Form_Alunos.cmbSERIE
               Case "I"
                   db.Execute ("Delete * from tb_EsperaI Where RA= '" & Form_Alunos.txtRA & "'")
                   strSQL = "Select * from tb_EsperaI"
               Case "II"
                   db.Execute ("Delete * from tb_EsperaII Where RA= '" & Form_Alunos.txtRA & "'")
                   strSQL = "Select * from tb_EsperaII"
               Case "III"
                   db.Execute ("Delete * from tb_EsperaIII Where RA= '" & Form_Alunos.txtRA & "'")
                   strSQL = "Select * from tb_EsperaIII"
               Case "IV"
                   db.Execute ("Delete * from tb_EsperaIV Where RA= '" & Form_Alunos.txtRA & "'")
                   strSQL = "Select * from tb_EsperaIV"
               End Select
           MsgBox ("Exclusão realizada com sucesso!"), vbInformation + vbOKOnly, "Sucesso ao Excluir!"
       Else
           MsgBox ("Exclusão da Lista de Espera Cancelada!"), vbInformation + vbOKOnly, "Cancelamento de Exclusão!"
           Exit Sub
       End If
       
    Else
       MsgBox ("Por favor, selecione um aluno antes de efetuar a transferência!")
    End If
    Set rstDel = db.OpenRecordset(strSQL)
    Cont = 0
    rstDel.MoveLast
    rstDel.MoveFirst
        Do While Not rstDel.EOF
              rstDel.Edit
              rstDel("ID_LISTA") = Cont + 1
              rstDel.update
              Cont = Cont + 1
              rstDel.MoveNext
        Loop
    rstDel.Close


    Repare no código que criei duas variáveis rstDel e strSQL. No segundo bloco de select case eu alimentei strSQL e no loop setei o novo recordset com os valores de strSQL.
    Luiz Carlos Junior
    Luiz Carlos Junior
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 473
    Registrado : 21/08/2012

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Luiz Carlos Junior 28/1/2014, 17:43

    cheers cheers cheers cheers cheers cheers 

    Boa Mestre.

    Funfou perfeitamente.

    Muito grato por mais esta aprendizagem...

    Abrasss!!!
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Dilson 28/1/2014, 17:49

    Que legal.
    Obrigado por este feedback informando o resultado final.

    Até a próxima!

    Abraço.

    Editado:
    Titulo anterior: "Alterar Numeração automaticamente"

    Alterei o titulo do tópico para facilitar a ferramenta de busca do fórum.

    Conteúdo patrocinado


    [Resolvido]Ordenar Numeração automaticamente Empty Re: [Resolvido]Ordenar Numeração automaticamente

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 8/11/2024, 07:23