+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Filtrare per Mese e Anno senza inserire i Giorni

  1. #1
    L'avatar di Maury63
    Maury63 non  in linea Scolaretto
    Luogo
    Torino
    Post
    178

    Filtrare per Mese e Anno senza inserire i Giorni

    ciao a tutti

    ho un problema

    vorrei riuscire a filtrare le date solo con il mese e l'Anno senza mettere il giorno.
    questo perch mi serve per filtrare l'intero Mese dell'anno selezionato

    Esempio cos filtro tutti i dati alla data del 10 Giugno 2010

    WHERE (((Archivio_Entrate.Data)="10/06/2010"));

    adesso chiedo s' esiste qualche simbolo per sostituire la casella dei Giorni
    ho provato con WHERE (((Archivio_Entrate.Data)="##/06/2010"));
    ma non funziona!

    grazie per eventuali risposte
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  2. #2
    Luogo
    Padova
    Post
    4,243
    Blogs
    36
    Devi traformare il tutto in
    codice:
    SELECT ...
    WHERE archivio.data BETWEEN @datainizio AND @datafine
    dove @datainizio il segnaposto per la data inizio del mese e @datafine il segnaposto per la data fine mese.
    ----------------------------------------------------------
    Se avete delle domande fatele prima al forum
    Il mio blog su Masterdrive.it
    Il mio blog su Visual-Basic.it

  3. #3
    L'avatar di Maury63
    Maury63 non  in linea Scolaretto
    Luogo
    Torino
    Post
    178
    inanzitutto grazie Cteniza per aver risposto

    si quello che mi hai postato l'avevo gi provato ed ogni volta che cambia il mese devo mettere data inizio mese e data fine mese

    invece io vorrei realizzare questo:
    Cliccando su un qualsiasi giorno del mese utilizzando DateTimePicker1 mi dovrebbe filtrare solo i dati dove trova il mese e l'Anno cliccato.



    Esempio: cliccando la data del 20/06/2010

    mi dovrebbe filtrare tutte le date del 06/2010
    indipendentemente dal Giorno

    spero di essermi Spiegato bene.

    non s' se una cosa del genere Possibile realizzarla !!!!!!!!!!

    grazie ciao
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  4. #4
    Luogo
    Padova
    Post
    4,243
    Blogs
    36
    Fai cos:
    Quando estrai i dati dal database imposta anche due campi calcolati, mese e anno.
    collega il dataset ad un bindingsource
    sull'evento del picker calcoli mese e anno prescelto e cambi il rowfilter del bindingsource mettendo Anno = variabile and mese = variabile
    ----------------------------------------------------------
    Se avete delle domande fatele prima al forum
    Il mio blog su Masterdrive.it
    Il mio blog su Visual-Basic.it

  5. #5
    L'avatar di Maury63
    Maury63 non  in linea Scolaretto
    Luogo
    Torino
    Post
    178
    ciao Cteniza

    scusa la mia ignoranza (non ti Arrabbiare) non ho abbastanza conoscenza del linguaggio per poter impostare tutto quello che mi hai gentilmente Postato.
    io ho una situazione di questo genere:

    codice:
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            'Nuova istanza dell'oggetto OledbConnection che contiene la stringa di connessione 
            'al database residente nella cartella dell'applicazione(DataDirectory)
            conn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= |DataDirectory|\Database_Bas.mdb;")
            'Nuova istanza dell'oggetto Command necessario per l'esecuzione delle query
            Cmd = New OleDb.OleDbCommand
            'Assegnazione della connessione all'oggetto Command
            Cmd.Connection = conn
            'Nuova istanza di una lista di stringhe contenente tutte le query da eseguire
            ListSql = New List(Of String)
            'Aggiunta di 3 SqlString per il popolamento del dataset
            ListSql.Add("SELECT * FROM Archivio_Entrate")
    
            ListSql.Add("TRANSFORM Sum(Archivio_Entrate.Quantita) AS SommaDiQuantita" & _
                        " SELECT Archivio_Entrate.HMI, Sum(Archivio_Entrate.Quantita) AS [Quantita]" & _
                        " FROM Archivio_Entrate" & _
                        " GROUP BY Archivio_Entrate.HMI PIVOT Archivio_Entrate.Riparare_Con")
    
            ListSql.Add("TRANSFORM Sum(Archivio_Riparati.Quantita) AS SommaDiQuantita " & _
                        " SELECT Archivio_Riparati.HMI, Sum(Archivio_Riparati.Quantita) AS Quantita" & _
                        " FROM Archivio_Riparati" & _
                        " GROUP BY Archivio_Riparati.HMI PIVOT Archivio_Riparati.Riparato_Con")
    
    
            'Nuova istanza dell'oggetto dataset
            Ds = New DataSet
          
            For Each Me.SqlString In ListSql
                'Assegno la Command la query da eseguire
                Cmd.CommandText = SqlString
                'Nuova istanza dell'oggetto DataAdapter al quale viene assegnato il Command 
                Dt = New OleDb.OleDbDataAdapter(Cmd)
                'Riempimento del dataset con i risultati della query ed assegnazione del nome della tabella in base all'attuale indice della lista
                Dt.Fill(Ds, "Tables" & ListSql.IndexOf(SqlString))
                'Distruggo l'oggetto DataAdapter
                Dt.Dispose()
    
            Next
    
            'Distruggo il Command
            Cmd.Dispose()
            'Cancello la lista
            ListSql = Nothing
    
            DataGridView1.DataSource = Ds.Tables(1)
            DataGridView1.Refresh()
    
            DataGridView2.DataSource = Ds.Tables(2)
            DataGridView2.Refresh()
    
        End Sub
        
    Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
        SceltaMeseAnno = DateTimePicker1.Value.ToString("MM/yyyy", New System.Globalization.CultureInfo("it-IT"))
        End Sub
    fattibile dopo aver visto come faccio a recuperare i dati dal Database inserire quello che hai postato?
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  6. #6
    L'avatar di Maury63
    Maury63 non  in linea Scolaretto
    Luogo
    Torino
    Post
    178

    Passare la Data dal Form su un Filtro a Campi Incrociati

    Ciao a Tutti

    Utilizzo un Filtro a Campi Incrociati per recuperare i Dati da un Database Access.

    come posso dal Form che utilizzo passargli la Data tramite il controllo DateTimePicker1
    e inserirla su WHERE Archivio_Riparati.Data LIKE '%/03/2010'

    Da notare Che quello che io Chiedo al Filtro Trovare tutto il Mese di Marzo 2010

    ho Gi Trovato il sistema per Modificare la data selezionata con DateTimePicker1

    codice:
      Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
            Label2.Text = DateTimePicker1.Value.ToString("MMMM  yyyy", New System.Globalization.CultureInfo("it-IT"))
            SceltaMese = DateTimePicker1.Value.ToString("MM/yyyy", New System.Globalization.CultureInfo("it-IT"))
            TextBox1.Text = "'%/" & SceltaMese & "'"
        End Sub
    codice:
            ListSql.Add("TRANSFORM Sum(Archivio_Riparati.Quantita) AS SommaDiQuantita " & _
                       " SELECT Archivio_Riparati.HMI, Sum(Archivio_Riparati.Quantita) AS Quantita" & _
                       " FROM Archivio_Riparati" & _
                       " WHERE Archivio_Riparati.Data LIKE '%/03/2010'" & _
                       " GROUP BY Archivio_Riparati.HMI PIVOT Archivio_Riparati.Riparato_Con")
    Grazie per Eventuali Risposte
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  7. #7
    L'avatar di elisab
    elisab non  in linea Very Important Person
    Post
    1,750
    Ciao
    ho unito le tue due discussioni che trattano lo stesso argomento.

    Cteniza ti ha indicato due diversi sistemi quale hai provato a realizzare?

    Se vuoi cambiare la query ti ha consigliato di usare BETWEEN @datainizio AND @datafine per tu continui con i caratteri jolly.

    Se hai un bindingSource e vuoi filtrare i dati gi caricati in memoria usando quello ti propongo un sistema che non prevede l'uso di colonne calcolate. ShippedDate il nome della colonna da filtrare.
    codice:
            Dim d1 As New Date(DateTimePicker1.Value.Year, DateTimePicker1.Value.Month, 1)
            Dim d2 As Date = d1.AddMonths(1)
            OrdersBindingSource.RemoveFilter()
            OrdersBindingSource.Filter = String.Format("ShippedDate >= '{0}' and ShippedDate < '{1}'", d1, d2)
    Ultima modifica di elisab; 30-06-2010 02:25 
    Il Crossposting vietato dalla Netiquette.

    Tutti gli utenti sono invitatati ad indicare nel titolo la versione di VB, Visual Studio o il Framework di compilazione.

    NB: In presenza del SyntaxHighlighter (codice colorato con numeri di riga a lato) prima di copiare il codice eseguire doppio click sulla finestra di codice, altrimenti mancheranno tutti i ritorno a capo.

  8. #8
    L'avatar di Maury63
    Maury63 non  in linea Scolaretto
    Luogo
    Torino
    Post
    178
    ciao elisab

    io ho continuato a sviluppare il sistema che volevo realizzare e direi che funziona benissimo ho provato a inserire sul database di access dei dati con la data del 01/06/2010 e alcuni con la data 30/06/2010
    e vengono filtrate esattamente come volevo

    ti invio il codice dai un'occhiata e fammi sapere
    ciao grazie a te e Cteniza .

    codice:
        Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
            Label2.Text = DateTimePicker1.Value.ToString("MMMM  yyyy", New System.Globalization.CultureInfo("it-IT"))
            SceltaMese = DateTimePicker1.Value.ToString("MM/yyyy", New System.Globalization.CultureInfo("it-IT"))
            TextBox1.Text = "'%/" & SceltaMese & "'"
        End Sub
    
    
    il risultato dopo la selezione con  DateTimePicker1  sul  TextBox1.Text = '%/06/2010'
    
    
     ListSql.Add("TRANSFORM Sum(Archivio_Entrate.Quantita) AS SommaDiQuantita" & _
                       " SELECT Archivio_Entrate.HMI, Sum(Archivio_Entrate.Quantita) AS [Quantita]" & _
                       " FROM Archivio_Entrate" & _
                       " WHERE Archivio_Entrate.Data LIKE " & TextBox1.Text & _
                       " GROUP BY Archivio_Entrate.HMI PIVOT Archivio_Entrate.Riparare_Con")
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

  9. #9
    L'avatar di elisab
    elisab non  in linea Very Important Person
    Post
    1,750
    Ciao
    non avevo capito hai due Form? Hai postato il codice della query e ho pensato che il problema riguardasse ancora quella. Cerca di focalizzare il problema: devi passare un dato da un form ad un altro.

    passare una variabile
    Il Crossposting vietato dalla Netiquette.

    Tutti gli utenti sono invitatati ad indicare nel titolo la versione di VB, Visual Studio o il Framework di compilazione.

    NB: In presenza del SyntaxHighlighter (codice colorato con numeri di riga a lato) prima di copiare il codice eseguire doppio click sulla finestra di codice, altrimenti mancheranno tutti i ritorno a capo.

  10. #10
    L'avatar di Maury63
    Maury63 non  in linea Scolaretto
    Luogo
    Torino
    Post
    178
    nulla di tutto
    io avevo solo il problema di inserire sulla query la seleziona del mese e anno, Selezionandola con DateTimePicker1 .
    non riuscivo a combinare il dato che usciva dal DateTimePicker1 con la struttura della query.
    Anche s' avevo trovato il sistema per formattare il Dato che usciva dalla selezione del DateTimePicker1 che Questo
    codice:
    Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged
            Label2.Text = DateTimePicker1.Value.ToString("MMMM  yyyy", New System.Globalization.CultureInfo("it-IT"))
            SceltaMese = DateTimePicker1.Value.ToString("MM/yyyy", New System.Globalization.CultureInfo("it-IT"))
            TextBox1.Text = "'%/" & SceltaMese & "'"
        End Sub
    praticamente non sapevo come Abbinare WHERE e LIKE con il TextBox1
    quello che mi serviva era solo questo.
    codice:
    " WHERE Archivio_Entrate.Data LIKE " & TextBox1.Text & _
    non s' se mi sono spiegato al meglio !!!
    per quando riguarda
    codice HTML:
    non avevo capito hai due Form? Hai postato il codice della query e ho pensato che il problema riguardasse ancora quella
    non ho 2 form ma due query sullo stesso form una l' ENTRATA e l'altra l' USCITA. che grossomodo anno la stessa struttura , si vede che la prima volta ho inserito questa query e la seconda volta ho inserito l'altra ma il senso non cambia perch tutte e due le Query anno bisogno di questo Codice
    codice:
    " WHERE Archivio_Entrate.Data LIKE " & TextBox1.Text & _
    Grazie per l'iteressamento.
    Il vero Amico rimane tale Soprattutto al momento del Bisogno

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi