Newsgroup: it.comp.lang.visual-basic
Titolo: [?]Principiante non riesce ad effettuara ricerca in database ado

Salve, posto questo messaggio perchè pur avendone trovati una moltitudine
simili, non sono ancora riuscito nel mio scopo (che ai più sembrerà banale).
Il database è inizializzato come segue:
Dim rsClienti As New ADODB.Recordset
Private Sub Form_Load()
cnLinus.ConnectionString = "DSN=LINUS;UID=;PWD=;"
cnLinus.Open
rsClienti.Open "clienti", cnLinus, adOpenKeyset, adLockOptimistic
End Sub
bene, a questo punto io vorrei fare una ricerca al momento del click
sull'apposito bottone, prendendo come criterio il contenuto di una
textbox(che non ho collegato tramite la proprietà Datasource a rsClienti).
da quello che ho letto la stringa che dovrei utlizzare è circa al seguente
select * from rsClienti where cognome like text1.text & * ' & * mi trova per
esempio Rossini se io ho messo rossi?
ma come devo utilizzare questa stringa?
Ringrazio anticipatamente chi avrà la pazienza di rispondermi.
Saluti e grazie
Tiziano

 Tiziano
Dunque.. la stringa SQL dovrebbe essere :   "SELECT * FROM rsClienti WHERE
cognome like ' " & text1.text & "*' "
pero' se usi ADO mi sembra che l'asterisco deve essere sostituito con : %
Gli spazi dopo gli apici li ho messi per una miglior comprensione (per
esempio quello dopo like), ma in realta' non servono.
Poi se vuoi aprire un recordset con questa query, basta che cambi la stringa
di apertura in questo modo :
(supponiamo che la stringa sql scritta sopra, sia contenuta nella variabile
StrSql)
rsClienti.Open StrSql, cnLinus, adOpenKeyset, adLockOptimistic
In questo modo il recordset si riempie con la query che hai scritto prima.
Ho dimenticato qualcosa ?? se qualcuno si e' accorto di qualche errore, lo
dica per favore :-)) nessuno é perfetto :-)
Ciao, DaVe
P.S: nel modo che usavi tu per riempire il recordset, cioe' passandogli
"clienti" , lui apriva TUTTA la tabella clienti. (tanto per informazione)

Grazie DaVe per la tempestiva risposta ma credo di aver sbagliato
qualcosa.....
Questa procedura è associtata ad un evento click.
rsClienti.Close
rsClienti.Open strSql, cnLinus, adOpenKeyset, adLockOptimistic
mentre nel form load ho impostato:
strSql = "SELECT * FROM rsClienti WHERE Cognome like '" & txtRicerca.Text &
"*'"
avendola dichiarata come stringa.
quando lancio una ricerca però mi viene questo msg di errore:
Il modulo di gestione di database Microsoft Jet non è in grado di trovare la
tabella o la query di input 'rsclienti'. Verificare che esista e che il nome
sia stato digitato correttamente.
Mi potresti aituare ancora?
O c'è qualcuno che mi sa aiutare??
Ringrazio anticipatamente.
Saluti
Tiziano

 wrote in message
8934sf$42p$1...@serv1.albacom.net...


 wrote in message 893icg$gs0$1...@nslave1.tin.it...


Tiziano, se stai usando ADO i problemi sono maggiori perchè quando chiudi
una connessione o aggiungi un nuovo recod ad una tabella devono passare 3/4
secondi per poi fare il Refresh e devi essere fortunato se funziona.
con DAO invece no. Comunque per creare una Query o usi l'istruzione
DBcurrent.CreateQueryDef("NOME", "SELECT * FROM TBCLIENTI etc...") o da
MSAccess nella cartella Query per poi collegarla un oggetto ADO in VB. Ti
consiglio di studiarti il linguaggio SQL per creare le query a modo tuo.
Qualsiasi problema bye Roberto


wrote:


 Tiziano
mi intrometto al volo e forse a sbalzo:
SELECT * FROM NomeTuaTabella WHERE....
cioè il nome della tabella nel database e non il nome del recordset
(rsClienti).
Ciao
Sandro