Ir para conteúdo
Fórum Script Brasil
  • 0

Operação Com Datas


Gabriel Cabral

Pergunta

Olá pessoal.....

minha duvida é o seguinte...

tenho um campo d uma tabela em que seu conteúdo é determinado tempo [ex.: 03:30]

gostaria de saber como faço pro campo desse tempo d todos os clientes cadastrados terem o valor 05:00 ao mudar o mês do computador....

espero que possam me ajudar

Obrigado

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0

tem mta coisa sobre timer no forum, da uma olhada:

http://scriptbrasil.com.br/forum/index.php...;highlite=timer

esse aqui tem uma explicacao boa:

http://scriptbrasil.com.br/forum/index.php...st&p=246863

e esse aqui fala de uma duvida parecida ca sua:

http://scriptbrasil.com.br/forum/index.php...14&hl=timer

e pra pegar a data do windows, caso você não saiba, use a funcao Date. e pra pegar o mês use a funcao Month:

mês = Month(Date)

qualquer coisa posta aí

Link para o comentário
Compartilhar em outros sites

  • 0

Eu poderia usar uma funçao pra pegar a data e assim verificar quando for dia 1º de cada mês, eu gravar o que quero nos campos da tabela.....

isso funcionaria se não tivesse dia primeiro que cai em sabado e/ou domingo não é?

porque nesses dias o computador não é ligado e então, no dia seguinte, vamos supor um segunda feira, dia 2, o mês mudou mas nada acontecerá porque já não é dia 1º mais......

então não dá mesmo pra usar uma funçao dessas....

era isso que eu precisava fazer, mas não sei como fzr isso usando o timer...

os links que você me passou não ajudaram muito :unsure:

você saberia me explicar como eu devo fzr isso....ou como eu devo utilizar o timer pra fzr isso??!!

obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

hm.. não tem como você saber qual o ultimo mês que você alterou?? tipo, quando chegar o dia 1 de marco e o você fizer sua alteracao no banco, você grava la que a ultima alteracao foi feita no mês 3.

ai você testa sempre se o mês atual é diferente do ultimo mês alterado. assim, não importa qual dia do mês seja, a primera vez que o programa for aberto no mês, a alteracao sera feita.

quanto a como usar o timer, você viu o que eu disse no otro tópico:

É o seguinte, c adiciona um timer (reloginho na barra de componentes).

O timer funciona assim:

c poe na propriedade interval um valor em milsegundos (1 segundo dividido por mil) que representa o tempo que você quer marcar.

Exemplo:

Coloque 1000 no interval.

Clique duas vezes no timer pra criar o evento timer1_timer.

Toda vez que se passarem 1000 milisegundos (= 1 segundo), o programa vai chamar esse evento.

Entendeu?

O timer serve pra chamar um evento toda vez que se passar um tempo que você determinar.

??

sugeri o timer pra você pro caso de o programa estar aberto quando o mês mudar, ai você teria que checar de tempos em tempos.

se você achar que não precisa do timer (ou seja, você tem certeza que ninguém vai tar usando o programa a 00:00 do dia 30), você pode checar a data, so quando ele abrir o programa por exemplo.

veja se você entendeu e se é possivel a ideia que eu passei acima, qualquer coisa poste ai.

Link para o comentário
Compartilhar em outros sites

  • 0
hm.. não tem como você saber qual o ultimo mês que você alterou?? tipo, quando chegar o dia 1 de marco e o você fizer sua alteracao no banco, você grava la que a ultima alteracao foi feita no mês 3.

ai você testa sempre se o mês atual é diferente do ultimo mês alterado. assim, não importa qual dia do mês seja, a primera vez que o programa for aberto no mês, a alteracao sera feita.

quanto a como usar o timer, você viu o que eu disse no otro tópico:

É o seguinte, c adiciona um timer (reloginho na barra de componentes).

O timer funciona assim:

c poe na propriedade interval um valor em milsegundos (1 segundo dividido por mil) que representa o tempo que você quer marcar.

Exemplo:

Coloque 1000 no interval.

Clique duas vezes no timer pra criar o evento timer1_timer.

Toda vez que se passarem 1000 milisegundos (= 1 segundo), o programa vai chamar esse evento.

Entendeu?

O timer serve pra chamar um evento toda vez que se passar um tempo que você determinar.

??

sugeri o timer pra você pro caso de o programa estar aberto quando o mês mudar, ai você teria que checar de tempos em tempos.

se você achar que não precisa do timer (ou seja, você tem certeza que ninguém vai tar usando o programa a 00:00 do dia 30), você pode checar a data, so quando ele abrir o programa por exemplo.

veja se você entendeu e se é possivel a ideia que eu passei acima, qualquer coisa poste ai.

não sei como fazer pra saber o ultimo mes que um registro foi alterado....

não sei o que usar pra fazer isso ao mudar o mes :(

Link para o comentário
Compartilhar em outros sites

  • 0

você não pode criar uma tabela nova no seu banco so pra guardar o mes da ultima atualizacao?? ai seriam dois campos, um pra guardar o mes e outro o ano. depois de criar, adicione um registro na mao mesmo (ela sempre vai ter so um registro) q seja anterior ao mes atual.

ai assim q o programa abrisse você faria um teste:

sql = "Select * From Tabela"
Set rs = cn.Execute(sql)

If DateSerial(rs!Ano, rs!Mes, 1) < DateSerial(Year(Date), Month(Date), 1) Then
    - AQUI você FAZ A ATUALIZACAO Q você PRECISA -

    sql = "Update Tabela Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
    cn.Execute sql
End If[/code]

Link para o comentário
Compartilhar em outros sites

  • 0
você não pode criar uma tabela nova no seu banco so pra guardar o mes da ultima atualizacao?? ai seriam dois campos, um pra guardar o mes e outro o ano. depois de criar, adicione um registro na mao mesmo (ela sempre vai ter so um registro) q seja anterior ao mes atual.

ai assim q o programa abrisse você faria um teste:

sql = "Select * From Tabela"
Set rs = cn.Execute(sql)

If DateSerial(rs!Ano, rs!Mes, 1) < DateSerial(Year(Date), Month(Date), 1) Then
    - AQUI você FAZ A ATUALIZACAO Q você PRECISA -

    sql = "Update Tabela Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
    cn.Execute sql
End If
não ficaria assim???
Private Sub MDIForm_Load()

SQL = "Select * From Tabela"
Set rs = cn.Execute(SQL)

If DateSerial(rs!Ano, rs!Mes, 1) < DateSerial(Year(Date), Month(Date), 1) Then
    "Update Clientes Set Cli_TempoDisp = '" & 05:00 & "'"

    SQL = "Update Tabela Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
    cn.Execute SQL
End If


End Sub
mas ta dando erro na linha
"Update Clientes Set Cli_TempoDisp = '" & 05:00 & "'"

o erro diz: Compile error: Expected: line number or label or statement or end of statement

mas não era isso q tinha que fazer???

Editado por Gabriel Cabral
Link para o comentário
Compartilhar em outros sites

  • 0
SQL = "Update Clientes Set Cli_TempoDisp = '" & 05:00 & "'"
    cn.Execute SQL

    SQL = "Update Tabela Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
    cn.Execute SQL
Coloquei isso mas o mesmo erro continua na mesma linha a linha fica em vermelho e a parte
"Update Clientes Set Cli_TempoDisp = '"

fica selecionada em azul

Editado por Gabriel Cabral
Link para o comentário
Compartilhar em outros sites

  • 0

o codigo todo tem q ser assim:

Private Sub MDIForm_Load()

SQL = "Select * From Tabela"
Set rs = cn.Execute(SQL)

If DateSerial(rs!Ano, rs!Mes, 1) < DateSerial(Year(Date), Month(Date), 1) Then
    SQL = "Update Clientes Set Cli_TempoDisp = '" & 05:00 & "'"
    cn.Execute SQL

    SQL = "Update Tabela Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
    cn.Execute SQL
End If


End Sub[/code]

Link para o comentário
Compartilhar em outros sites

  • 0
o codigo todo tem q ser assim:

Private Sub MDIForm_Load()

SQL = "Select * From Tabela"
Set rs = cn.Execute(SQL)

If DateSerial(rs!Ano, rs!Mes, 1) < DateSerial(Year(Date), Month(Date), 1) Then
    SQL = "Update Clientes Set Cli_TempoDisp = '" & 05:00 & "'"
    cn.Execute SQL

    SQL = "Update Tabela Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
    cn.Execute SQL
End If


End Sub
Ae kuroi...consegui... ficou assim
Set Conex = New ADODB.Connection
Conex.Open StringDeConexao

SQL = "Select * From Data"
Set rs = Conex.Execute(SQL)

If DateSerial(rs!Ano, rs!Mes, 1) < DateSerial(Year(Date), Month(Date), 1) Then
If MsgBox("Deseja atualizar o Tempo Disponível dos clientes?", vbQuestion + vbYesNo, "Sistempo") = vbYes Then
SQL = "Update Clientes Set Cli_TempoDisp = '05:00'"
Conex.Execute (SQL)
SQL = "Update Data Set Ano = " & Year(Date) & ", Mes = " & Month(Date)
Conex.Execute SQL

Else

MsgBox "Emitir relatórios e atualizar Tempo Disponível dos clientes.", vbExclamation + vbOKOnly, "Sistempo"
End If
End If
um outro problema que estava impedindo a funcionalidade do programa era porque faltava o
Set Conex = Nothing

no Unload do form principal

agora está tudo funcionando perfeitamente

muito obrigado

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...