Condividi tramite

Filtro maschera Access

Anonimo
2025-04-09T19:12:13+00:00

Avrei veramente bisogno di riuscire a impostare un filtro in una combobox.

Ti spiego la mia situazione:

Ho un db access per gestire delle prestazioni fornite da uno studio.

Utilizzo 5 Tabelle per gestirle, lo trovi in allegato.

Nella mia maschera per inserirle utilizzo una combobox cmbPrestazioni.

la sua rowsource è:

SELECT Anagrafica_Prestazioni.ID_Prestazione, Tipo_Macro & ' - ' & Desc_Prestazione AS VoceCompleta FROM Anagrafica_Prestazioni ORDER BY Anagrafica_Prestazioni.Tipo_Macro, Anagrafica_Prestazioni.ID_Prestazione;

Con 2 colonne 0cm;7cm;

Quello che vorrei fare è permette all'utente di riuscire a filtrare i possibili risultati mentre scrive.

Ad esempio: se scrive "Assist" sotto dovrebbero comparire tutte le prestazioni con Desc_Prestazione, oppure con VoceCompleta che comprende le lettere consecutive "Assist" o "assist".

se cancella una lettera allora si cancella anche dal filtro. Se la cmb è vuota allora ripartiamo dalla rowsource originale.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

4 risposte

Ordina per: Più utili
  1. Anonimo
    2025-07-03T11:48:14+00:00

    Buon pomeriggio,

    questo è il codice che permette di cambiare il filtro della maschera corrente. Affinché il focus rimanga sulla casella di testo "txtFiltro", c'è l'istruzione me.txtFiltro.setfocus. L'ultima riga permette di posizionare il cursore alla fine della stringa inserita come filtro; dovrebbe essere più usabile.

    Saluti

    Michele

    Private Sub txtFiltro_Change()

    If Me.txtFiltro <> "" Then
    
        Me.Filter = "[Desc\_Prestazione] like '\*" & Me.txtFiltro & "\*'  OR VoceCompleta LIKE '\*" & Me.txtFiltro & "\*'"
    
        Me.FilterOn = True
    
        Me.Requery
    
        Me.txtFiltro.SetFocus
    
        Me.txtFiltro.SelStart = Len(Me.txtFiltro)
    
    End If
    

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2025-04-10T16:02:40+00:00

    Scusa ma quello che hai realizzato fino a ora è pasta tua o copiato qua e là?

    Ci sono errori di base nella strutturazione del database:

    • mancano le relazioni con tanto di integrità referenziale che non permetterebbe l'errore di inserire una Prestazione senza aver selezionato un Cliente, ciò che ora avviene
    • non correta gestione delle proprietà dei campi specialmente quella Richiesto che come nel caso attuale del campo Durata_Prestazione dovrebbe essere impostata su Sì che non permetterebbe l'errore di inserire una Prestazione senza aver inserito un orario valido, ciò che ora avviene
    • nella tabella Referenti perchè ci sono i campi dal Lunedì al Venerdì?

    per aiutarti sarebbe bene che prima spiegassi, nei dettagli, che cosa dovrebbe fare questo database in modo da creare una struttura dello stesso corretta.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2025-04-10T07:05:32+00:00

    Buongiorno,
    chiedo scusa, la penultima frase è errata, l'ho corretta.

    https://limewire.com/d/1pbiE#FVH9T4jwF1

    Ecco il database.

    Molte grazie!

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2025-04-10T05:42:36+00:00

    Non c'è nessun allegato, se vuoi puoi postare un file di esempio ma devi usa un sito di condivisione file tipo

    https://filetransfer.io/ 

    Nell'esempio appaiono tutti asterischi è corretto?

    La risposta è stata utile?

    0 commenti Nessun commento