Newsgroup: it.comp.lang.visual-basic
Titolo: Nuova ricerca nel database

Nuovo domandone: come faccio a cercare una stringa all'interno di più campi
di un record di un database ???
Grazie per l'attenzione. Paolo.

 wrote in message
83do6h$2ak4$1...@stargate1.inet.it...


 wrote in message


Voglio cercare una stringa all'interno di un database ma non solo in un
campo di un record ma in più campi.
Es.
Stringa da cercare: FRA
RECORD    NOME            COGNOME    PAESE
1                 FRAncesco     Rossi              Italia
2                 Gigi                FRAncioso      Inghilterra
3                 Pino               Bianchi            FRAncia
Quindi vorrei trovare sia il record 1 (FRAncesco) che il 2 (FRAncioso) che
il 3 (FRAncia).


 campo di un record ma in più campi.


Ciao Pal purtroppo sono un po bestia e quindi ti metto qui di seguito quello
che vorrei riuscire a fare:
Private Sub Cerca_Change()
    SQL_RIC = "select * from agenda where NOMINATIVO like " _
        & Chr(34) & "*" & Cerca.Text & "*" & Chr(34) & _
        " or PERSONA like " & Chr(34) & "*" & Cerca.Text & "*" & Chr(34)
    Agenda.Recordset.FindFirst SQL_RIC
End Sub
"Cerca" è un box di testo dove digito quello che voglio trovare e lui lo
cerca man mano che scrivo.
Grazie per il prezioso aiuto. Saluti Paolo.

 wrote

ciao paolo, dunque:
0. macche bestia ! secondo te chi comincia e' messo meglio ? io agli inizi
mi limitavo a NON postare il mio codice :):) -- fidati, vai, e prova, prova,
prova ! :)
1. consiglio caldamente di chiamare ogni textbox txtQualcosa (notazione
ungherese?), cosi' uno (anche l'autore del codice) capisce meglio anche
senza spiegazioni. in compenso essendo la propr .text la default del textbox
puoi anche non scriverla, a vantaggio della comprensibilita' del codice.
2. ho riadattato il tuo codice e un po' di mio. come lo vedi qui sotto _va_
(provato ora), salvo che:
2.1. se niente corrisponde ti trovi un "no current record" che devi gestire
(tramite if .bof and .eof ...)
2.2. io ho provato con una tabella di 3.2k linee ed e' ragionevole con un
p2/366. se pero' ti trovi una tabella di 3m linee... se vuoi un
aggiornamento immediato durante il txtcerca_change _devi_ passare agli
indici e al seek, sql ti inchioderebbe l'utente li'. (fra l'altro: se mentre
sql lavora l'utente -- come succede sempre, per definizione -- continua a
scrivere nel txtsearch, mi sa che appena sql restituisce il rs trovato il
programma scarica il buffer e si rimette a cercare. ho incrociato programmi
concepiti in questo modo e ho pensato -- in modo politicamente
scorrettissimo -- molto male delle parenti prossime dei programmatori...).
2.3. alternativa brutta ma unica: di fianco al txtsearch c'e' un cmd
"cerca!". uno scrive poi preme il cmd, e aspetta... -- ma se uno preme un
pulsante ci si augura che sappia ql che fa...
hth, pal
Private Sub txtCerca_Change()
    Dim sqlstr, dbName
    sqlstr = "select * from indirizzi where url like " _
        & Chr(34) & "*" & txtCerca & "*" & Chr(34) & _
        " or descri like " & Chr(34) & "*" & txtCerca & "*" & Chr(34)
    dbName = App.Path & "\" & "test.mdb"
    With DC
        .DatabaseName = dbName
        .RecordsetType = 1 'dynaset
        .RecordSource = sqlstr
        .Refresh
    End With
    DBG.Refresh
End Sub

Ciao Pal, sono riuscito a fare quello che volevo.
Grazie di tutto e Buone Feste. Paolo.