Filtro su evento Keyup

di il
20 risposte

20 Risposte - Pagina 2

  • Re: Filtro su evento Keyup

    eddy1973 ha scritto:


    So bene che:
    If Len(data_rich & vbNullString) > 0 Then ...
    agisce nel controllare se la variabile data_rich risulti vuota, che si tratti di stringa, numerico o data).
    Se hai capito questo che dici... come può essere vera l'affermazione successiva...?

    eddy1973 ha scritto:


    Il problema che mi pongo è come si agisce nel caso di una data nell'utilizzo del controllo. Ovvero nel caso di variabile numerica e testo si usa vbNullString per valutare se alla variabile è assegnato un valore, ma nel caso di una data come si esegue il controllo?
    Di cosa parli...?????
    Se ti è chiaro che il controllo agisce su tutti e 3 i TIPI... perchè ora dici che non sai come controllare la data...??????
    Devi essere chiaro, perchè se si somma alle lacune una capacità espositiva non così agevole... alla 4° volta inzia ad essere complesso capire come aiutarti.
  • Re: Filtro su evento Keyup

    Scusa.. ma forse non sono chiaro.
    la racconto cosi: il controllo
    If Len(data_rich & vbNullString) > 0 Then ...
    serve a verificate se una variabile (in questo caso è data_rich ma potrebbe essere anche variabilex) sia vuota oppure no.
    Se però uso vbNullString per una data mi restituisce errore perché suppongo che per controllare se una variabile associata ad una data sia vuota o meno non si usi vbNullString ma si opera in altro modo. Mi chiedevo quale fosse questo modo.
  • Re: Filtro su evento Keyup

    eddy1973 ha scritto:


    Scusa.. ma forse non sono chiaro.
    la racconto cosi: il controllo
    If Len(data_rich & vbNullString) > 0 Then ...
    serve a verificate se una variabile (in questo caso è data_rich ma potrebbe essere anche variabilex) sia vuota oppure no.
    Se però uso vbNullString per una data mi restituisce errore perché suppongo che per controllare se una variabile associata ad una data sia vuota o meno non si usi vbNullString ma si opera in altro modo. Mi chiedevo quale fosse questo modo.
    Non hai capito proprio cosa faccia quella riga... e credo che le tue "supposte" siano sbagliate.

    Premesso che in quella Istruzione ci dovrebbe essere il Controllo in cui si inserisce la Data, ovvero la TextBox DataInizio... come poi hai fatto per gli altri pezzi... quindi la lettura del dato dalla TextBox subisce il CASTING del DataType a String, in modo da consentire alla Funzione LEN(stringa) di funzionare...!
    Una "VARIABILE" non si associa ad una Data, una Variabile ha un DataType ed un VALORE...!
    Una Variabile NON è un Controllo.

    Un controllo può Valere NULL, una Variabile di tipo DATA NO.

    Se passi alla funzione LEN(...) un valore NULL ovviamente restituisce errore, ma se concateni qualsiasi Valore Variant(Null) con vbNullString, questo subisce la conversione implicita in Stringa con valore vbNullsting appunto che ha LEN=0.

    Passata la lezione di TERORIA, che però devi studiarla a casa su qualche libro..., nel caso in cui tu usassi una Variabile di tipo DATA sapresti che, anche non Valorizzata avrebbe un VALORE che se letto da LEN=8 "00:00:00", mentre un Campo di tipo Data può avere valore NULL.

    Quindi ipotiziamo che tu abbia confuso e che quella Variabile [data_rich] in relatà sia un Controllo a cui è bene riferirsi con [Me!data_rich]... ancorchè sia associato ad un Campo Data, ed ancorchè abbia valore NULL. quell'istruzione NON PUO' generare errore il motivo che tu supponi, quanto invece per l'errata SINTASSI del FieldType...

    Quindi non è che non ti spieghi, il problema è che dici cose che non hanno un senso tecnico e si fatica a ricondurle ad un senso reale... logico.
  • Re: Filtro su evento Keyup

    Riflettendoci bene si, una data non può essere associata ad una variabile e pertanto devo passare direttamente il controllo me!txt_data_rich nella Len(). Quindi inserendo direttamente il controllo nella Len() avviene automaticamente la conversione a string del dato del controllo?
    Facendo questo non restituisce l'errore, però il filtro non opera e col debug.print strwhere ottengo testo un andare a capo nella finestra immediata che non capisco.
  • Re: Filtro su evento Keyup

    eddy1973 ha scritto:


    Riflettendoci bene si, una data non può essere associata ad una variabile
    Ma no... anche quì dici una cosa non sensata.
    
    Dim mDate As Date
    mDate=me!txt_data_rich
    Tuttavia siccome mDate è di tipo [Date] prima di Assegnarla devi accertarti che non sia NULL, oppure si entra nella gestione errori... oppure in questo caso potrebbe valer la pensa usare un VARIANT.
    In ogni cmodo nel tuo caso specifico NON SERVE.

    eddy1973 ha scritto:


    e pertanto devo passare direttamente il controllo me!txt_data_rich nella Len(). Quindi inserendo direttamente il controllo nella Len() avviene automaticamente la conversione a string del dato del controllo?
    Facendo questo non restituisce l'errore, però il filtro non opera e col debug.print strwhere ottengo testo un andare a capo nella finestra immediata che non capisco.
    Devi fare DEBUG perchè hai troppe lacune e devi imparare a seguire il codice e la valorizzazione delle variabili passo passo...
    Ad aggiungere poi, tu non fai mai la gestione errori...

    Per darti un indicazione puoi verificare meglio se tutte le condizioni che hai inserito sono corrette come Formattazione... perchè metti APICETTI in tutte le righe... come se TUTTE fossero Campi TEsto... ma anche questo..?
    
    If Len(Me.txt_Num_Camp.text & vbNullString) > 0 Then strwhere = strwhere & "Numero_Campione= '" & Me.txt_Num_Camp.text & "' And "
  • Re: Filtro su evento Keyup

    Ok. Seguirò le tue indicazioni.
    Grazie.
Devi accedere o registrarti per scrivere nel forum
20 risposte