Jump to content

Recommended Posts

Posted

Boas pessoal tenho um problema com datas.. tenho ambos os campos em maskedtextbox com formato dd,mm,yyyy mas ao comparar as datas ele só me compara como fosse um numero intero, ou seja..

Dim strsql As String = "Select DATA_COMPRA from compras where matricula like '" & matriculatextbox.Text & "%'"
                TextBox1.Text = RetornaValor(strsql)
                If (TextBox1.Text > datadeptext.Text) Then
                    MsgBox("Não pode ter uma despesa com a data inferior á data de compra da viatura!", MsgBoxStyle.Information, "Stand")
                    Exit Sub
                End If

tenho uma função a ir buscar uma data a minha BD access depois manda o valor para a textbox1 e depois comparo esse valor com o valor introduzido no campo ("datadeptext") mas ao comprar por exemplo:

se na textbox1 tiver 17-05-2001

e na datadeptext tiver 18-01-2001 ele deixa-me passar porque o 18 é maior que o 17..

Posted

Converte primeiro para datetime e compara as datetimes.

asssim?

    Dim data1 As Date

                Dim data2 As Date

                data1 = TextBox1.Text

                data2 = datadeptext.Text

                Dim strsql As String = "Select DATA_COMPRA from compras where matricula like '" & matriculatextbox.Text & "%'"

                TextBox1.Text = RetornaValor(strsql)

                If (TextBox1.Text > datadeptext.Text) Then

                    MsgBox("Não pode ter uma despesa com a data inferior á data de compra da viatura!", MsgBoxStyle.Information, "Stand")

                    Exit Sub

                End If

assim dá erro: a conversão da cadeia "" para o tipo date nao é valida

Posted

a classe DateTime tem um método q é o Parse.

Recebendo uma string com a data como argumento, retorna um DateTime.

Faz isso ás duas datas e podes comparar os datetimes correspondentes.

assim?:S é que nao sei trabalhar com data time parse

DateTime.Parse(TextBox1.Text)

                DateTime.Parse(datadeptext.Text)

                Dim strsql As String = "Select DATA_COMPRA from compras where matricula like '" & matriculatextbox.Text & "%'"

                TextBox1.Text = RetornaValor(strsql)

                If (TextBox1.Text > datadeptext.Text) Then

                    MsgBox("Não pode ter uma despesa com a data inferior á data de compra da viatura!", MsgBoxStyle.Information, "Stand")

                    Exit Sub

                End If

Posted

penso que seja algo assim

  Dim verificar As DateTime = DateTime.Parse(TextBox1.Text)

                Dim verificar2 As DateTime = DateTime.Parse(datadeptext.Text)

                Dim strsql As String = "Select DATA_COMPRA from compras where matricula like '" & matriculatextbox.Text & "%'"

                TextBox1.Text = RetornaValor(strsql)

                If (TextBox1.Text > datadeptext.Text) Then

                    MsgBox("Não pode ter uma despesa com a data inferior á data de compra da viatura!", MsgBoxStyle.Information, "Stand")

                    Exit Sub

                End If

agora só me falta saber o que meter na condição..

Posted

Podes fazer algo assim:

        Dim dt1 As New DateTime(2009, 5, 17, 9, 10, 0)

        Dim dt2 As DateTime = Now

        If dt2.Subtract(dt1).TotalHours > 0 Then

            Stop ' Data 2 maior que a Data 1

        End If

Posted

Ainda bem!

Só para informação, podes alterar de TotalHours para TotalMinutes, TotalSeconds ou mesmo TotalMilliseconds, para diferenças mais pequenas.

Já agora que valores sao estes? "DateTime(2009, 5, 17, 9, 10, 0)"

Posted

Já agora que valores sao estes? "DateTime(2009, 5, 17, 9, 10, 0)"

Cria uma nova data com o ano 2009, mês 5, dias 17, e hora 9:10:00.

Tenta alterar os dados que o intellissence mostra-te o que cada um representa 😉

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.