caterebo ha scritto:
la casella che appare infono evidenzia ma in realtà non filtra e la casella combinata non mi piace prorpio, vorrei riuscire a farlo con VBA.
So utilizzare VBA solo per le cose più semplici ... credo che con una dritta sui codici da utilizzare potrei riuscirci...
Guarda non serve la Combo, serve proprio una TextBox...!
Il codice è semplice ma non banale e non credo sia solo questione di una dritta... ma provo a dartela.
Insostanza devi ricostruire la concatenazione dei campi con il criterio che è quanto digiti nella TextBox.
Quindi se la Form ha 3 Campi dovrai ottenere
[Campo1] LIKE '*TestoDigitato*' OR [Campo2] LIKE '*TestoDigitato*' OR [Campo3] LIKE '*TestoDigitato*'
Dopo di che costruita la stringa la applichi alla proprietà FILTER...!
Come puoi vedere si applica a campi di tipo Testo, quindi dovrai convertire quello NON Testo in Testo nel criterio stesso.
Ora l'elenco dei campi lo trovi nella Collection FIELDS del Recordset di maschera, quindi fai un ciclo su quello per Ogni FIELD nella collection FIELDS... mentre il FieldType, per capire se devi attuare la conversione o meno, conviene convertire tutti a prescindere...
Diventerà pertanto una cosa simile:
str([Campo1]) LIKE '*TestoDigitato*' OR str([Campo2]) LIKE '*TestoDigitato*' OR str([Campo3]) LIKE '*TestoDigitato*'
Uso [str] invece di [cStr] per mantenere il carattere di separtazione dei decimali... altrimenti otterresti la Virgola al posto del punto con la conversione...!
Il tutto se hai capito bene richiede 10 righe di codice non di più.