Newsgroup: it.comp.appl.access
Titolo: Cercare da inizio record

Ciao a Tutti
Ho adattato una routine presa sul sito comune per la ricerca record,
funziona egregiamente ho solo un piccolo problema da sistemare.
Cercando per descrizione ottengo il risultato di visualizzare tutti i record
che
contengono la descrizione chiesta , mentre vorrei che mi vengano restituiti
solo i record che iniziano con tale descrizione, mi sapete dire cosa
modificare in
questa routine ?
Private Sub Comando20_Click()
Dim strTitolo As String, strMsg As String, IntFinestraMsg As Integer
Dim IntNuovo As Integer
If IsNull(Me![Prima]) Then
    strTitolo = "Campo obbligatorio non digitato"
    strMsg = "Non hai digitato la prima parola chiave"
    IntFinestraMsg = vbExclamation
    IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
    Me!Prima.SetFocus
    Me!Comando20.Visible = False
Else
If Left(Me!Prima, 1) <> "*" Then
    Me!Prima = "*" & Me!Prima
End If
If Right(Me!Prima, 1) <> "*" Then
    Me!Prima = Me!Prima & "*"
End If
If Not IsNull(Me!Seconda) Then
    If Left(Me!Seconda, 1) <> "*" Then
        Me!Seconda = "*" & Me!Seconda
    End If
    If Right(Me!Seconda, 1) <> "*" Then
        Me!Seconda = Me!Seconda & "*"
    End If
End If
If Not IsNull(Me!Terza) Then
    If Left(Me!Terza, 1) <> "*" Then
        Me!Terza = "*" & Me!Terza
    End If
    If Right(Me!Terza, 1) <> "*" Then
        Me!Terza = Me!Terza & "*"
    End If
End If
If Not IsNull(Me!Quarta) Then
    If Left(Me!Quarta, 1) <> "*" Then
        Me!Quarta = "*" & Me!Quarta
    End If
    If Right(Me!Quarta, 1) <> "*" Then
        Me!Quarta = Me!Quarta & "*"
    End If
End If
Dim ChiaveRic As String
ChiaveRic = "[Descrizione] Like " & Chr$(34) & Me!Prima & Chr$(34)
If Not IsNull(Me!Seconda) Then
    ChiaveRic = ChiaveRic & " " & Me!ANDOR & " [Nome] Like " & Chr$(34) &
Me!Seconda & Chr$(34)
End If
If Not IsNull(Me!Terza) Then
    ChiaveRic = ChiaveRic & " " & Me!ANDOR & " [AnnoCostruzione] Like " &
Chr$(34) & Me!Terza & Chr$(34)
End If
If Not IsNull(Me!Quarta) Then
    ChiaveRic = ChiaveRic & " " & Me!ANDOR & " [Colore] Like " & Chr$(34) &
Me!Quarta & Chr$(34)
End If
    Me.Visible = False
    DoCmd.Hourglass True
        stDocName = "CercaArticoliMalaguti"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
       Forms!CercaArticoliMalaguti.SetFocus
    DoCmd.ApplyFilter , ChiaveRic
    If Forms!CercaArticoliMalaguti.RecordsetClone.RecordCount = 0 Then
        DoCmd.Hourglass False
        strTitolo = "Ricerca con esito negativo"
        strMsg = "  Non esistono articoli che soddisfano questi criteri  "
        IntFinestraMsg = vbExclamation
        IntNuovo = MsgBox(strMsg, IntFinestraMsg, strTitolo)
        DoCmd.ShowAllRecords
    End If
    DoCmd.Hourglass False
    Me.Visible = True
    Me!Comando18.SetFocus
    Me!Comando20.Visible = False
    DoCmd.Close
End If
End Sub
Ciao e grazie anticipato.
Giuseppe

 ha scritto nel messaggio
news:P6Aha.31803$Jg1.7...@news1.tin.it...

Correggi la routine toglendo chr(34) o "*", che poi è la stessa, nelle
stringhe di ricerca, infatti se cerchi
"*eppe"
ti trova
"Giuseppe","Beppe","Aleppe","Perepeppe"
se invece cerchi
"eppe*"
ti trova solo quelli che iniziano per "eppe"

 ha scritto nel messaggio
news:P6Aha.31803$Jg1.7...@news1.tin.it...

Elimina le seguenti 12 righe di codice VBA:
If Left(Me!Prima, 1) <> "*" Then
    Me!Prima = "*" & Me!Prima
End If
If Left(Me!Seconda, 1) <> "*" Then
    Me!Seconda = "*" & Me!Seconda
End If
If Left(Me!Terza, 1) <> "*" Then
    Me!Terza = "*" & Me!Terza
End If
If Left(Me!Quarta, 1) <> "*" Then
    Me!Quarta = "*" & Me!Quarta
End If
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------