Newsgroup: it.comp.lang.visual-basic
Titolo: dbgrid e selezione multipla

Salve a tutti. Un'altra domanda per il NG.
Dopo aver selezionato i miei record in base ai campi di ricerca li mostro su
un dbgrid. Volevo sapere se e' possibile con questo controllo (od
eventualmente con quale altro) effettuare una selezione multipla = vorrei
evindeziare delle linee contigue (farle diventare blu tipo un foglio di
calcolo).
Se questo e' possibile, mi interessava anche conoscere il modo per
determinare, via codice, i valori dei campi selezionati.
In pratica io dovrei selezionare parte dei record estratti e stamparli,
quindi dopo aver effettuato la selezione, dovrei poterla scorrere e di volta
in volta posizionarmi sul record corrente e stampare tutti i campi che nel
dbgrid non sono presenti, fino alla fine della selezione.
Spero di essere stato abbastanza chiaro, e attendo vs risposte.
Grazie.

Ma e' proprio un problema impossibile, quindi ? ...


 ha scritto


dal recordset carica un listview, con checkboxes.
codice di lavoro d'esempio qui sotto.
poi lavori sul .checked degli items.
hth, j.
--
www.sundaysw.com
Public Sub FileRefresh(Optional First As Boolean)
    'On Error GoTo errman
    On Error Resume Next
    Screen.MousePointer = 11
            DoEvents
    With frmMain
        .File1.Path = sPath
        .File1.Refresh
        FCount = .File1.ListCount - 1
        .LV.ListItems.Clear
        Dim itmX As ListItem
        Dim lSize As Long, fSize As Long, totSize As Currency, tmpCnt As
Long, j As Long
        Dim tmpFile As String, tmpFileFull As String, tmpExt As String
        totSize = 0
        If FCount = -1 Then FCount = 0
        For j = 0 To FCount
            .File1.ListIndex = j
            tmpFile = .File1.FileName
            tmpFileFull = sPath & tmpFile
            Set itmX = .LV.ListItems.Add()
            itmX.Text = tmpFile
            tmpExt = IIf(InStr(tmpFile, ".") <> 0, ParseFExt(tmpFile), "")
            itmX.SubItems(1) = tmpExt
            fSize = FileLen(tmpFileFull)
            lSize = Len(Format(fSize, "###,###,###,###,###"))
            itmX.SubItems(2) = Space(15 - lSize) & _
                Format(FileLen(tmpFileFull), "###,###,###,###,###")
            itmX.SubItems(3) = Format(FileDateTime(tmpFileFull), "yyyy/mm/dd
hh:mm:ss")
            totSize = totSize + fSize
        Next
        .SB.Panels(1) = sPath & " : " & FCount & _
            " (" & Format(totSize, "###,###,###,###,##0") & ")"
        Screen.MousePointer = 0
    End With
    If First Then SelectFirst
    frmMain.LV.SetFocus
    Exit Sub
errman:
    If Err <> 76 Then MsgBox Err & " -- refresh -- " & Error & vbCrLf &
tmpFile
    Screen.MousePointer = 0
End Sub
Public Sub SelectFirst()
    With frmMain.LV
        If .ListItems.Count = 0 Then Exit Sub
        Set .SelectedItem = .ListItems(1)
        sFile = sPath & .SelectedItem
    End With
End Sub

 hth, j.
Scusa, ma se cerco di inserire il controllo ottengo questo errore : "Non
sono disponibili informazioni sui diritti di licenza per questo componente.
Non sono disponibili i diritti di licenza necessari  per utilizzare questa
funzione in ambiente di programmazione". Non mi era mai capitato. Come
risolvo ? Grazie

 ha scritto

solito casino ms.
ti ho appena inviato le patch ms per vb5 e vb6. ci sono anche sul sito
comune, ma non ricordo mai dove.
seno' guarda sul cd di vb, ci dovrebbe essere una dir tools con qualche
.reg. studialo e nel caso installalo.
di solito uno dei due metodi funziona.
ovviamente, a tuo rischio e pericolo :)
ciao, j.

Grazie infinite. Ora posso utilizzare il controllo. Ora provo il codice e ti
faccio sapere. Grazie.