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

Discussione: Errore filtro maschera su Change se record source è zero

  1. #1
    SCvanni non è in linea Scolaretto
    Post
    418

    Errore filtro maschera su Change se record source è zero

    Buona sera a tutti
    vado subito al dunque, filtro una form sull'evento change tramite una txtBox.

    Tutto funziona finché vi sono record visualizzati ma se per ipotesi viene digitato, per errore, un carattere errato, per cui il recordset risulta a zero record, ricevo un errore di runtime.

    questo è il codice che scrivo nella textBox con nome "myFiltro"

    codice:
     Private Sub MyFiltro_Change()
    Dim Criterio As String, nrec As String
    Criterio = "Titolo like" & Chr$(34) & "*" & Me!MyFiltro & "*" & Chr$(34)
     nrec = Me.RecordsetClone.RecordCount
           
          If Len(Me!MyFiltro.Text) = 0 Or nrec = 0 Then
                FilterOn = False
            Else
                FilterOn = False
                Me.Filter = Criterio
                Me.FilterOn = True
                Me!MyFiltro.SelStart = Len(Me!MyFiltro.Text & vbNullString)
    End If
    
    End Sub
    dove sbaglio?
    E' quando mi mettono con le spalle al muro che scopro il meglio di me. (NonnoVanni)

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    15,884
    Cosa devi fare...?
    Ti chiedo perché in quel codice l'ordine delle istruzioni sembra casuale...
    Prima componi la stringa poi conti i record poi controlli la validità del testo, poi forse la applichi... qualche cosa non quadra nella logica.
    Ultima modifica di @Alex; 07-02-2019 22:25 
    @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.

  3. #3
    SCvanni non è in linea Scolaretto
    Post
    418
    Ci riprovo in funzione di questo:

    Quote Originariamente inviato da @Alex Visualizza il messaggio
    ... in quel codice l'ordine delle istruzioni sembra casuale...
    E' quando mi mettono con le spalle al muro che scopro il meglio di me. (NonnoVanni)

  4. #4
    SCvanni non è in linea Scolaretto
    Post
    418
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Cosa devi fare...?
    Ti chiedo perché in quel codice l'ordine delle istruzioni sembra casuale...
    Prima componi la stringa poi conti i record poi controlli la validità del testo, poi forse la applichi... qualche cosa non quadra nella logica.


    Esatto, così va meglio :

    codice:
    Private Sub MyFiltro_Change()
    Dim nrec As String, Criterio As String
    Criterio = "Titolo like" & Chr$(34) & "*" & Me!MyFiltro & "*" & Chr$(34)
    
            If Len(Me!MyFiltro.Text) = 0 Then
                FilterOn = False
            Else
                FilterOn = False
                Me.Filter = Criterio
                Me.FilterOn = True
      nrec = Me.RecordsetClone.RecordCount
                  If nrec = 0 Then
                    MsgBox "Nessun record corrisponde al criterio !", vbExclamation, "Attenzione"
                    MyFiltro = ""
                    FilterOn = False
                  End If
           Me!MyFiltro.SelStart = Len(Me!MyFiltro.Text & vbNullString)
    End If
    
    End Sub
    grazie Alex alla prossima
    E' quando mi mettono con le spalle al muro che scopro il meglio di me. (NonnoVanni)

+ Rispondi al Thread

Permessi di invio

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