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]Numerar linhas em consulta

    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Numerar linhas em consulta Empty Numerar linhas em consulta

    Mensagem  Ronaldo Costa 20/9/2013, 14:29

    Olá pessoal!

    Tenho uma consulta onde no campo "ordem" gostaria que fossem preenchido automaticamente a medida que os registro estivessem sendo inseridos.

    Exemplo: Já possuo 3 três registros (Antônio, Beatriz, Carlos) as linhas da coluna "ordem" constam os seguintes números na ordem respectiva em relação aos registros.

    Assim:

    código            Nome           ordem
        235               Antonio         1
        241               Beatriz          2
        243               Carlos           3


    Quando eu inserir outro registro (Barnabé), ficaria assim:

    código            Nome           ordem
        235               Antonio         1
        244               Barnabé        2
        241               Beatriz          3
        243               Carlos           4


    Veja que as colunas "código" e "Nome" sofreu alteração na ordem, mas a coluna "ordem" não sofreu alteração.


    atenciosamente,
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Numerar linhas em consulta Empty Numerar linhas em consulta

    Mensagem  good guy 20/9/2013, 15:46

    Olá Ronaldo,

    (1)Crie uma consulta com o campo Nome como Crescente no modo design. (2)Crie uma rotina no seu formulário para adicionar o código, nome e a ordem na sua tabela. (3) Coloque como fonte de registro a sua consulta, item 1,  do seu formulário no modo Tabela.

    Segue em anexo exemplo. Lembre-se porém que este exemplo você não poderá adicionar dados vários vezes, só servirá para incluir todos os nomes de uma só vez e ele colocará em ordem alfabética e com numeração crescente. Copie os campos para um banco vazio com tabelas novas com os mesmos nomes. Copie e cole a consulta(cnsNomes) e o formulário(Nomes).

    Exemplo de sua rotina:

    Public Sub OrdenarRegistro()
    'On Error Resume Next
    Dim sNum As Integer
    Dim sCod As Integer
    Dim strSQL As String
    Dim sNome As String
    Dim i As Integer
    Dim rs As DAO.Recordset
    Dim db As DAO.Recordset

    sNum = Nz(DLast("Ordem", "tblNome"))
    sNum = sNum + 1

    sNome = InputBox("Digite o nome:", "Adicionar")

    sCod = Nz(DLast("Código", "tblNome"))
    sCod = sCod + 1

    DoCmd.SetWarnings False
    strSQL = "INSERT INTO tblNome(Código,Nome, Ordem)VALUES('" & sCod & "', '" & sNome & "','" & sNum & "')"
    CurrentDb.Execute strSQL
    DoCmd.SetWarnings True

    MsgBox "Inclusão feita com sucesso !!!", vbInformation, "Adicionando..."
    Me.Lista10.Requery
    End Sub

    Crie outra rotina de atualização que ficaria assim. Primeiro, crie uma tabela chamada Selecao com os seguintes campos:

    Código (Número)
    Nome (Texto)
    Ordem (Numeração Automática) com Chave primária



    Public Sub AtualizarNumeracao()
    'On Error Resume Next
    Dim sNum As Integer
    Dim sCod As Integer
    Dim strSQL As String
    Dim sNome As String
    Dim i As Integer
    Dim rs As dao.Recordset
    Dim db As dao.Recordset



    DoCmd.SetWarnings False
    strSQL = "INSERT INTO Selecao(Código,Nome)SELECT cnsNomes.Código,cnsNomes.Nome FROM cnsNomes"
    CurrentDb.Execute strSQL
    DoCmd.SetWarnings True

    MsgBox "Inclusão feita com sucesso !!!", vbInformation, "Alterando numeração..."



    Me.Lista10.Requery     'Altere os dados de sua caixa de listagem (Fonte do controle: SELECT * FROM selecao /Origem da Linha: Selecao/Tipo de origem da linha : Tabela/Consulta
    End Sub
    Anexos
    [Resolvido]Numerar linhas em consulta AttachmentAtualizaçãoNumérica.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (27 Kb) Baixado 218 vez(es)


    Última edição por good guy em 20/9/2013, 22:54, editado 7 vez(es)
    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3880
    Registrado : 04/04/2010

    [Resolvido]Numerar linhas em consulta Empty Re: [Resolvido]Numerar linhas em consulta

    Mensagem  Avelino Sampaio 20/9/2013, 16:00

    A consulta será utilizada aonde ? Em um formulário ou em um relatório ?



    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Numerar linhas em consulta Empty Re: [Resolvido]Numerar linhas em consulta

    Mensagem  Ronaldo Costa 22/9/2013, 04:26

    Amigos, acho que compliquei um pouco. Na verdade minha questão é com um relatório. Citei consulta, aqui, porque pretendia criar o relatório baseado em uma consulta, mas vendo um artigo do Avelino Sampaio concluí que poderia prejudicar o desempenho do meu bd.


    Então...
    Criei um sistema que imprime as cadernetas da escola onde trabalho. O sistema imprime primeiro as páginas impares e em um dos campos o sistema me dá a sequência das páginas da seguinte forma: 1, 3, 5, 7,....

    O problema é na sequência das páginas pares, pois ela em impressa de forma inversa (do maior para o menor) e deveria me apresenta a sequência da seguinte forma: ...8, 6, 4, 2, mas eu não estou conseguindo programar isso no VBA. Visto que a quantidade de alunos é variável e que o maior número será sempre par, pensei capturar o número de páginas (usando a função "=[páginas]") e fazer dela referência para começar a sequência de forma decrescente.

    Exemplo:
    Se o número de páginas é igual 18 então a sequência seria: 18, 16, 14, ....2

    grato,
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Numerar linhas em consulta Empty Numerar linhas em consulta

    Mensagem  good guy 23/9/2013, 14:29

    Olá Ronaldo,

    Tente o mesmo código acima, alterando apenas esta linha em destaque:


    Public Sub OrdenarRegistro()
    On Error Resume Next
    Dim sNum As Integer
    Dim sCod As Integer
    Dim strSQL As String
    Dim sNome As String
    Dim i As Integer
    Dim rs As DAO.Recordset
    Dim db As DAO.Recordset

    sNum = Nz(DLast("Ordem", "tblNome"))
    sNum = sNum + 1   'Mude para sNum = sNum + 2

    Crie uma consulta da tabela Selecao. Lembre-se de que você terá duas consultas criadas agora. Na consulta cnsSelecao, coloque o campo "Ordem" como decrescente. Utilize esta consulta como Fonte de Registro do seu relatório.
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Numerar linhas em consulta Empty Re: [Resolvido]Numerar linhas em consulta

    Mensagem  Ronaldo Costa 23/9/2013, 15:21

    Olá Good,

    Seu código me vai servir para uma outra aplicação que estou começando. Por ora, depois de muito tentar, consegui uma forma simples de resolver a questão.

    Veja:

    Option Compare Database
    Dim intValor As Integer

    Private Sub Detalhe_Print(Cancel As Integer, PrintCount As Integer)

    intValor = intValor - 2

    Me.txtNum = intValor + Me.txtPrim

    End Sub

    grato por sua atenção.

    Agora, deix eu te perguntar uma coisa. Como faço para colocar um foto no meu perfil?


    atenciosamente
    Ronaldo Costa
    Ronaldo Costa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 287
    Registrado : 14/03/2011

    [Resolvido]Numerar linhas em consulta Empty Re: [Resolvido]Numerar linhas em consulta

    Mensagem  Ronaldo Costa 24/9/2013, 13:46

    ok!
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Numerar linhas em consulta Empty Numerar linhas em consulta

    Mensagem  good guy 27/9/2013, 15:51

    O fórum agradece.

    Conteúdo patrocinado


    [Resolvido]Numerar linhas em consulta Empty Re: [Resolvido]Numerar linhas em consulta

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 22:11