Newsgroup: it.comp.appl.access
Titolo: Errore di runtime 3075 (operatore mancante nella query)

Ciao!
Il codice che segue elimina un record dalla listbox me.risultati
(esattamente dalla tabella tblDonatori) e lo sposta in un'altra
tabella (tblStoricoDonatori).
In fase di esecuzione pero' mi viene segnalato un errore di runtime
3075 che recita così:
"Errore di sintassi (operatore mancante) nell'espressione della query
'tblDonatori.IdDonatore=IN(1)'  "
Il codice segue:
*******************************************************************
    Dim strLista As String
    Dim strCriteri As String
    Dim varItem As Variant
    Dim strSQL1,strSQL2, strSQL3 As String
 
If Me.txtTrovati <> 0 Then
    'Se non ci sono voci selezionate
    'non ci sono attività da effettuare
    If Me!Risultati.ItemsSelected.Count = 0 Then
       MsgBox "Seleziona un donatore!", vbInformation
       Exit Sub
    End If
    'Cicla nell'insieme delle voci selezionate
    For Each varItem In Me!Risultati.ItemsSelected
        'Cattura la colonna IdDonatore di ciascuna
        'voce selezionata
        strLista = strLista & _
            Me!Risultati.Column(0, varItem) & ","
    Next varItem
    'Elimina la virgola eccedente
    strLista = Left$(strLista, Len(strLista) - 1)
    'Crea stringhe SQL
 
       strSQL1 = "INSERT INTO tblStoricoDonatori " & _
                 "SELECT tblDonatori.* FROM tblDonatori " & _
                 "WHERE tblDonatori.IdDonatore = IN ( " & _
                     strLista & ");"
       strSQL2 = "INSERT INTO tblStoricoDonazioni " & _
                 "SELECT tblDonazioni.* FROM tblDonazioni " & _
                 "WHERE tblDonazioni.IdDonatore = IN ( " & _
                     strLista & ");"
       strSQL3 = "DELETE tblDonatori.* FROM tblDonatori " & _
                 "WHERE tblDonatori.IdDonatore = IN ( " & _
                     strLista & ");"
    'Elimina record
    If MsgBox("Sei sicuro di voler archiviare questo/i donatore/i?",
vbExclamation + vbYesNo) = vbYes Then
       DoCmd.RunSQL strSQL1
       DoCmd.RunSQL strSQL2
       DoCmd.RunSQL strSQL3
    End If
********************************************************
Se faccio il debug, il cursore mi segnala "DoCmd.RunSQL strSQL1".
Non riesco a capire quale operatore manchi nella prima o nelle altre
query che vengono eseguite in cascata...
Grazie!
luca

 query che vengono eseguite in cascata...
Questo che si vede subito è che non manca un operatore ma che
ci sono troppi. Togli "=" prima del "IN".
Se ti dà ancora un errore il modo più semplice per trovarlo è un
Debug.Print strSQL1
che ti scrive tutta l'espressione risultante nella finestra immediata.
Se poi non vedi l'errore fai copia/incolla col testo e postalo qui.
-- 
cu
Karl
*********
Access FAQ: 
www.donkarl.com/it
 + CISA1, Arezzo, 4+5/6/2005
la prima Conferenza Italiana per Sviluppatori di Access 

 ha scritto nel messaggio 
news:d95188c8.05031...@posting.google.com...

Se non sbaglio l'utilizzo dell'operatore IN non contempla l'uguale:
es.
"WHERE tblDonazioni.IdDonatore IN ( " & _
Ciao.
-- 
Sergio MAZZA 

...
Non ha niente da fare col tuo problema ma qui fai un sbaglio
molto frequente. In VBA con questa dicchiarazione le 2 prime
variabili sono del tipo Variant. Per creare tutti come String
devi scrivere:
Dim strSQL1 As String, strSQL2 As String, strSQL3 As String
-- 
HTH


 Se poi non vedi l'errore fai copia/incolla col testo e postalo qui.
Era proprio l'"=" che dava problemi...
grazie mille!!!  :))
luca

...

Era esattamente il simbolo "=" che dava noie...
grazie tante!!!  :))
luca