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]Último registro da tabela na combo baseado em condição

    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 1/2/2014, 19:57

    Alguém me dê uma luz por gentileza!

    Tenho um form desvinculado com vários campos que incluem combobox e texto.

    Estes campos estão distribuídos dentro de um CtrlGuia, onde cada aba corresponde a uma cidade.

    Dentro destas abas, para cada cidade tenho pelo menos 2 grupos de itens, que correspondem a viaturas, onde:

    grupo 1 - 3 combo, 4 testbox, cada uma com itens diferentes. (refere-se a um veiculo)
    grupo 2 - 3 combo, 4 testbox, cada uma com itens diferentes. ((refere-se a outro veiculo)

    Os dados são inseridos na tabela quando a última testbox é preenchido no evento ao entrar, por insert into.

    Isto feito, estando os dados gravados na tabela, quando este form for aberto novamente, preciso que as combos e as testbox carreguem os últimos valores da tabela, baseado nos seguintes critérios.
    1 - respectiva cidade
    2 - dentro da cidade, respectiva viatura.

    se me fiz entender, é a última coisa que preciso pra fechar com chave de ouro um projeto.

    Cumprimentos a todos.
    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]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  criquio 1/2/2014, 21:32

    Talvez assim:

    Código:
    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("NomeDaTabela")

    If rs. RecordCount > 0 Then
        rs.MoveLast
        Me.Campo1 = rs!Campo1
        Me.Campo2 = rs!Campo2
        Me.Campo3 = rs!Campo3
    End If

    rs.Close
    Set rs = Nothing


    .................................................................................
    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.

    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 2/2/2014, 10:14

    Não consegui visualizar como aplicar em meu projeto sua orientação Criquio.

    Desejo abrir o form buscando a última informação, ou seja, a informação mais recente, nas seguintes condições:

    1- pela cidade
    2- pela viatura
    3- pela informação mais recente.

    Lembrando que estou trabalhando com várias cidades e pra cada cidade, pelo menos 2 viaturas com informações específicas de seu turno de trabalho.

    Quando o usuário abrir o sistema, os campos, que são desvinculados, devem ser carregados no último registro inserido na tb.

    Estou gravando na tabela usando insert into.

    Se alguém puder me dar essa força, fico muito agradecido.
    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]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  criquio 2/2/2014, 12:23

    É exatamente isso que a função faz. Declaramos um objeto de nome rs que representa a tabela. O rs.MoveLast move o ponteiro para o último registro (Last = Último). Aí se popula os campos do formulário (que começam com Me.) com os dados dos campos da tabela (os que começam com rs!)


    .................................................................................
    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.

    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 2/2/2014, 15:29

    Desculpa minha ignorância, mas é possível isto:

    Código:
    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("NomeDaTabela")

    If rs. RecordCount = 0 Then
        rs.MoveLast
        Me.Campo1 = rs!Campo1
        Me.Campo2 = rs!Campo2
        Me.Campo3 = rs!Campo3
    End If

    rs.Close
    Set rs = Nothing
    fazer ir para o último registro rs.MoveLast, mas baseado em duas condições, tipo Condição1 e Condição2.
    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]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  criquio 2/2/2014, 15:34

    Sim, basta filtrar o Recordset para, por exemplo, comparar dois campos da tabela com dois campos do formulário ou duas variáveis ou duas strings, etc:

    Código:
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM NomeDaTabela WHERE Campo1DaTabela='" & Me.Campo1DoForm & "' And Campo2DaTabela='" & Me.Campo2DoForm & "'")


    .................................................................................
    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.

    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 2/2/2014, 15:41

    Bom, se o Mestre diz que é assim, então vou bater cabeça e aplicar o solução dada.

    Depois retorno com o resultado. Espero não decepcionar! Neutral

    Só mais uma coisinha: Posso fazer um If pra depois fazer o rs?
    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]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  criquio 2/2/2014, 15:54

    Tudo pode ser integrado de várias formas para chegar ao resultado esperado. Ifs com Recordsets com Loops com For... Next, etc. Mas pode ser tambem que eu tenha perdido algo e talvez tenha que adaptar as coisas. Isso a gente vai vendo com o decorrer da programação.


    .................................................................................
    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.

    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 2/2/2014, 17:00

    Grande Mestre Criquio

    Seguindo sua orientação, consegui montar o recordset com condição. Ficou assim:

    Código:
    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA A"" And CIDADE_VIATURA=""CIDADE1"";")
      rs.MoveLast
            Me.campo1 = rs!campo1
            Me.campo2 = rs!campo2
            Me.campo3 = rs!campo3
     rs.Close
    Set rs = Nothing
    End Sub

    Aqui está carregando o último registro da tabela baseado nas dua condições.

    Agora, como posso trazer as demais informações, uma vez que 6 cidades e 15 viaturas?
    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 2/2/2014, 18:19

    Ainda tentando fechar meu projeto, tenho o seguinte, graças a ajuda do Mestre Criquio.

    Código:
    Dim rs As Recordset

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA A"" And CIDADE_VIATURA=""CIDADE1"";")
      rs.MoveLast
            Me.campo1 = rs!campo1
            Me.campo2 = rs!campo2
            Me.campo3 = rs!campo3
     rs.Close
    Set rs = Nothing

    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA B"" And CIDADE_VIATURA=""CIDADE2"";")
      rs.MoveLast
            Me.campo1 = rs!campo1
            Me.campo2 = rs!campo2
            Me.campo3 = rs!campo3
     rs.Close
    Set rs = Nothing
    End Sub

    Funcionando está, mais gostaria da ajuda dos mais experiente pra me dizer se está correto desta maneira, ou isto é apenas uma gambiarra que, por acaso deu certo.

    Se falta algum parâmetro, algo no código, por favor me orientem!
    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]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  criquio 2/2/2014, 19:40

    É por aí mesmo. Quando se precisa declarar o rs mais de uma vez, pode tambem criar uma função parametrizada e chamá-la apenas uma vez, passando os nomes dos campos.


    .................................................................................
    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.

    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 2/2/2014, 19:52

    Mestre Criquio, no código abaixo:
    Código:
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA B"" And CIDADE_VIATURA=""CIDADE2"";")
    preciso ordenar o resultado baseado na data e na hora da chegada da viatura na base, seria isso:
    Código:
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA B"" And CIDADE_VTR=""CIDADE2"" ORDER BY DATA_OCORRENCIA, HORA_CHEGADA;")
    ?
    mathusalmeida
    mathusalmeida
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 264
    Registrado : 30/08/2011

    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  mathusalmeida 3/2/2014, 10:29

    Com a ajuda do grande Mestre Criquio, abaixo o código do meu form, carregando os dados no último registro baseado em duas Where.

    Código:
    Dim rs As Recordset

    'Cidade 01
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA A"" And CIDADE_VIATURA=""CIDADE1"";")
        If rs.RecordCount > 0 Then
     rs.MoveLast
            Me.campo1 = rs!campo1
            Me.campo2 = rs!campo2
            Me.campo3 = rs!campo3
    End If
    'Cidade 02
    Set rs = CurrentDb.OpenRecordset("SELECT * FROM TAB_VIATURAS WHERE VIATURA= ""VIATURA A"" And CIDADE_VIATURA=""CIDADE2"";")
        If rs.RecordCount > 0 Then
    rs.MoveLast
            Me.campo1 = rs!campo1
            Me.campo2 = rs!campo2
            Me.campo3 = rs!campo3
    End If
     rs.Close
    Set rs = Nothing
    Rodando na perfeição, se houver algo faltando no código, os mais entendidos, completem por favor.

    Obrigado grande Mestre Criquio.

    Sucesso.

    Conteúdo patrocinado


    [Resolvido]Último registro da tabela na combo baseado em condição Empty Re: [Resolvido]Último registro da tabela na combo baseado em condição

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 27/4/2024, 04:10