Precedente :: Successivo |
Autore |
Messaggio |
Socrate Semidio

Registrato: 18/06/05 18:34 Messaggi: 335 Residenza: ATENE
|
Inviato: 11 Nov 2008 11:06 Oggetto: * Problemi con SQL in VBA |
|
|
Salve ragazzi, le istruzioni SQL per generare recordset in VBA non mi accettano i caratteri speciali:
Codice: | Private Sub TxtDescrizione_AfterUpdate()
Dim Que As String, Par As String
Dim Rs As New ADODB.Recordset, Cnn As New ADODB.Connection
Cnn.Open ("Provider= Microsoft.Jet.OLEDB.4.0;Data Source = C:\Documents and Settings\Luca\Documenti\archivi\Progest1.mdb")
Par = TxtDescrizione.Value
[b]Que = "SELECT ID, Descrizione, UM FROM TblScorte IN 'C:\Documents and Settings\Luca\Documenti\archivi\Bilanci_be.mdb' " & _
"WHERE Descrizione [u]like '*" & Par & "*'[/u] ORDER BY Descrizione;"[/b]
MsgBox Que
Rs.Open Que, Cnn, adOpenKeyset, adLockReadOnly
MsgBox "Numero di righe: " & Rs.RecordCount
'Que = ""
Do While Rs.EOF = False
'Que = Que & Rs.Fields(0) & " " & Rs.Fields(1) & " " & Rs.Fields(2) & vbCrLf
Rs.MoveNext
Loop
Rs.Close
Cnn.Close
MsgBox Que
end sub |
Quando aggiorno la casella di testo, si dovrebbe generare un recordset a partire da TblScorte solo che, se nell'istruzione Like, sottolineata, uso gli asterischi e una parola generica di ricerca, comunque presente nella colonna descrizione, il recordset torna 0 righe. Togliendo gli asterischi e inserendo una frase esatta presente nella colonna descrizione l'istruzione funziona. Qualcuna sa dirmi il perche? |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11802 Residenza: Tokelau
|
Inviato: 11 Nov 2008 17:01 Oggetto: Re: Problemi con SQL in VBA |
|
|
Socrate ha scritto: | Codice: | Que = "SELECT ID, Descrizione, UM FROM TblScorte IN 'C:\Documents and Settings\Luca\Documenti\archivi\Bilanci_be.mdb' " & "WHERE Descrizione like '*" & Par & "*' ORDER BY Descrizione;" |
|
prova a togliere il parametro Par e mettere una stringa che sai esserci. Se funziona allora non è un problema del VB... |
|
Top |
|
 |
Socrate Semidio

Registrato: 18/06/05 18:34 Messaggi: 335 Residenza: ATENE
|
Inviato: 11 Nov 2008 19:35 Oggetto: Re: Problemi con SQL in VBA |
|
|
SverX ha scritto: |
prova a togliere il parametro Par e mettere una stringa che sai esserci. Se funziona allora non è un problema del VB... |
Come sospettavo così:
Que = "SELECT ID, Descrizione, UM FROM TblScorte IN 'C:\Documents and Settings\Luca\Documenti\archivi\Bilanci_be.mdb' " & _
"WHERE Descrizione like 'farina di mais' ORDER BY Descrizione;"
funziona, mentre con gli asterischi e la sola parola "mais" come parametro il recordset ha 0 righe, sembra che non riconosca i caratteri speciali.
Per me è un mistero! |
|
Top |
|
 |
Socrate Semidio

Registrato: 18/06/05 18:34 Messaggi: 335 Residenza: ATENE
|
Inviato: 12 Nov 2008 03:57 Oggetto: Siiiiiiiiiiiiiii, |
|
|
Col vecchio "%" funziona alla perfezione:
Qr = "SELECT Nome, Cognome, Viauff FROM Contatti IN 'C:\Documents and Settings\Luca\Contatti.mdb' " & _
"WHERE Nome Like '%" & Pr & "%';"
Questo nuovo esempio provato su portatile di mia moglie va! |
|
Top |
|
 |
Socrate Semidio

Registrato: 18/06/05 18:34 Messaggi: 335 Residenza: ATENE
|
Inviato: 12 Nov 2008 06:14 Oggetto: |
|
|
Ma la cosa veramente pazzesca è che se devi estrarre un set di record con un "Like" devi usare il simbolo "%" come carattere speciale, invece per impostare l'origine dati di una maschera il "Like" va usato con l'asterisco!
Grazie Bill! |
|
Top |
|
 |
|