Forse nelle proprieta' di una casella combinata

di il
9 risposte

Forse nelle proprieta' di una casella combinata

Buongiorno e buona Pasquetta
in una maschera seleziono il record da editare scegliendo da una casella combinata
la casella combinata pesca da una tabella anagrafiche senza fare alcuna selezione anche se nella tabella anagrafiche c'e' un campo flag si/no
ora vorrei fare in modo di piazzare un interruttore nella maschera in modo che
se non e' premuto l'interruttore la casella combinata pesca da tutta la tabella anagrafiche, quindi con il flag sia su si che su no
se e' premuto l'interruttore la casella combinata pesca soltanto i record che hanno il flag si
secondo voi e' possbile?
forse bisogna intervenire sulle proprieta' della casella combinata?
avete qualche idea?
grazie

9 Risposte

  • Re: Forse nelle proprieta' di una casella combinata

    Ciao Walter,

    a mio avviso puoi ricreare l'origine della combo con i vari casi tramite dei pulsanti o checkbox, alla pressione o modifica dei suddetti ricomponi la stringa origine della combo e ricalcoli il controllo con il suo requery

    oppure puoi crearti un parametro nei criteri della query del campo SI/NO associato alla check in maschera... vale sempre il requery del controllo combobox dopo aver effettuato la scelta...

    altri ti daranno informazioni più dettagliate ma credo che la sostanza sia questa descritta
  • Re: Forse nelle proprieta' di una casella combinata

    a mio avviso puoi ricreare l'origine della combo con i vari casi tramite dei pulsanti o checkbox, alla pressione o modifica dei suddetti ricomponi la stringa origine della combo e ricalcoli il controllo con il suo requery
    Grazie CicciuPrime Esatto! infatti e' proprio quello che dovrei fare. associare una stringa sql diversa secondo la posizione dell'interruttore nella maschera
    il problema e' che non so dove andarla a comunicare alla combo, insomma dove "piazzarla"
    probabilmente una riga tipo:
    me.[nomedellacombo].(la proprieta' penso) = "stringa SQL"
    me.[nomedellacombo].requery
    Che ne pensi? Qualche suggerimento?
  • Re: Forse nelle proprieta' di una casella combinata

    Quale sarebbe la difficoltà che incontri dal momento che hai intuito che serve una Stringa SQL con Criterio WHERE FLAG=TRUE oppure nessun criterio...
    Mi pare la soluzione sia già disegnata...
  • Re: Forse nelle proprieta' di una casella combinata

    Ciao Alex
    dici che e' abbastanza semplice da impostare cosi' :
    cboDept.RowSource = "SELECT Department FROM tblDepartments"
    seguito da un requery ?
  • Re: Forse nelle proprieta' di una casella combinata

    Il requery serve...?
  • Re: Forse nelle proprieta' di una casella combinata

    Come al solito grazie Alex
    il requery non serve e la routine funziona perfettamente
    PV_Inattivi e' ovviamente una private della form
    Private Sub Form_Load()
    PV_Inattivi = True
    End Sub
    
    Private Sub intInattivi_Click()
    Dim myTutti, myAttiv
    myTutti = "SELECT Anagrafe.ID_ANAGRAFE, Anagrafe.NOME, Anagrafe.CORSO, Anagrafe.DATA_ISCRIZIONE, Anagrafe.ATTIVO "
    myTutti = myTutti & "FROM Anagrafe ORDER BY Anagrafe.NOME;"
    myAttiv = "SELECT Anagrafe.ID_ANAGRAFE, Anagrafe.NOME, Anagrafe.CORSO, Anagrafe.DATA_ISCRIZIONE, Anagrafe.ATTIVO "
    myAttiv = myAttiv & "FROM Anagrafe WHERE Anagrafe.ATTIVO = True ORDER BY Anagrafe.NOME;"
    If PV_Inattivi Then
        PV_Inattivi = False
        cboIDAnagrafica.RowSource = myTutti
    Else
        PV_Inattivi = True
        cboIDAnagrafica.RowSource = myAttiv
    End If
    End Sub
  • Re: Forse nelle proprieta' di una casella combinata

    Sempre ti serva la Variabile [PV_Inattivi], secondo me no perchè è sempre NOT Interruttore quindi inutile... io semplificherei così:
    
    Private Sub Form_Load()
        PV_Inattivi = True
    End Sub
    
    Private Sub intInattivi_Click()
        Dim strSQL  As String
        Dim strWHR  As String
        strSQL = "SELECT Anagrafe.ID_ANAGRAFE, Anagrafe.NOME, Anagrafe.CORSO, Anagrafe.DATA_ISCRIZIONE, Anagrafe.ATTIVO "
        strSQL = strSQL & "FROM Anagrafe "
        If PV_Inattivi Then
            strWHR = " WHERE Anagrafe.ATTIVO = True "
        End If
        strSQL = strSQL & strWHR & " ORDER BY Anagrafe.NOME;"""
        cboIDAnagrafica.RowSource = strSQL
        Me!PV_Inattivi = Not Me!intInattivi
    End Sub
    P.S. attenzione a come dichiari le Variabili questo non va bene:
    
    Dim myTutti, myAttiv
  • Re: Forse nelle proprieta' di una casella combinata

    Al solito grazie Alex
    Mi viene in mente un famoso aforismo di Gianni Agnelli:
    Ogni cosa fatta bene puo' sempre essere fatta meglio.

    Perche' nelle dichiarazioni Dim e' sempre necessario indicarne il tipo? Qual'e' il vantaggio?
  • Re: Forse nelle proprieta' di una casella combinata

    Walter61 ha scritto:


    Al solito grazie Alex
    Mi viene in mente un famoso aforismo di Gianni Agnelli:
    Ogni cosa fatta bene puo' sempre essere fatta meglio.

    Perche' nelle dichiarazioni Dim e' sempre necessario indicarne il tipo? Qual'e' il vantaggio?
    Se non dichiari il TYPE siccome il sistema non può inventare nulla, attribuisce un VARIANT, che tuttavia non ha senso se si sa che il TYPE sarà stringa, e soprattutto perchè il VARIANT occupa più spazio in memoria... che se non serve... è tecnicamente inutile ---> ERRATO.
Devi accedere o registrarti per scrivere nel forum
9 risposte