Oppure

Loading
09/04/08 16:45
fantasy89
Cari amici programmatori! Ancora una volta ho bisogno del vostro aiuto... Bene iniziamo allora sto creando un form che si collega ad un database creato con access che contiene i dati di vari film... praticamente una videoteca... Fino ad ora tutto ok... Riesco a far visualizzare nella listbox tutti i titoli dei film e riesco a fare visualizzare in varie text box i relativi dettagli (come esempio autore, durata, anno ecc).

Il problema si presenta quando creo una textbox per effettuare delle ricerche del database... il codice del button per avviare una ricerca è il seguente:

Me.lista_catalogo.Clear
If Me.Text1 <> "" Then
    On Error Resume Next
    de.rsArchiviofilm.Open
    de.rsArchiviofilm.MoveFirst
    Dim cerca As String
    cerca = Me.Text1
        Do While Not de.rsArchiviofilm.EOF
            If cerca = de.rsArchiviofilm("Titolo") Then
                Me.lista_catalogo.Clear
                Me.lista_catalogo.AddItem de.rsArchiviofilm("Titolo")
            End If
    de.rsArchiviofilm.MoveNext
    Loop
    de.rsArchiviofilm.Close
End If


Il problema è che se io non scrivo nella text di ricerca esattamente la parola presente nel database questo non da risultati... quandi se un titolo di un film fosse per esempio "Mortal Kombat" io dovrei scriverlo esattamente così... vorrei magari scrivere solo "Mortal" e grazie all'operatore like lui mi visualizzasse ugualmente il titolo "Mortal Kombat"...
Non so se la cosa è fattibile... Aspetto consigli da voi più esperti! Grazie e scusate per la lunghezza!
aaa
09/04/08 21:13
Shutdown
Non sono un esperto di VB6, anzi...
Però prova a vedere qui:

msdn2.microsoft.com/it-it/library/…(VS.80).aspx
aaa
09/04/08 21:14
P4p3r0g4
cambia
If cerca = de.rsArchiviofilm("Titolo";) Then
con
If instr(de.rsArchiviofilm("Titolo";),cerca) <> 0 Then
aaa
09/04/08 21:15
Shutdown
Wow paperoga ti ho battuto sul tempo! :rotfl:
Non me ne volere, ti prego! :love: :D
aaa
10/04/08 12:33
fantasy89
Bene! Grazie mille! Però ci sarebbe un piccolo problema, se effettuo una ricerca con questo nuovo codice il programma mi darà come risultato un solo titolo...

Esempio: Se ho due titoli "Accadde a Natale" e "Accadde in Autunno" e io uso nel campo di ricerca la parola "Accadde" come risultato mi visualizza un solo titolo e non entrambi... Non saprei come risolvere, Poi vorrei ben capire cosa fa questa funzione InStr nel mio progetto perchè non mi è molto chiaro... Grazie mille!
aaa
10/04/08 22:05
pasqualeclarix
Postato originariamente da fantasy89:

Bene! Grazie mille! Però ci sarebbe un piccolo problema, se effettuo una ricerca con questo nuovo codice il programma mi darà come risultato un solo titolo...

Esempio: Se ho due titoli "Accadde a Natale" e "Accadde in Autunno" e io uso nel campo di ricerca la parola "Accadde" come risultato mi visualizza un solo titolo e non entrambi... Non saprei come risolvere, Poi vorrei ben capire cosa fa questa funzione InStr nel mio progetto perchè non mi è molto chiaro... Grazie mille!


La funzione InStr non so se hai dato un'occhiata in giro non é altro che...

Cercare (il tuo nome, all'interno di un qualcosa)

se esiste 'Giova' all'interno di 'Giovanni' lui te lo trova...
E' una specie di Filtro! Se vogliamo chiamarlo in tal modo.
Spero che queste due riga ti possano essere d'aiuto.
aaa
10/04/08 22:44
P4p3r0g4
elimina il
Me.lista_catalogo.Clear
dopo l'if

(non quello a inizio codice)
aaa
11/04/08 8:12
gantonio
Il codice (ovviamente senza la Clear nel ciclo) funzionera'.

Ma in questi casi la selezione va fatta fare al motore del database (altrimenti che ci sta a fare?) eseguendo una query del tipo

SELECT * FROM Tabella WHERE Campo LIKE 'dato%'

e visualizzando il risultato tramite il recordset restituito.
aaa