Problema campo maschera

di il
23 risposte

23 Risposte - Pagina 2

  • Re: Problema campo maschera

    Alex,
    sto semplificando il DB lasciando il minimo necessario relativamente al problema che ho. Sarà più facile mostrarvi la struttura.
    Grazie.
  • Re: Problema campo maschera

    Mentre ci lavoravo ho compreso l'inghippo. Non era un problema di codice ma di conflitto del campo IDEsemplare. La query ad origine della maschera, prendeva infatti il campo IDEsemplare da due tabelle. Eliminando il campo diciamo - "superfluo" - il problema è stato risolto.

    Ma a proposito di ciò che mi suggerivi, Alex, ossia:

    "Se vuoi cercare si usa FindFirst sul recordsetclone
    Se vuoi filtrare si usa Filter e non si modifica il RecordSource anche se genera un risultato confrontabile... ma per diversi motivi è meglio usare filter..."

    Mi spiegheresti come inserire quei parametri nel mio codice, la differenza tra i due e cosa non va bene nel mio che comunque funziona bene? mi piacerebbe imparare qualcosa di più.

    Grazie.
  • Re: Problema campo maschera

    Se interpreto bene il pensiero di @Alex, prova a leggere qui riguardo Filter
    https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/recordset-filter-property-dao
  • Re: Problema campo maschera

    skipperdan ha scritto:


    Mentre ci lavoravo ho compreso l'inghippo. Non era un problema di codice ma di conflitto del campo IDEsemplare. La query ad origine della maschera, prendeva infatti il campo IDEsemplare da due tabelle. Eliminando il campo diciamo - "superfluo" - il problema è stato risolto.

    Ma a proposito di ciò che mi suggerivi, Alex, ossia:

    "Se vuoi cercare si usa FindFirst sul recordsetclone
    Se vuoi filtrare si usa Filter e non si modifica il RecordSource anche se genera un risultato confrontabile... ma per diversi motivi è meglio usare filter..."

    Mi spiegheresti come inserire quei parametri nel mio codice, la differenza tra i due e cosa non va bene nel mio che comunque funziona bene? mi piacerebbe imparare qualcosa di più.

    Grazie.
    La questione non è così semplice da far comprendere, perchè come hai già anticipato tu... il metodo del RecordSource funziona...!
    Quindi per capire i motivi dell'opportunità di buona tecnica, serve avere una visione del progetto più ampia e completa.

    FILTRARE

    Ti faccio alcune osservazioni più semplici...
    Le Query Salvate e compilate sono più efficienti, flessibili in quanto modificabili dall'esterno del Codice che applichi con il VBA al RecordSource.
    Queste osservazioni, per chi ha la visione dello sviluppo casalilngo non hanno un senso... in realtà il senso è estremamente importante per chi magari sviluppa applicativi rivolti ad utenti.
    Altra osservazione... modificare il RecrodSource via VBA sulle Form/SubForm riduce la flessibilità, anzi complica molto la gestione nella fas di Stampa Report coerenti con i dati di maschera.
    Ipotizza di stampare un Report allineato con i Criteri che hai usato per Costruire il RecordSource... devi ricostruirli e passarli...

    L'uso del Filtro è estremamente più Flessibile, richiede codice più STANDARD... esempio del tuo codice
    
    Private Sub Comando12_Click()
        Me.Filter="(Genus like '" & strText & "*') or (Subgenus like '" & strText & "*')"
        Me.FilterOn=True
    End Sub
    Se devi stampare, basta passare al Parametro WHERE di OpenReport... Me.Filter

    CERCARE
    Per cercare significa che NON si altera l'origine Dati, quindi se hai 2000Record tieni tutti, ma cerchi uno specifico Record che soddisfa il criterio e sposti il Bookmark della Maschera su quello.
    Per cercare in una maschera si usa FindFirst:
    https://docs.microsoft.com/en-us/office/client-developer/access/desktop-database-reference/recordset-findfirst-method-dao
    
    With Me.RecordsetClone
        .FindFirst "Genus like '" & strText & "*') or (Subgenus like '" & strText & "*'"
        If .NoMatch then
            msgbox "Non Trovato"
        Else
            Me.Bookmark=.Bookmark
        End If
    End With
    Saluti
  • Re: Problema campo maschera

    Grazie,
    ottimi spunti per approfondire.
  • Re: Problema campo maschera

    Ho provato i due codici da te inseriti ma non funzionano.
  • Re: Problema campo maschera

    skipperdan ha scritto:


    Ho provato i due codici da te inseriti ma non funzionano.
    Ovviamente... serve anche un minimo di attenzione...
    Esempio:
    
    Private Sub Comando12_Click()
        Me.Filter="(Genus like '" & strText & "*') or (Subgenus like '" & strText & "*')"
        Me.FilterOn=True
    End Sub
    Non ti sei accorto che non è riportata la variabile [strText]...?
    Non si può fare solo il Copia incolla senza accendere il cervello.
    
    Private Sub Comando12_Click()
        Me.Filter="(Genus like '" & Me.TxtGenusSearch.Value & "*') or (Subgenus like '" & Me.TxtGenusSearch.Value & "*')"
        Me.FilterOn=True
    End Sub
  • Re: Problema campo maschera

    Caro alex,

    @Alex ha scritto:


    Non ti sei accorto che non è riportata la variabile [strText]...?
    Non si può fare solo il Copia incolla senza accendere il cervello.
    ti avevo già detto che non conosco il VBA e non lo posso imparare in 5 giorni; di conseguenza il non essermi accorto della mancanza della variabile non è una questione di accendere o no il cervello.

    Visto le tue risposte precedenti ed infine questa qui sopra, che giudico offensiva, la mia opinione è che tu sia troppo preso dal tuo ego il quale ti impedisce di attivare il buon senso e le basilari regole di comportamento sociale.
    Inoltre, visto che almeno a me non servi a nulla e anzi, mi fai perdere solo tempo, ti inviterei a non rispondere più ai miei eventuali futuri quesiti su questo e su altri forum.

    Grazie.
  • Re: Problema campo maschera

    Guarda, nel forum si partecipa se si hanno le basi, senza le quali la frequentazione non è obbligatoria anzi...
    Sul fatto di non risponderti invece stai proprio sbagliando... non hai alcun titolo per pretendere nulla... anzi dovresti essere tu a rispettare il forum leggendo il regolamento senza pretendere che la partecipazione ad un forum gratuito sia sinonimo di "AIUTATEMI SENZA ROMLERE LE SCATOLE".
    Hai proprio sbagliato forum.
Devi accedere o registrarti per scrivere nel forum
23 risposte