07/12/2023 - sihsandrea ha scritto:
Stai facendo confusione.
Non puoi scrivere una sql statica con where campo='pippo' perché la ricerca la fa solo se il campo ha valore “pippo”
Se scrivi where campo=[miopatametro]
Stai dicendo che il valore è quello nel contenitore di nome parametro che sarà un contenitore di tipo stringa.
Un un controllo edit solo testo scrivi quello che vuoi (anche 7 apici)
Poi passi a [mioparametro] il contenuto di quella stringa contenuta sulla casella di edit.
Esempio:
Se nella casella di edit scrivi: all'alba
Passi al paramerto: all'alba
La sql diventa: where campo='all''alba'
Ma tu non devi preoccuparti di scrivere due volte l'apice.
Così, se dopo aver filtrato per all'alba vuoi rifare un filtro per pippo basta rilanciare la sql e diventa: where campo='pippo' ma tu passi solo la stringa pippo senza apici. Se nella casella scrivi ‘pippo’ la sql diventa where campo=''pippo'' cioè si riporta anche gli apici.
Sono stato chiaro?
L'inutilità della sql scritta in quel modo è riferita al fatto che non passi un parametro ma scrivi direttamente una stringa nel codice.
Scusami, io uso questa routine per cercare il dato, usando un campo textbox per la ricerca
Dim conn As Object
Dim rs As Object
Dim COGNOMEInserisci As String
b = 0
c = 1
COGNOMEInserisci = TextBox1.Text
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Nomi.mdb;User Id=Admin; Password="
Set rs = CreateObject("ADODB.Recordset")
With rs
.Open "SELECT * From Nomi WHERE Nome like '%" & TextBox1.Text & "%'", conn, 3, 3
End With
Messaggio=msgbox(rs("Dato").value)
Se nella textbox inserisci il nome ROSSI funziona cioè mi restituisce il dato ricercato.
Se invece inserisco D'AMICO invece non funziona, cioè non restituisce nessun dato.
Dove sbaglio?