Ricerca in contentuo

di il
3 risposte

Ricerca in contentuo

Cel codice VB come faccio a dirgli di cercare il contenuto e non la parola esatta?
se io gli dico di cercare A vorrei che mi facesse vedere tutte le parole che contengono A

ora uso
DoCmd.OpenForm "ordine_elenco", acNormal, "", "[cognome] = [inserisci cogmome cliente]", acEdit, acNormal
ho provato così ma non funziona

DoCmd.OpenForm "ordine_elenco", acNormal, "", "[cognome] like " * " & [inserisci cogmome cliente]" & "*", acEdit, acNormal
HELP

3 Risposte

  • Re: Ricerca in contentuo

    Ci sono diverse cose che mancano in quanto hai provato...!
    1° Il modo per richiedere l'immissione dell'utente, il Cognome nel tuo caso, è quello di usare un'InputBox...!
    2° Le stringhe si concatenano con & ma devi rispettare i DOPPIAPICI non puoi aprirli in numero diverso dalle chiusure... è come le Parentesi...!!!

    Prova così:
    
    Dim strCognome As String
    strCognome=InputBox("Inserisci Cognome") & vbNullstring
    If Len(strCognome)=0 Then
       MsgBox "non hai inserito nulla..."
       Exit Sub
    End if
    strCognome=Replace(strCognome,"'","''")  ' <----- Per gestire gli APOSTROFI... es: [Dall'Oca]
    DoCmd.OpenForm "ordine_elenco", acNormal, "", "[cognome] like '* " & strCognome & "*'", acEdit, acNormal
  • Re: Ricerca in contentuo

    @Alex.. niente non va.. praticamente sia che scrivo il cognome esatto che solo una parte mi apre la maschera ma non trova nessun record
  • Re: Ricerca in contentuo

    Grazie alla dritta di @mikelemm sono riuscito !
    il codice esatto è questo
    Private Sub cerca_da_cognome_Click()
        Dim strCognome As String
        Dim Result As Variant
        On Error GoTo CercaErr
        strCognome = InputBox("Inserisci cognome cliente")
        If Len(strCognome) = 0 Then ' gestione di annulla o inserimento vuoto
        '  MsgBox "non hai inserito nulla...", vbExclamation
           Exit Sub
        End If
        If InStr(1, strCognome, "'") <> 0 Then ' gestione degli apostrofi
            strCognome = Replace(strCognome, "'", "''")
        End If
        Result = DLookup("[Cognome]", "clienti", "[Cognome] Like '*" & strCognome & "*'")
        If IsNull(Result) Then
            MsgBox "Il testo inserito non è stato trovato!", vbExclamation
            Exit Sub
        Else
            DoCmd.OpenForm "ordine_elenco", acNormal, "", "[Cognome] Like '*" & strCognome & "*'", acEdit, acNormal
        End If
    CercaErr:
        If Err.Number = 0 Then
        Else
            MsgBox "Errore n " & Err.Number & vbCrLf & _
                Err.Description, vbCritical
            Exit Sub
        End If
        End Sub
Devi accedere o registrarti per scrivere nel forum
3 risposte