Ho preferito sostituire Select con Insert, in modo da poter creare una Tbl provvisoria nel DB , ove sono salvato i soli records spuntati nella Lv. In tal modo posso portare successivamente l'intero contenuto della predetta Tbl nel DataReport per l'anteprima e la stampa.
Nel postare l'intera routine funzionante per gli amici del Forum, ringrazio ancora una volta Boolean il cui aiuto è stato determinante:
codice:
Public Sub PrintItem()
On Error Resume Next
Dim OggSR5 As New ADODB.Command
Dim ConSR5 As New ADODB.Connection
Dim itmy As ListItem
Set itmy = FrmLisDiff.LvDiff.SelectedItem
Dim i As Integer
Dim ItemChd As Boolean
Dim S As String
Dim k As Integer
Dim c As Integer
Dim Condizioni() As String
ItemChd = False
' Verifica l'esistenza di una selezione:
For i = 1 To FrmLisDiff.LvDiff.ListItems.Count
If FrmLisDiff.LvDiff.ListItems(i).Checked = True Then
ItemChd = True
Exit For
' Altrimenti Esce dalla routine:
ElseIf ItemChd = False Then
Exit Sub
End If
Next i
'Se ItemChd = True (Selezione Attiva) acquisisce
'i soli ListItems selezionati nella LV:
If ItemChd = True Then
For i = 1 To FrmLisDiff.LvDiff.ListItems.Count
If FrmLisDiff.LvDiff.ListItems(i).Checked = True Then
S = S & FrmLisDiff.LvDiff.ListItems(i).Text & "|"
End If
Next
End If
' Toglie l'ultimo separatore|:
S = Left(S, Len(S) - 1)
' Inserisce i ListItems nella matrice:
Condizioni = Split(S, "|")
'Esegue la connessione con il DataBase:
With ConSR5
.ConnectionString = DataConnessione
.CursorLocation = adUseClient 'tipo di cursore
.Mode = adModeShareDenyNone 'nessuna limitazione
.CommandTimeout = 15
.Open
End With
OggSR5.ActiveConnection = ConSR5
OggSR5.CommandType = adCmdText
'Prima di salvare Elimina i vecchi records dalla TblDifferenzeSel:
OggSR5.CommandText = "Delete * From TblDifferenzeSel"
OggSR5.Execute
' Scorre LvDiff.ListItems step by step e verifica se = a Condizioni(k):
For c = 1 To FrmLisDiff.LvDiff.ListItems.Count
For k = 0 To UBound(Condizioni)
If FrmLisDiff.LvDiff.ListItems(c).Text = Condizioni(k) Then
'Inserisce i dati della FrmLisDiff nel DB TblDifferenzeSel:
OggSR5.CommandText = "Insert Into TblDifferenzeSel(RegL, Dep, Prop, Res, ValC," _
& "OdinL, ImportDec, Differenza)" _
& "values ('" & (FrmLisDiff.LvDiff.ListItems.Item(c).Text) & "', '" & (FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(1)) & "', '" & (FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(2)) & " ', '" & (FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(3)) _
& "', '" & Ctr(FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(4)) & "', '" & Ctr(FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(5)) & "', '" & Ctr(FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(6)) & "', '" & Ctr(FrmLisDiff.LvDiff.ListItems.Item(c).SubItems(7)) & "');"
OggSR5.Execute
End If
Next k
Next c
'Chiude la connessione - TblDifferenzeSel:
ConSR5.Close
Set ConSR5 = Nothing
End Sub