Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Problemi con SQL in VBA
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
Socrate
Semidio
Semidio


Registrato: 18/06/05 18:34
Messaggi: 335
Residenza: ATENE

MessaggioInviato: 11 Nov 2008 11:06    Oggetto: * Problemi con SQL in VBA Rispondi citando

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
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11802
Residenza: Tokelau

MessaggioInviato: 11 Nov 2008 17:01    Oggetto: Re: Problemi con SQL in VBA Rispondi citando

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
Profilo Invia messaggio privato HomePage
Socrate
Semidio
Semidio


Registrato: 18/06/05 18:34
Messaggi: 335
Residenza: ATENE

MessaggioInviato: 11 Nov 2008 19:35    Oggetto: Re: Problemi con SQL in VBA Rispondi citando

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
Profilo Invia messaggio privato
Socrate
Semidio
Semidio


Registrato: 18/06/05 18:34
Messaggi: 335
Residenza: ATENE

MessaggioInviato: 12 Nov 2008 03:57    Oggetto: Siiiiiiiiiiiiiii, Rispondi citando

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
Profilo Invia messaggio privato
Socrate
Semidio
Semidio


Registrato: 18/06/05 18:34
Messaggi: 335
Residenza: ATENE

MessaggioInviato: 12 Nov 2008 06:14    Oggetto: Rispondi

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! Damn!

Grazie Bill!
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi