Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138

    [vb express 2008] di nuovo problema con la ricerca delle date !

    ho usato il comando between per la ricerca di un range di date dentro un database access ma non so perchè il programma mi esclude la data messa dentro la casella di "inizio ricerca" ! in poche parole parte dal giorno dopo.. per esempio se
    io metto data inizio " 15/07/2013 " e data fine "20/08/2013" la ricerca partirà dal 16/07/2013.. come mai?? questo è il codice:
    codice:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            Dim valore1 As New System.DateTime(DateTimePicker1.Value.Ticks)
            Dim valore2 As New System.DateTime(DateTimePicker2.Value.Ticks)
    
            Dim ricerca As New OleDb.OleDbDataAdapter("SELECT* FROM Articoli_anagrafica WHERE Data_scadenza BETWEEN @valore1 AND @valore2 ", archivio)
            ricerca.SelectCommand.Parameters.Add("@valore1", OleDbType.Date).Value = valore1 'DEFINISCE I PARAMETRI
            ricerca.SelectCommand.Parameters.Add("@valore1", OleDbType.Date).Value = valore2
            Dim da As New DataSet
            ricerca.Fill(da, "Articoli_anagrafica")dentro il dataset DA
            DataGridView1.DataSource = da.Tables(0) 'DATASOURCE indica al datagridview di leggere i dati del dataset DA
            Codice_barraTextBox.Text = ""
        End Sub

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Hai visto che hai scritto due volte

    Add("@valore1"

    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    errore nel copia incolla nel forum.. sul mio codice era presente "@valore2" quindi il problema non è questo..

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Nel tuo DB il campo Data_scadenza è di tipo Date/Time o altro?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    si, utilizzo un DB access e il campo è di tipo DATA/ORA

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Non includere l'ora quando aggiungi i valori ma solo la data ... quindi

    = valore1.ToShortDateString()
    = valore2.ToShortDateString()
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    a questo non ci avevo pensato, grazie funziona

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Per essere più precisi, quando si usa un campo DATE/TIME in un BETWEEN bisogna fare un distinguo:

    se il campo DateTime prevede la data completa di orario, allora nei parametri vanno aggiunti anche l'orario, come spiego nel mio articolo su ADODB che si vede in firma (anche se per VB 6.0, il concetto è identico).
    Altrimenti il range di valori non è esatto.

    Ti consiglio di leggertelo perchè parla proprio della casistica sulla gestione delle date.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    138
    se il campo DateTime prevede la data completa di orario, allora nei parametri vanno aggiunti anche l'orario, come spiego nel mio articolo su ADODB che si vede in firma (anche se per VB 6.0, il concetto è identico).
    Altrimenti il range di valori non è esatto.
    OK la leggerò,grazie :-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.