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.