Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    [VB6] Ricerca per iniziale

    Ho un DB devo fare una rocerca di tutti i record che iniziano per una lettera che l'utente inserira in maschera.

    Io so che bisogna usare LIKE

    Me potete inserire nella mia query????

    --------------------------------------------

    Dim valore3 As String

    valore3 = ComboBox3.Text

    Set rsRecordSet = New ADODB.Recordset
    rsRecordSet.Open "SELECT [ID],[Titolo],[Formato],[NCD],[Raccoglitore],[Humor],[Ritmo],[Impegno],[Tensione],[Erotismo],[Anno],[Durata],[Origine],[Trama] From [Dvd Storico] where [Titolo]='" & Replace(valore3, "'", "''") & "'order by [Titolo]", Cn, adOpenStatic, adLockOptimistic

    --------------------------------------------

    Ciao e grazieeeeeeeeeee

  2. #2
    Ciao marco

    Ho modificato il tuo codice aggiungendo una variabile in cui memorizzare l'iniziale da cercare.
    codice:
    Dim valore3 As String
    Dim strIniz As String
    
    valore3 = ComboBox3.Text
    strIniz = Left(valore3, 1)
    
    Set rsRecordSet = New ADODB.Recordset
    rsRecordSet.Open "SELECT [ID], [Titolo], " _
    & "[Formato], [NCD], [Raccoglitore], " _
    & "[Humor], [Ritmo], [Impegno], [Tensione], [Erotismo], " _
    & "[Anno], [Durata], [Origine], [Trama] " _
    & "FROM [Dvd Storico] " _
    & "WHERE [Titolo] LIKE '" & strIniz & "*' ORDER BY [Titolo]", _
    Cn, adOpenStatic, adLockOptimistic
    Nota che se il database in questione è Access allora va bene il carattere * per effettuare la like, se invece è un db di SqlServer devi utilizzare il carattere percentuale %.


    Una curiosità:
    perchè nella clausola where che hai scritto nel tuo post hai inserito una replace per gli apostrofi?
    Se devi cercare la prima lettera è superfluo.

    Buon lavoro

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  3. #3

    OK

    Perchè era la query che utilizzo per cercare i valori utilizzando una parole presente in una casella di testo o in una combo, quindi ho messo la mia query generica per farla modifica

    Adesso provo se funziona

    Ciao e grazieeeeee

  4. #4

    Niente non funziona

    Allora

    Il passaggio iniziale che hai meso lo posso anche eliminare

    Ti spiego:

    strIniz = Left(valore3, 1)

    Con questo prendo solo la prima lettera, ma non ci sono problemi perchè la COMBO, che contiente il valore3, non è altro che l'elenco alfabetico

    Quindi:
    A
    B
    C
    D
    ..

    Quindi siamo sicuri che sia tratta di una sola lettera

    Il problema è che nn mi funziona

  5. #5
    cosa significa "non mi funziona"?
    genera un errore?
    non tira fuori i dati?

    spiegati perchè possiamo capire il problema

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6

    Esatto

    Non tira fuori i dati

    Porca miseria

    Prova a crearmene una diretta

    Quindi LIKE "A"

    Creami la sintassi, perchè io posso sbagliare

    La metto sotto un pulsante e vediamo se cosi mi tira fuori i dati con la A iniziale, poi ti faccio sapere

    Ciao e grazieeeeeee

  7. #7
    La LIKE necessita dell'* e mi pare di capire che nella stringa sql tu non l'abbia inserito.
    Come db stai usando Access o altro?


    Ho modificato la stringa sql inserendo nella WHERE la variabile valore3.
    Devi fare solo copia e incolla, fammi sapere se va.
    codice:
    Dim valore3 As String
    valore3 = ComboBox3.Text
    
    Set rsRecordSet = New ADODB.Recordset
    rsRecordSet.Open "SELECT [ID], [Titolo], " _
    & "[Formato], [NCD], [Raccoglitore], " _
    & "[Humor], [Ritmo], [Impegno], [Tensione], [Erotismo], " _
    & "[Anno], [Durata], [Origine], [Trama] " _
    & "FROM [Dvd Storico] " _
    & "WHERE [Titolo] LIKE '" & valore3 & "*' ORDER BY [Titolo]", _
    Cn, adOpenStatic, adLockOptimistic
    codice:
    LIKE '" & valore3 & "*' = LIKE 'A*'

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8

    Niente

    Ho ACCESS

    Niente da fare ho copiato tutto, ma va in errore ma non estrae i dati

    Per fare una prova ho modificato la variabile e la query, solo per vedere se il resto della query era corretta.


    valore3 = "Animal"

    Set rsRecordSet = New ADODB.Recordset
    rsRecordSet.Open "SELECT [ID], [Titolo], " _
    & "[Formato], [NCD], [Raccoglitore], " _
    & "[Humor], [Ritmo], [Impegno], [Tensione], [Erotismo], " _
    & "[Anno], [Durata], [Origine], [Trama] " _
    & "FROM [Dvd Storico] " _
    & "WHERE [Titolo] = '" & valore3 & "' ORDER BY [Titolo]", _
    Cn, adOpenStatic, adLockOptimistic

    Cosi facendo mi estrae perfettamente il FILM "Animal", quindi il resto della query è funzionante il problema è proprio LIKE, adesso fisso:

    valore3 = "A"

    Poi faccio le prove, ma non so più che fare

  9. #9

    Niente

    Neanche csi funziona

    Più diretto di questo non esiste


    "WHERE [Titolo] LIKE 'A*' ORDER BY [Titolo]", _

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117

    Re: Niente

    Originariamente inviato da marco.santilli
    Neanche csi funziona

    Più diretto di questo non esiste


    "WHERE [Titolo] LIKE 'A*' ORDER BY [Titolo]", _
    Ciao, sei sicuro che non funziona così ?

    "WHERE [Titolo] LIKE 'A%' ORDER BY [Titolo]"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.