Anticipo che, dopo aver messo tutti i codici di tutte le Sub all'interno del blocco Try, non sono più riuscito a ripetere l'errore. Comunque, per Oregon, ecco di seguito il codice della Sub incriminata e di quella da questa richiamata:


codice:
    Private Sub ModifListaReg()
        Try

            Dim rcrdst As New ADODB.Recordset, sSQL As String

            ListaRegioni.Items.Clear()

            sSQL = "DELETE RegioniSelezionate.* FROM RegioniSelezionate;"
            rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

            If SeleReg = 0 Then
                sSQL = "INSERT INTO RegioniSelezionate ( Reg, Regione ) SELECT Regioni.Reg, Regioni.Regione FROM Regioni;"
                rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
            Else
                sSQL = "INSERT INTO RegioniSelezionate ( Reg, Regione ) SELECT DISTINCT DatiTerritoriali.Reg, DatiTerritoriali.Regione FROM DatiTerritoriali INNER JOIN AgentiPerVendite ON DatiTerritoriali.CodAg = AgentiPerVendite.CodAg WHERE (((AgentiPerVendite.Selezionato)=-1));"
                rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
            End If

            sSQL = "UPDATE Regioni SET Regioni.Selezionato = 0;"
            rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

            sSQL = "UPDATE Regioni INNER JOIN RegioniSelezionate ON Regioni.Reg = RegioniSelezionate.Reg SET Regioni.Selezionato = -1;"
            rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

            sSQL = "SELECT Regioni.Reg, Regioni.Regione, Regioni.Selezionato FROM Regioni;"
            rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)

            If rcrdst.State <> ConnectionState.Closed Then
                rcrdst.Close()
                rcrdst.ActiveConnection = Nothing
                Application.DoEvents()
            End If

            Thread.Sleep(150)
            CaricaRegioni()
            Thread.Sleep(150)

            SeleReg = 0

        Catch ex As Exception
            Debug.Print(ex.ToString)
            MessageBox.Show(ex.Message)
            MessageBox.Show("Stack Trace: " & vbCrLf & ex.StackTrace)
            MessageBox.Show("Errore nella Sub ''ModifListaReg'' della Form ''SeleVendite'': " & Err.Number & " - " & Err.Description)
        End Try
    End Sub

    Private Sub CaricaRegioni()                      ' ATTENZIONE: TUTTO QUESTO MODULO LAVORA SUL DB LOCALE!!
        Try

            Dim rcrdst As New ADODB.Recordset, sSQL As String
            Dim i As Integer

            ' Seleziona la Query in funzione di Riservato e poi la esegue - Crea la tabella RegioniSel
            ' ************************************************************
            If Riservato = -1 Then
                sSQL = "SELECT Regione, Selezionato FROM Regioni WHERE (((Selezionato)=-1));"
                rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
            ElseIf Riservato = 0 Then
                sSQL = "SELECT Regione, Selezionato FROM Regioni WHERE ((Regione)<>'ESTERO') AND ((Selezionato)=-1)"
                rcrdst.Open(sSQL, CnDBLocale, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
            End If

            ' Popola ListaRegioni
            ' *******************
            For i = 0 To rcrdst.RecordCount - 1
                ListaRegioni.Items.Add(rcrdst("Regione").Value)   ' Carica la Lista Categorie
                ListaRegioni.SetSelected(i, 0)
                rcrdst("Selezionato").Value = 0
                rcrdst.Update()
                rcrdst.MoveNext()
            Next i

            If rcrdst.State <> ConnectionState.Closed Then
                rcrdst.Close()
                rcrdst.ActiveConnection = Nothing
                Application.DoEvents()
            End If

        Catch ex As Exception
            Debug.Print(ex.ToString)
            MessageBox.Show(ex.Message)
            MessageBox.Show("Stack Trace: " & vbCrLf & ex.StackTrace)
            MessageBox.Show("Errore nella Sub ''CaricaRegioni'' della Form ''SeleVendite'': " & Err.Number & " - " & Err.Description)
        End Try
    End Sub
Se serve altro sono a disposizione.