+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Filtrare i dati di una maschera tramite inputbox

  1. #1
    Paolo1968 non è in linea Novello
    Post
    15

    Filtrare i dati di una maschera tramite inputbox

    Ciao a tutti,
    dopo vari tentativi mi arrendo e chiedo aiuto.
    Ho creato una maschera [Operatori] con una sottomaschera collegata [SM_Incarichi] che visualizza i record Incarichi filtrati per l'operatore e che contiene i campi: IDEvento, Evento, Data_Evento e Ora_Evento.
    Vorrei creare una inputbox per visualizzare solo quelli di un mese specifico, ho provato (senza successo):

    Dim Periodo
    Periodo = InputBox("Inserire Mese/Anno di riferimento", "Filtro Periodo di riferimento")
    Me.Filter = "[data_evento] = " * " & " / " & Periodo"
    Me.FilterOn = True

    restituisce errore per "tipo non corrispondente"

    Dov'è l'errore o esiste qualche altra soluzione?

  2. #2
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,677
    Quote Originariamente inviato da Paolo1968 Visualizza il messaggio
    ...
    codice:
     Me.Filter = "[data_evento] = " * " & " / " & Periodo"
     Me.FilterOn = True
    restituisce errore per "tipo non corrispondente"

    Dov'è l'errore o esiste qualche altra soluzione?
    L'errore sta nel fatto che [data_evento] presumibilmente è un campo data e come filtro ovviamente si aspetta una data mentre tu gli stai passando una stringa di testo.
    Considerando che vuoi filtrare solo per mese (anche se poi nella inputbox chiedi anche l'anno, dal codice con cui la chiami) farei una combobox con 12 valori, per i 12 mesi. La inputbox lascia troppa libertà all'utente, sempre pronto a diventare utonto, per scrivere di tutto e di più che al 99% è sbagliato.
    Poi fai una cosa del tipo
    codice:
    Me.Filter = "Month([data_evento]) = " & cboMese
    Ultima modifica di Phil_cattivocarattere; 10-10-2019 12:17 

  3. #3
    Paolo1968 non è in linea Novello
    Post
    15
    Grazie per la risposta, l'avevo pensata ma poi, un domani, filtrerà i dati con i mesi dei vari anni e non sarà corretto.

  4. #4
    Paolo1968 non è in linea Novello
    Post
    15
    Sicuramente macchinoso ma ho risolto così:
    Periodo = InputBox("Inserire Mese/Anno di riferimento" & Chr(13) & Chr(13) & " Formato mm/aaaa", "Filtro Periodo di riferimento")
    Me.Filter = "Month([Operatori_Eventi_SM].[data_evento])=" & Left(Periodo, 2) & "AND Year([Operatori_Eventi_SM].[data_evento])=" & Right(Periodo, 4)
    Me.FilterOn = True

    Se qualcuno ha suggerimenti diversi pronto ad imparare.
    Ciao

  5. #5
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,110
    Devi usare la Funzione FORMAT anche nel Criterio... e confronti le 2 stringhe... tanto sempre di strighe parliamo...!

    codice:
    Me.Filter="Format([data_evento],"mm/yyyy")=" & Periodo
    Io tuttavia farei attenzione a VALIDARE il dato dell'InputBox... che io non uso, a favore di una Form personalizzata alla quale passare la InputMask e la ValidationRule... perchè se l'utente li scrive PIPPO... tu vai in difficoltà...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi