+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Verificare data tra due date

  1. #1
    tizike non  in linea Scolaretto
    Buongiorno
    Ho tre textbox
    Datamin.text
    datamax.text
    datarif.text

    il mio scopo verificare se in datarif inserisco una data compresa tra Datamin e Datamax
    ho provato con questo codice ma la verifica sempre OK anche se inserisco una data fuori dal range datamin-datamax.

    la data la inserisco nel formato GG/MM/AAAA

    Private Sub Command1_Click()
    Dim datarif As Date
    Dim datamin As Date
    Dim datamax As Date
    
    If (datarif > datamax) And (datarif < datamin) Then
    MsgBox ("Errore ")
    Else
    MsgBox ("Ok")
    End If
    End Sub
    
    mi sfugge qualcosa? grazie

  2. #2
    Ferrari_and non  in linea Scolaretto
    Dove assegni i valori alle 3 variabili Data?
    In pi se deve essere compresa il controllo non dovrebbe essere
    dataRif minore dataMax e datarif maggiore di dataMin?

  3. #3
    tizike non  in linea Scolaretto
    come indicato all'inizio gli imputs sono tre textbox
    Datamin.text
    datamax.text
    datarif.text

    dataRif minore dataMax e datarif maggiore di dataMin
    si anche
    ma se minore di datamin e maggiore di datamax gia dovrebbe dare errore. Perch gia fuori dal range.
    Ma puo essere che ho fatto un errore anche di impostazione corretta.

  4. #4
    L'avatar di Brontolo
    Brontolo non  in linea Very Important Person
    Ferma restando l'osservazione di Ferrari_and, come pu datarif essere minore di datamin e contemporaneamente maggiore di datamax?
    ℹ️ Leggi di pi su Brontolo ...

  5. #5
    tizike non  in linea Scolaretto
    Puo essere in quanto condizione per vedere se datarif entra nel range min/max

    SE io immetto una data minima
    01/01/2000
    ed una data massima
    01/02/2000

    la datarif per essere valida e che io immetto come confronto deve essere essere=>di datamin e <= a datamax.
    Altrimenti darebbe errore.

    Se invece di AND metto OR si soddisfa solo una condizione di Datarif.

  6. #6
    Quote Originariamente inviato da tizike Visualizza il messaggio
    Puo essere in quanto condizione per vedere se datarif entra nel range min/max
    la datarif per essere valida e che io immetto come confronto deve essere essere=>di datamin e <= a datamax.
    Guarda che questo diverso da quanto hai scritto in

    If (datarif > datamax) And (datarif < datamin) Then

    Se cerchi un errore deve essere

    ' La data cade all' ESTERNO dell'intervallo
    If (datarif < datamin) Or (datarif > datamax) Then ' ERRORE Else ' OK

    Se invece fa il test per capire se corretta allora

    ' La data cade all' INTERNO dell'intervallo
    If (datarif >= datamin) And (datarif <= datamax) Then ' OK Else ' ERRORE

    Ma mi sembra ovvio ...
    Ultima modifica di AntonioG; 04-03-2020 15:43 
    ℹ️ Leggi di pi su AntonioG ...

  7. #7
    Ferrari_and non  in linea Scolaretto
    1 Se datamin dataMax e datarif sono dei textBox i confronti li fa come stringe e non come date
    2 Se datamin datamax e datarif sono dichiarate come dei tipi DATE come fai ad assegnare il valore a queste variabili ?????
    visto che mi risulta che in VB6 che i TextBox i dati al loro interno vengano trattati come stringhe.

    Prova ad aggiungere nei msbox i valori delle 3 variabili che confronti e vedi cosa ti restituisce
    Ultima modifica di Ferrari_and; 04-03-2020 17:03 

  8. #8
    tizike non  in linea Scolaretto
    Ho cambiato e mi pare che sia riuscito. Sto ancora provando ma credo sia a posto.
    la formula l'ho semplificata e cambiata cosi:

    Private Sub Command1_Click()
        If DateValue(datarif.Text) > DateValue(datamin.Text) And DateValue(datarif.Text) < DateValue(datamax.Text) Then
             MsgBox ("Errore input ")
        Else
             MsgBox ("Ok")
        End If
    End Sub
    

    Vi ringrazio per i vostri interventi 'stuzzicanti', Antonio e Ferrari_and.

  9. #9
    Si vede che non hai letto bene (o capito) quanto scritto. Ti avevo detto

    If (datarif < datamin) Or (datarif > datamax) Then ' ERRORE Else ' OK

    OPPURE

    If (datarif >= datamin) And (datarif <= datamax) Then ' OK Else ' ERRORE


    e tu che hai scritto?



    @tizike ... la programmazione per te veramente una bestia nera ... da anni ... ... a parte il fatto che non ho mai capito quanti siete ad utilizzare questo nick ...
    Ultima modifica di AntonioG; 04-03-2020 19:31 
    ℹ️ Leggi di pi su AntonioG ...

  10. #10
    Ferrari_and non  in linea Scolaretto
    Ciao , il codice con il datevalue funziona se poi lo modifichi come suggerito da AntonioG ti dar i risultati sperati.

    Ultimo consiglio verifica che i dati inseriti nei text Box siano delle date nel lostfocus del controllo o simili.

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Verificare sovrapposizione date
    Da guil nel forum Microsoft SQL Server
    Risposte: 28
    Ultimo Post: 28-06-2017, 11:48
  2. Verificare numero
    Da zanexx nel forum Visual Basic .Net
    Risposte: 17
    Ultimo Post: 19-06-2015, 22:29
  3. Verificare Data immessa rispetto al contenuto della tabella
    Da ZioMauri nel forum Microsoft Access
    Risposte: 3
    Ultimo Post: 14-03-2012, 19:30
  4. Grafico con date e intervallo di date!
    Da aliako nel forum Microsoft Access
    Risposte: 1
    Ultimo Post: 15-02-2012, 22:58
  5. Manipolare le date - data finale maggiore data iniziale
    Da Conte Caccola nel forum Microsoft Word
    Risposte: 11
    Ultimo Post: 17-02-2010, 20:51