Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 37
  1. #1

    Ricerca filtrata dei campi

    Ho appena iniziato lo stage presso un'azienda e come esercizio devo creare un semplice programma che gestisca un database: ricerche, ricerche filtrate, apertura e stampa dei report, aggiunta e eliminazione dei record, eccetera...
    Avevo fatto praticamente tutto il programma in mezza giornata... ma ora è una settimana che sputo sangue e sudore per implementare una ricerca filtrata!
    Le cose da sapere sono varie; il database fa schifo, ovvero ha una sola tabella, ma con 27 campi, per quanto riguarda invece la struttura del programma, ve la elenco di seguito.
    Ho la form principale di ricerca, comprende 7 textbox riferite ai primi 7 campi (gli altri 20 sono liberi), le text sono legate a un Data che scorre lungo il database e assegna di volta in volta nelle text i record corrispondenti. Al lato delle text ci sono delle checkbox, se vengono spuntate si apre un'altra form in cui appaiono delle combo riferite alle textbox spuntate.
    Ora, l'idea sarebbe questa; nelle combo viene visualizzato un solo tipo per record, ovvero se ho il campo "Pizze" con 10 record di cui 5 margherita, 3 marinara e 2 capricciosa, nella combo riferita alla text riferita al campo "Pizze" devono apparire un margherita, una marinara e una capricciosa, un elemento per tipo di pizza. Un'altra combo per esempio riguarda il tempo di cottura, se ho vari minuti di cottura, un elemento per ogni tempo di cottura (in pratica niente doppioni), eccetera...
    Scegliendo un elemento anche le altre combo devono variare, ovvero se sceglo la margherita che si cuoce in 7 o 8 minuti, devono sparire nella combo "tempo_cottura" i minuti per esempio 10 e 12 che non si riferiscono alla margherita.
    Dopo aver fatto tutte le scelte si torna indietro, nelle textbox debbono apparire SOLO le pizze scelte (e gli eventuali altri campi); se scelgo solo le margherite devono apparire, scorrendo con la Data, tutte le margherite presenti nella tabella, se scelgo anche il tempo "7 minuti", tutte le pizze margherita della tabella, ma con l'aggiunta dei 7 minuti e quindi le margherita che si cuociono in 8 minuti devono sparire.

    Spero di essere stato chiaro... e spero che qualche anima buona mi aiuti perché è una settimana che ci perdo l'anima... sono a uno stage, devo fare una bella figura!

    Se avete altri metodi per effettuare una ricerca filtrata ditemeli!

    P.S. eventualmente scrivete anche il codice per comprendere meglio!

    Grazie!



    Frankleen

  2. #2
    credi che una cosa del genere possa andar bene?

    minuti = 7
    pizze = "margherita"

    strFiltro = "minuti = 7 AND pizza = 'margerita'"

    applichi il filtro all'oggetto data e tutto dovrebbe funzionare.


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3
    Non credo possa andare... in questo modo dovrei creare un'infinità di combinazioni.
    Inoltre in questo modo setto i record esistenti... se ne vengono aggiunti dei nuovi?
    Come hai scritto tu si settano anzitutto tutti i record possibili, dopodiché tutti i filtri possibili, ovvero dovrei inserire "minuto01 = 7, minuto02 = 10,..." e poi le varie combianzioni dei filtri.
    Forse ho capito male, ma pare sia quello che hai scritto...
    Mi servirebbe che siano le combo a determinare i filtri e la data prendere i valori filtrati e impostarli nelle textboxes...

    Frankleen

  4. #4
    ok, pensavo fosse chiaro, ma evidentemente mi sbagliavo

    se ad esempio hai 2 combo: cmbMinuti, cmbPizze
    il tuo filtro sarà così costruito:
    codice:
    if cmbMinuti<>"" then strFiltro = "minuti = " & CInt(cmbMinuti)
    if cmbPizze<>"" then 
        if strFiltro<>"" then strFiltro = strFiltro & " AND "
        strFiltro = strFiltro & "pizze = '" & cmbPizze & "'"
    end if
    e così via per tutti i controlli che devi filtrare


    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Niente da fare... non ci riesco...

    AAAAARGGGHH! Ora sclero!

    Dovrei farti vedere il codice, ma è abbastanza lungo...
    Non è che riesci a farmi al volo una ricerca filtrata in modo da copiarla e incollarla nel mio progetto?

    I 7 campi sono:

    Operator

    Date

    Project

    Customer

    LotCode

    Passed

    Item

    la tabella del database si chiama Test...

    Un disastro...
    Chissà quando risolverò il problema!



    Frankleen

  6. #6
    che tipo dato sono i campi della tabella?

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Operator (testo)

    Date (data/ora)

    Project (testo)

    Customer (testo)

    LotCode (testo)

    Passed (sì/no)

    Item (testo)



    Frankleen

  8. #8
    ho chiamato le combo anteponendo al nome del campo il prefisso "cmb", vedi tu di adeguarlo alle tue necessità
    codice:
    If cmbOperator <> "" Then
        strFiltro = "Operator = '" & cmbOperator & "'"
    End If
    
    If cmbData <> "" Then
        If strFiltro <> "" Then strFiltro = strFiltro & " AND "
        strFiltro = "Date = #" & cmbData & "#"
    End If
    
    If cmbProject <> "" Then
        If strFiltro <> "" Then strFiltro = strFiltro & " AND "
        strFiltro = "Project = '" & cmbProject & "'"
    End If
    
    If cmbCustomer <> "" Then
        If strFiltro <> "" Then strFiltro = strFiltro & " AND "
        strFiltro = "Customer = '" & cmbCustomer & "'"
    End If
    
    If cmbLotCode <> "" Then
        If strFiltro <> "" Then strFiltro = strFiltro & " AND "
        strFiltro = "LotCode = '" & cmbLotCode & "'"
    End If
    
    Dim blnPassed As Boolean
    If cmbPassed = True Then
         blnPassed = -1
      Else
         blnPassed = 0
    End If
    	
    If strFiltro <> "" Then strFiltro = strFiltro & " AND "
    strFiltro = "Passed = " & blnPassed
    
    If cmbItem <> "" Then
        If strFiltro <> "" Then strFiltro = strFiltro & " AND "
        strFiltro = "Item = '" & cmbItem & "'"
    End If

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  9. #9
    Mi da un errore di compilazione...

    "Invalid outside procedure"

    Come mai?
    Ho anche dichiarato strFiltro As String...



    Frankleen

  10. #10
    scusami, correggi questo
    Dim blnPassed As Boolean

    così

    Dim blnPassed As Integer

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.