Casella Combinata doppia Ricerca

di il
5 risposte

Casella Combinata doppia Ricerca

Ciao a tutti, faccio prima di tutto le dovute presentazioni. 

Sono Jacopo, faccio il geometra, e utilizzo access per l'intera gestione dello studio tecnico. Pratiche aperte, ticket, cose da fare, clienti, mail e quant'altro.

Tutto sviluppato, migliorato e creato negli anni a seconda delle esigenze.

Ora vengo al motivo per cui sono qui: 

Ho sempre gestito le anagrafiche con i campi “Cognome/Denominazione”, “Nome”, “ID”, e tutti altri dati tipo telefono mail etc che al momento sono superflui.

Ora mi occorre inserire anche l'eventuale società di cui fanno parte. Faccio esempi con nomi inventati. 

Signor Mario Rossi, di Mariorossi&co. 

Signor Antonio Conte, di Facilecomandare.

Quindi ho un set dati in una tabella raccolto con “Nome”, “Cognome”, “Società”.

Utilizzo tutto da una maschera dove vedo tutti i dettagli e che filtro tramite una casella combinata creata in questo modo:

colonna 1: ID (Nascosto)

colonna 2: Cognome

Colonna 3: Società

Colonna 4 Nome

Quando inserisco testo, la ricerca avviene solo sulla colonna 2. Vorrei poter cercare anche sulla colonna 3.

Perchè mettiamo caso che cerco la società “Facilecomandare”, ma non mi ricordo il cognome del referente (Conte nell'esempio), non la trovo mai più. E viceversa. Non posso eseguire la ricerca solo sul cognome per lo stewsso motivo.

Al momento ho ovviato con 2 caselle combinate, ma mi piacerebbe poterle unire.

Ho escluso la possibilità di utilizzare un solo campo perchè faccio la ricerca duplicati sul set “Nome-Cognome” escludendo la società.

Potrei inserire 3 volte Mariorossi&co ma con 3 persone e mail diverse.

Spero di essere stato chiaro e spero possiate illumnarmi

Grazie a tutti.

Jacopo S.

5 Risposte

  • Re: Casella Combinata doppia Ricerca

    Forse ci sono vari modi di gestire questa cosa. Io farei così:

    1. Crei 2 query differenti qCog e qSoc, nella prima metti in evidenza il Cognome, nella seconda la Società. Entrambe le query devono avere il primo campo ID (che fa da perno per entrambi i casi)
    2. Presiponi che la qCog sia la query di default che governa la tua casella combinata
    3. Nella maschera aggiungi un pulsante Commuta che commuta il RowSource (Origine riga). Per fare questo ti servi di un codice VBA che lavora così:
    Private Sub Commuta_Click()
    If Me!NomeCasellaCombinata.RowSource = “qCog” Then
        Me!NomeCasellaCombinata.RowSource = “qSoc”
        Else
        Me!NomeCasellaCombinata.RowSource = “qCog”
    End If
    End Sub
  • Re: Casella Combinata doppia Ricerca

    04/03/2024 - OsvaldoLaviosa ha scritto:


    Forse ci sono vari modi di gestire questa cosa. Io farei così:

    1. Crei 2 query differenti qCog e qSoc, nella prima metti in evidenza il Cognome, nella seconda la Società
    2. Presiponi che la qCog sia la query di default che governa la tua casella combinata
    3. Nella maschera aggiungi un pulsante Commuta che commuta il RowSource (Origine riga). Per fare questo ti servi di un codice VBA che lavora così:
    Private Sub Commuta_Click()
    If Me!NomeCasellaCombinata.RowSource = “qCog” Then
        Me!NomeCasellaCombinata.RowSource = “qSoc”
        Else
        Me!NomeCasellaCombinata.RowSource = “qCog”
    End If
    End Sub

    Grazie! Che concettualmente è come usarne due giusto? Semplicemente le commuto. Speravo nella possibilità di poterle usare in modo “fluido”, tipo rubrica del telefono che se scrivo io momento il cognome non devo specificare cosa sto scrivendo 

  • Re: Casella Combinata doppia Ricerca

    L'uso di una combobox ha senso se si deve operare una scelta su un numero limitato di record e su un solo campo.

    Più che una scelta stai temtando di creare un filtro o una ricerca.

    Per fare questo devi avere una query parametriva principale. La stessa query che seleziona il cognome, una che seleziona il nome (anche perché se è probabile yrovare due rossi e due celestini, è sicuro che trovi n giuseppe e n salvatore), quindi passare da cognome a nome non semplifica anslzi complica.

    Chiusa parentesi, nella query parametrica avrai

     where 

    cognome like [combo1]

     and nome like [combo2] 

    and ditta like [combo3]

    Così filtri per rossi, mario, ditta srl.

    Le probabilità che due mario rossi lavorino per la ditta srl sono poche 

  • Re: Casella Combinata doppia Ricerca

    04/03/2024 - Jsinnato ha scritto:


    Grazie! Che concettualmente è come usarne due giusto? Semplicemente le commuto. Speravo nella possibilità di poterle usare in modo “fluido”, tipo rubrica del telefono che se scrivo io momento il cognome non devo specificare cosa sto scrivendo 

    Le qCog e qSoc devono avere le stesse proprietà, es. numero colonne, larghezza colonne, larghezza elenco. Il punto di forza è avere in comune il primo campo ID…come per dire che se scelgo da qCog o qSoc, vedrai diversamente il dato visualizzato, ma anche commutando, ID resta lo stesso.
    In una situazione più complessa io ho usato una volta una commutazione con 5 possibili visualizzazioni. Le 5 query che si avvicendano vengono scelte da una casella combinata a parte, ma tutte e 5 le query hanno il campo ID alla prima posizione, i dati inseriti sempre coerenti.

  • Re: Casella Combinata doppia Ricerca

    Ribadisco che concettualmente è sbagliato.

    Cognome:

    Rossi mario

    Rossi luigi

    Rossi giuseppe

    Nomi:

    Giuseppe rossi

    Giuseppe verdi

    Giuseppe bianchi

    A parte che avresti una tabella intera (n record) nella combo…

    Query cognome: select cognome from tabella

    Union select “%” group by cognome

    Query nome xome.sopra

    Query azienda come.sopra.

    Query visualizzazione select… where cognome like combo ecc..

    Valore combo cognome: % mostra tutti rossi mostra solo rossi.

    Valore combo nome % mostra tutti mario mostra tutti i mario ecc..

    Le combinazioni 

    % % % mostra tutti i record

    Rossi % % mostra tutti i rossi

    Rossi % dittax mostra i rossi della dittax

    E così via… poi nulla vieta di fare come preferisci.

Devi accedere o registrarti per scrivere nel forum
5 risposte