Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

di il
11 risposte

Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

Buongiorno,
ho una maschera nella quale devo filtrare un campo
in base ad una stringa copiata da un campo di un'altra maschera
ed assegnata ad una variabile.
Ho fatto il codice di seguito:
Dim VST As String

Forms!AUDIT!Testo35.SetFocus

VST = Forms!AUDIT!Testo35.Value

DoCmd.OpenForm "ELENCO 1", , , , , acWindowNormal

Forms![ELENCO 1]![Campo 2].SetFocus

Me.Filter = "[Campo 2] =  '" & VST & "'"

Me.FilterOn = True
Putroppo mi da questo messaggio di errore:

Errore.PNG
Errore.PNG

Qualcuno mi può aiutare, sono 2 giorni che ci sbatto la testa

Ringrazio anticipatamente.

11 Risposte

  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Quello che fai è tecnicamente inutile e sbagliato.
    Hai letto come si usa la Funzione OPENFORM...?
    Sub OpenForm(FormName, 
    			[View As AcFormView = acNormal], 
    			[FilterName], 
    			[WhereCondition], 
    			[DataMode As AcFormOpenDataMode = acFormPropertySettings], 
    			[WindowMode As AcWindowMode = acWindowNormal], 
    			[OpenArgs])
        Membro di Access.DoCmd
    Cosa rappresenta per te il parametro [WhereCondition]...?
    
    DoCmd.OpenForm "ELENCO 1", , ,"[Campo 2] =  '" & VST & "'", , acWindowNormal
    P.S. non usare caratteri speciali quando nomini degli Oggetti, lo Spazio è un carattere definibile "speciale"... da evitare.
    Poi [Campo2] è il nome del campo o del controllo...?
    Poi la Form "AUDIT" è una form esterna o la stessa in cui gira il codice in questione...?

    Fai molta molta confusione a mio avviso.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Chiedo scusa, ma sono autodidatta e non faccio il programmatore.
    Preciso che:
    - [Campo2] è il nome del campo sulla maschera [ELENCO 1]
    - La Form "AUDIT" è la stessa in cui gira il codice in questione

    Posso riuscire a risolvere il problema o devo rinunciare.

    Grazie per tutto l'aiuto che potrete darmi.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Lo chiedi a noi...?
    Saprai tu se vale pena spendere qualche ora in lettura di documenti tecnici per colmare qualche lacuna o se meglio non perdere ul tuo tempo così...

    Il suggerimento che ti è stato dato è risolutivo ma se non lo comprendi manca un minimo di formazione che è indispensabile.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Ho fatto tesoro dei consigli e ho modificato tutto il listato precedente con l'istruzione che mi avevate suggerito:
    DoCmd.OpenForm "ELENCO 1", , , "[Campo 2] =  " & Me.Testo35.Value, , acWindowNormal
    purtroppo non funziona ancora e mi da questo messaggio:

    Errore2.PNG
    Errore2.PNG

    Sapete per favore aiutarmi a capire dove sbaglio?

    Grazie ancora
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    La finestra "Immettere valore parametro" appare perchè hai un filtro con PARAMETRO (oppure c'è qualcosa in sospeso o di dimenticato...) da inserire. Ma vattelo a pesca capire da dove viene...non hai fornito indizi che la giustifichino.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Ciao RAF66,

    l'errore non sembra legato alla riga di codice che hai scritto.
    Sembrerebbe che all'interno della Form "ELENCO 1" tu abbia un campo "CN005013" che non è legato a niente.

    Inoltre in precedenza hai racchiuso il valore del campo "Me.Testo35" tra apici, mentre adesso li hai omessi.
    Se il campo "Me.Testo35" (non è necessario ".Value", perché è implicito) è un campo testo, non servono, ma se si tratta di un campo numerico, sono necessari, quindi non va scritto:
    DoCmd.OpenForm "ELENCO 1", , , "[Campo 2] = " & Me.Testo35.Value, , acWindowNormal
    ma
    DoCmd.OpenForm "ELENCO 1", , , "[Campo 2] = '" & Me.Testo35.Value & "'", , acWindowNormal
    Ma non credo che questo sia legato al messaggio di errore che mostri.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    RAF66 ha scritto:


    Ho fatto tesoro dei consigli e ho modificato tutto il listato precedente con l'istruzione che mi avevate suggerito:
    DoCmd.OpenForm "ELENCO 1", , , "[Campo 2] =  " & Me.Testo35.Value, , acWindowNormal
    purtroppo non funziona ancora e mi da questo messaggio:

    Errore2.PNG

    Sapete per favore aiutarmi a capire dove sbaglio?

    Grazie ancora
    il [Campo 2] è numerico o testo...?
    Purtroppo, sempre a causa della carenza di basi tecniche, ignori il fatto che la SINTASSI per costruire la WHERE condition o il FILTRO cambia a seconda del FIELDTYPE, quella che ti ho suggerito includeva gli APICI, tipico per i campi TESTO, mentre per i campi NUMERICI si fa in altro modo anche quì da valutare se con o senza decimali, in quanto il separatore Decimale è affetto dai Regional Settings, quindi tu digiti la Virgola nella TextBox, ma il sistema vuole il PUNTO(o quello che i regional settings prevedono)..., altra differenza i campi Data.

    Queste informazioni sono indispensabili per non andare a TENTONI soprattutto per capire i suggerimenti.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Grazie ancora per l'aiuto.
    il [Campo 2] è una stringa di testo del tipo "AB0000234".
    R.C.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Ho fatto varie prove ma comunque continua a darmi errori.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Significa che stai ancora sbagliando qualche cosa... ora dirti cosa, sarebbe complicato dopo averti già dato la soluzione.
    Rimane solo guardare il tuo progetto e capire cosa stai facendo.
  • Re: Impostare filtro su maschera con variabile assegnata da campo di un'altra maschera

    Pazienza. Rinuncio.
    Grazie lo stesso.
    R.C.
Devi accedere o registrarti per scrivere nel forum
11 risposte