la query funziona ma mi aggiorna tutti i record allora ho fatto in questo modo:

codice:
scelta = lstMagazzino.SelectedItem 'costruisco il recordset

If txtNome.Text = "" Or txtTipo = "" Or txtSpecie.Text = "" Or txtCategoria.Text = "" Or txtDescrizione.Text = "" Or txtAcquisto.Text = "" Or txtVendita.Text = "" Then
        MsgBox "Campi vuoti!!", vbCritical, "Compilare tutti i campi"
        
        SvuotaText Me
        Else
        Dim rs As ADODB.Recordset
            Set rs = New ADODB.Recordset
            Dim qry3 As String
            qry3 = "UPDATE ProdAnagrafica SET " & _
    "Prod_nome = '" & txtNome.Text & "'," & _
    "Prod_tipo = '" & txtTipo.Text & "'," & _
    "Prod_specie = '" & txtSpecie.Text & "'," & _
    "Prod_categoria = '" & txtCategoria.Text & "'," & _
    "Prod_descrizione = '" & txtDescrizione.Text & "'," & _
    "Prod_acqui = '" & txtAcquisto.Text & "'," & _
    "Prod_vendi = '" & txtVendita.Text & "' WHERE Prod_id = '" & scelta "'"

    rs.Open qry3, CN, adOpenKeyset, adLockOptimistic
            'creo l' addnew
            
            rs.Close
            'ripristino la form allo stato iniziale
            popolaMag
           
            'svuoto le txt
            SvuotaText Me
            Disconnetti
        End If
ma il problema sta nel come passo il where mi da errore di sintassi