Originariamente inviato da nikkysixx
Scusa la domanda idiota ma una volta ottenuta la stringa sql come faccio ad eseguirla?
E poi una domanda per capire il tuo ragionamento,perchè 1 diverso da 1?
select * from prova where 1<>1
p.s. dillo che sei un bot
Ho messo 1<>1 perchè all'inizio della stringa "select * from prova where " devo concatenare le scelte fatte dall'utente
or a=-1
or a=-1 or b=-1
eccetera
poichè non posso scrivere
select * from tabella where or a=-1 or b=-1, mi serve una condizione che non infici quanto segue. Siccome nel tuo caso usi or, metterai 1<>1.
Se invece avessi dovuto mettere
and a=-1 and b=-1 eccetera, allora avresti usato 1=1 che è sempre vera, mentre 1<>1 è sempre falsa.
Al posto di 1<>1 potresti anche scrivere 0 e al posto di 1=1 semplicemente 1.
Per quel che riguarda l'esecuzione della query dipende da ciò che vuoi fare. Vuoi aprire un report, un form, o cos'altro?
Del bot non me l'avevano ancora dato. 
edit.
Uno dei modi per verificare il risultato della query è questo:
codice:
Private Sub Comando11_Click()
Dim strSQL As String
Dim i As Integer
Dim dbs As Database
Dim rs As Recordset
Dim qdf As QueryDef
Set dbs = CurrentDb()
If Elenco.ItemsSelected.Count = 0 Then
MsgBox "selezionare almeno una voce"
Exit Sub
End If
strSQL = "select * from prova where 1<>1 "
For i = 0 To Elenco.ListCount - 1
If Elenco.Selected(i) Then
strSQL = strSQL & "or " & Elenco.Column(0, i) & "=-1"
End If
Next i
'MsgBox strSQL
Set rs = dbs.OpenRecordset(strSQL, dbOpenSnapshot)
With dbs
Set qdf = .CreateQueryDef("tmpQuery", strSQL)
DoCmd.OpenQuery "tmpQuery"
'nel caso volessi impedire le modifiche sul risultato della query
'sostituisci la riga precedente con quella sottostante
'DoCmd.OpenQuery "tmpQuery", , acReadOnly
.QueryDefs.Delete "tmpQuery"
End With
dbs.Close
qdf.Close
End Sub