Ho messo 1<>1 perchè all'inizio della stringa "select * from prova where " devo concatenare le scelte fatte dall'utenteOriginariamente 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![]()
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![]()


Rispondi quotando