PDA

View Full Version : [ACCESS VISUALBASIC]modificare query esistente


darksoullight
21-05-2008, 10:06
ciao a tutti. avrei bisogno di aiuto per il seguente problema.
ho una query di access che durante una procedura in visul basic dovrebbe essere modificata con l'aggiunta del where se si verifica una determinata condizione.qualcuno sa dirmi come posso fare???
ho cercato con google ma non ho trovato nulla che potesse risolvere il mio problema.
grazie mille in anticipo!

john_revelator
21-05-2008, 14:03
Se ho capito bene devi solo concatenare alla tua stringa la parte aggiuntiva

esempio

strSQL = "select * from tabella"

if condizione then
strSQL = strSQL & " where ....."
end if

darksoullight
21-05-2008, 15:02
Se ho capito bene devi solo concatenare alla tua stringa la parte aggiuntiva

esempio

strSQL = "select * from tabella"

if condizione then
strSQL = strSQL & " where ....."
end if

no non è questo quello che intendevo.
io ho già la query.è una query "statica" contenuta dentro access.
io devo riprendere il testo di questa query (non la costruisco,già è costruita,come se fosse fissa) e modificarlo aggiungendo il where.

MarcoGG
22-05-2008, 18:08
ho una query di access che durante una procedura in visul basic dovrebbe essere modificata con l'aggiunta del where se si verifica una determinata condizione.qualcuno sa dirmi come posso fare???


Cosa abbastanza semplice, io la farei così :

Dim sqlPre As String
sqlPre = Application.CurrentDb.QueryDefs("Nome_Query").sql
Do
If Right(sqlPre, 1) = ";" Then
sqlPre = Mid(sqlPre, 1, Len(sqlPre) - 1)
Exit Do
Else
sqlPre = Mid(sqlPre, 1, Len(sqlPre) - 1)
End If
Loop

Dim sqlPost As String
sqlPost = sqlPre & " WHERE ... ... ... ;"
Application.CurrentDb.QueryDefs("Nome_Query").sql = sqlPost

IMPORTANTE : il codice SQL della query originaria DEVE terminare con ";" ( di solito Access lo aggiunge da solo... ;) ).
Prova.

darksoullight
23-05-2008, 07:53
grazie mille.farò come mi hai consigliato te.
avevo trovato un'altra soluzione ma non ottimale sotto il punto di vista di lettura del codice per cui ora utilizzerò la tua.
di nuovo grazie