Apparizione non voluta finestra parametro

di il
7 risposte

Apparizione non voluta finestra parametro

Gentilissimi,
ho costruito una maschera che contiene la casella di testo "TestoCopia".
La casella in questione raccoglie una stringa che mi serve per filtrare dei record da un origine dati (nel mio caso una query).
Nei criteri della QBE ho inserito infatti il seguente Criterio:

Like "*" & [Maschere]![FormRicercaCorsi]![TestoCopia] & "*"

MI CHIEDO:
come mai capita che aprendo la maschera capita (NON SEMPRE) che Access mi apre una finestra di dialogo per digitare il parametro, invece di aprirmi la maschera?
Come faccio ad eliminare questo fenomeno?
Da cosa dipende il comportamento non coerente?

Grazie infinite
Gianni

7 Risposte

  • Re: Apparizione non voluta finestra parametro

    Forse la maschera poggia su una query. Tale query ha in sé il parametro che hai esposto. Di conseguenza, se non c'è la maschera FormRicercaCorsi aperta, la query non sa da dove andare a prendere quel valore e te lo chiede con Finestra messaggio.
  • Re: Apparizione non voluta finestra parametro

    Può essere, ma a questo punto come faccio a fare un filtro. Una volta aperta la maschera, l'utente inserisce nella casella la stringa di ricerca che poi va a finire in "Testocopia", variabile usata nel Criterio della Query. La query dovrà pur usare un "valore" per attivare il filtro di ricerca di una sottostringa di un campo della tabella/query ...
    Come faccio a risolvere alla radice?
  • Re: Apparizione non voluta finestra parametro

    strambotto ha scritto:


    Può essere, ma a questo punto come faccio a fare un filtro. Una volta aperta la maschera, l'utente inserisce nella casella la stringa di ricerca che poi va a finire in "Testocopia", variabile usata nel Criterio della Query. La query dovrà pur usare un "valore" per attivare il filtro di ricerca di una sottostringa di un campo della tabella/query ...
    Come faccio a risolvere alla radice?
    Se l'obbiettivo è il Filtro... perchè invece di inserire un Criterio nella Query non usi la proprietà Filter che sicuramente aiuta...?
    
    If Len(Me!TestoCopia & vbNullstring)>0 then
       Me.Filter="NomeCampo = '*" & Me!TestoCopia & "*'"
       Me.FilterOn=True
    Else
       Me.Filter=vbNullstring
       Me.FilterOn=False
    End if
  • Re: Apparizione non voluta finestra parametro

    D'accordo mi orienterò su questo tipo di soluzione. Grazie davvero
  • Re: Apparizione non voluta finestra parametro

    Guarda che non è un ripiego... anzi.
  • Re: Apparizione non voluta finestra parametro

    A proposito di sintassi,
    ho utilizzato questa routine:
    Private Sub Stringacorso_AfterUpdate()
    If Len(Me.Stringacorso & vbNullString) > 0 Then
       Me.Filter = "[corso] LIKE '*" & Me.[Stringacorso] & "*'"
       Me.FilterOn = True
    Else
       Me.Filter = vbNullString
       Me.FilterOn = False
    End If
    End Sub
    Come mai esistono due forme "Me.Stringacorso" e "Me!Stringacorso" ?
    Cosa serve vbNullString?
    Grazie mille
  • Re: Apparizione non voluta finestra parametro

    La sintassi per accedere ai membri di oggetti è il PUNTO.
    Il PUNTOESCLAMATIVO fa riferimento specifico ai controlli contenuti nell'istanza della maschera.

    Tuttavia i puristi del VBA di Access tendono a differenziare il riferimento a membri Nativi da Membri come Controlli...

    Il vbNullString anche qui per i meno attenti equivale a stringa vuota ""... in realtà non è esattamente così... ma prendila solo come finezza...
Devi accedere o registrarti per scrivere nel forum
7 risposte