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]DoCmd.RepaintObject OU .BackColor =

    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]DoCmd.RepaintObject OU .BackColor = Empty DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 21/10/2011, 15:00

    Alguem me de uma dica sobre estes comandos por favor!

    Private Sub Form_Load()
    If DCount("*", "Equipamentos", "[Data de aviso]>= [DATA]-30") > 0 Then DoCmd.OpenForm "Aviso"
    If DCount("*", "Equipamentos", "[Data de aviso]>= [DATA]-30") > 0 Then DoCmd.RepaintObject xxxxx??
    End Sub

    DÚVIDA (o que devo colocar depois de DoCmd.RepaintaObject) se eu quero que ele além de abrir o formulário "Aviso" pinte o campo "Código" dos registros com -30 dias do formulário "Equipamentos"...

    Outro comando que talvez seja uma alternativa mas ainda não consegui deixar perfeito é esse:

    Private Sub Form_Load()
    Select Case Calibração
    Case "VENCIDA"

    Me.SITUAÇÃO = "Verificar"
    Me.SITUAÇÃO.BackColor = 255

    End Select
    End Sub


    DÚVIDA, neste comando estou tentando fazer com que no campo Situação aparecça escrito "Verificar" e seja pintado de vermelho ao abrir o formulário sempre que o campo calibração for = a "VENCIDA". O que acontece é que a palavra Verificar está aparecendo corretamente nos registros onde o campo calibração está escrito "VENCIDA", porém o comando .BackColor = 255 está pintando todoooos os registros de vermelho e eu quero que ele pinte apenas os registros que estão com o campo Calibração escrito "VENCIDA"

    Alguem me ajude por favor!

    Espero ter sido claro! Obrigado!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 21/10/2011, 15:43

    Melhor usar formatação condicional. Isso não funciona dessa forma em formulário contínuo porque cada campo é único, tanto faz se em formulário simples ou contínuo. O que acontece é que o campo é replicado em cada linha, mas continua sendo um só. Com formatação condicional você resolve. Basta digitar a palavra e escolher a cor para quando for essa palavra.


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 21/10/2011, 20:59

    Amigo Criquio acho que me expressei mal!

    Tenho um formulário Equipamentos onde tenho os campos:

    DATA que é a data do dia =Data() este campo eu deixei no rodapé pra não se repetir atoa nos registros!
    e tambpem tenho o campo "Data de Aviso"

    Preciso de um comando em que quando ao abrir o formulário os registros que estiverem com a "Data de Aviso >= a "DATA" fiquem com BackColor 255

    Por favor algume me arrume um comando para isso!!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 21/10/2011, 21:07

    O campo "Data de aviso" tambem está no rodapé? Caso ele esteja na seção detalhe, ou seja, se ele se repete nas linhas dos registros, segue a regra que mencionei acima. Mas em qualquer dos casos, a formatação condicional resolve tambem. Em formulário simples ou no rodapé do formulário, tambem pode usar via vba assim:

    If Me.NomeDoCampo = "Texto" Then
    Me.NomeDoCampo2.BackColor = 255
    Me.NomeDoCampo2.Value = "Vencida
    Else
    End If


    No entanto, me pareceu que já está fazendo mais ou menos por aí.


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 21/10/2011, 22:12

    Muito obrigado Criquio, segunda vou tentar no serviço esse comando, se der certo já coloco resolvido Wink

    Aproveitando a deixa Não tenho muito as manha pra fazer formatação condicional como seria o procedimento para fazer esses mesmos comandos em vez de vba em formataçao condicional?

    Ps.: A data de aviso esta no detalhe!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 21/10/2011, 22:25

    Se a versão do Access for 2007 ou 2010, basta clicar no campo e na guia Design verá a opção Condicional no grupo Fontes. Se for anterior ao 2007, clique no campo com o botão direito e escolha a opção Formatação Condicional. Abrirá a janela para você digitar a condição e escolher o que deve ser formatado e como deve ser formatado.


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 14:54

    Amigo Criquio estou quase lá no que desejo só falta um detalhe veja se pode me ajudar!

    Depois de fazer vários experimentos aqui cheguei ao seguinte com sua ajuda!

    Coloquei duas formatações condicionais no campo "Situação" com as seguintes expressões!

    Condição 1

    [Validade]-30<=[Data] então o campo fica
    vermelho

    Condição 2

    [Validade]-30>[Data] então o campo fica
    verde

    Beleza está funcionando bem isso!

    Agora preciso uma ultima coisa!

    Coloquei o seguinte comando ao carregar do formulário Equipamentos

    Private Sub Form_Load()

    If DCount("*", "Equipamentos", "[Validade]-30<= [DATA]") > 0 Then
    Me.Situação.Value = "OK"
    End If

    If DCount("*", "Equipamentos", "[Validade]-30> [DATA]") > 0 Then
    Me.Situação.Value = "Vencido"
    End If

    End Sub



    O problema é que ele só escreve OK ou Vencido no primeiro registro quando carrega os demais ele não escreve nada, queria q ele preenche-se todos os registros de acordo com essa condição do campo "Validade" -30 ser <= ao campo "DATA" então aparece OK e quando for ao contrario aparece Vencido!

    Mas quando abro o formulário Equipamentos apenas o primeiro registro recebe o comando não sei por que cargas d'aguas!

    OBS.: Não da pra fazer isso com formatação condicional! já tentei, não tem campo pra escrever o que vc quer q apareça! =/

    Por favor me da mais uma luz amigo!
    Obrigado!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 24/10/2011, 15:20

    Tente colocar direto na origem do campo:

    =SeImed(DCount("*";"Equipamentos";"[Validade]-30<= [DATA]") > 0;"OK";"Vencido")


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 17:10

    Quase! Coloquei mas todos aparecem OK apenas!

    Não teria que por a outra expressão tbm?

    =SeImed(DCount("*";"Equipamentos";"[Validade]-30<= [DATA]") > 0;"OK")
    =SeImed(DCount("*";"Equipamentos";"[Validade]-30> [DATA]") > 0;"Vencido")


    Coloquei desse jeito mas ai todos os registros aparecem um zero 0

    e agora?
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 24/10/2011, 17:15

    Não entendi muito bem como a coisa deve funcionar, mas talvez assim:

    =SeImed(DCount("*";"Equipamentos";"[Validade]-30<= [DATA]") > 0;"OK";SeImed(DCount("*";"Equipamentos";"[Validade]-30> [DATA]") > 0;"Vencido";"")


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 17:29

    É que eu quero que apareça escrito OK quando a data de validade-30 for <= que a DATA atual
    E que apareça Vencido quando a data de validade-30 for > que a DATA atual

    é meio confuso mas é isso!

    Não está dando para colocar a expressão que vc postou agora aparece a msg!

    "Na expressão que você inseriu está faltando um parênteses ou colchete (]) de fechamento ou uma barra vertical (|).


    e agora? nem da pra inserir!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 24/10/2011, 17:46

    Agora corrija o que aparece na mensagem. Ela não falou que está faltando um colchete de fechamento?


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 17:53

    Sad mas to me esforçando! eu já coloquei colchete parenteses aspas pra tudo lado e nada !! Sad da uma colher de chá vai se tem mto mais experiência!!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 24/10/2011, 18:07

    Try this way:

    =SeImed(DContar("*";"Equipamentos";"[Validade]-30"<=[Data])>0;"OK";SeImed(DContar("*";"Equipamentos";"[Validade]-30">[Data])>0;"Vencido";""))


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 18:16

    Ta osso!!

    Agora não deu nenhum erro, porém, continua só aparecendo OK mesmo nos campos vencidos! =/

    E agora Dr. Criquio?? Chama os universsitarios por favor!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 24/10/2011, 18:23

    Achoque agora entendi melhor, relendo um dos posts. Você não quer contar o número de registros e sim saber se a data é menor ou maior que a data atual, certo? Se for isso, o DCount está de intruso na conversa. Tente assim:

    =SeImed[Validade]<=Date()-30;"OK";"Vencido")


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 18:33

    CRIIIIIIIIQUIOOOO

    Era quase isso =D obrigado pelas aulas era qusae isso que você escreveu ai!!

    você entendeu a idéia finalmente mas escreveu errado, porém, eu bati a cabeça aqui e consegui solucionar!!


    Ficou Assim !!! =SeImed([Validade]-30<=Date();"Vencido";"OK")]


    MUITO OBRIGADO AMIGO PELA PACIENCIA INSISTENCIA E RAPIDEZ!!!!

    ESSA QUESTÃO ESTA RESOLVIDA! TKS!
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  criquio 24/10/2011, 18:46

    É isso aí, como cada caso é um caso com sua estrutura particular, a gente tenta arrumar o anzol e às vezes, a isca. A pesca fica por conta do pescador Very Happy


    .................................................................................
    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]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  andre.lr 24/10/2011, 18:48

    thank´s a lot brother! =D

    Conteúdo patrocinado


    [Resolvido]DoCmd.RepaintObject OU .BackColor = Empty Re: [Resolvido]DoCmd.RepaintObject OU .BackColor =

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 14/5/2024, 17:09