Newsgroup: it.comp.lang.visual-basic
Titolo: Consiglio per risolvere problema

Devo creare una maschera che vede un DB, poi devo intercettare con un
pulsante il valore del campo codice del record su cui sono posizionato per
poi lanciare un altra applicazione passandogli il valore del codice.
Normalmente queste cose le faccio in Access ma ora devo farlo in una
applicazione in VB6.
Ho usato l'oggetto DataGrid ma non riesco a farlo ?
La mia domanda č che oggetto devo usare per risolvere il mio probelma e su
che propietą/metodo devo inserire il mio codice ?
grazie 1000 per le evetuali risposte
--
Ciao Marco S.
www.marcosanti.it

 
www.marcosanti.it
le possibilita' sono quasi infinite.
qui sotto c'e' una sub che sulla base di un codice mostra la foto
della persona se c'e' in archivio, seno' un'immagine vuota, mettendo
l'immagine in alto a destra nell'mdi.
la sub la chiamo dal reposition del recordset, cosi' mentre scorro il
datacontrol la foto appare subito. sono jpeg di 400px d'altezza e
circa 40-50k, quindi non pesano nello scorrimento.
la sub e' molto migliorabile, e non c'e' praticamente controllo degli
errori.
Public Sub JpegShow(ByVal uCod As Long, f As Form)
    If IsNull(uCod) Or uCod = 0 Then Exit Sub
    On Error Resume Next
    Dim fJpeg As String, fEmpty As String, rs As Recordset, sName As
String
    Set rs = MainDB.OpenRecordset("select completo from persone where
cod=" & uCod, dbOpenSnapshot)
    sName = rs.Fields(0).Value
    rs.Close: Set rs = Nothing
    fJpeg = dbPath & "jpeg\" & CStr(uCod) & ".jpg"
    fEmpty = dbPath & "jpeg\000.jpg"
    With frmJpeg
        .Visible = False: .Refresh
        If Dir(fJpeg) <> "" Then
            .imgJpeg = LoadPicture(fJpeg)
            .Width = .imgJpeg.Width: .Height = .imgJpeg.Height
'migliorabile
            .Caption = CStr(uCod) & " - " & sName
        Else
            .imgJpeg = LoadPicture(fEmpty)
            .Width = .imgJpeg.Width: .Height = .imgJpeg.Height
'migliorabile
            .Caption = CStr(uCod) & " - " & sName & " : immagine non
disponibile"
        End If
        .Visible = True: .Refresh
       .Show
    End With
        With frmJpeg
            .Left = (frmMain.ScaleWidth - .Width): .Top = 0
        End With
    f.ZOrder
End Sub
Private Sub dbCons_Reposition()
    On Error Resume Next
    JpegShow dbCons.Recordset!pers_cod, Me
End Sub
--
hth, ciao, j.
www.sundaysw.com

 l'immagine in alto a destra nell'mdi.
grazie 1000


> 
www.marcosanti.it
complimenti a te per il sito e per i giri !
ciao, a.

 complimenti a te per il sito e per i giri !
grazie per i complimenti, ma ora ti devo rompere ancora le scatole :-)
Il mio probelma è solo quello di trovare l'evento da utilizzare nel DataGrid
che mi permette di lanciare una funzione quando mi posiziono su un altro
record.
Io l'oggetto DataGrid lo "carico" all'apertura con questa funzione:
Dim sqlScale As String
Set objRsScale = New ADODB.Recordset
Set objRsScale.ActiveConnection = gobjConnect
objRsScale.CursorLocation = adUseClient
sqlScale = " SELECT T_CodDis_....
sqlScale = sqlScale & " FROM ...
sqlScale = sqlScale & " Where ...
objRsScale.Open sqlScale, , adOpenKeyset, adLockOptimistic
Set DataGrid_Scale.DataSource = objRsScale
Me.DataGrid_Scale.Columns(0).Width = 1500
Me.DataGrid_Scale.Columns(0).Caption = "Codice"
Me.DataGrid_Scale.Columns(0).Locked = True        'Blocco la Colonna dei
Codici
Me.DataGrid_Scale.Columns(1).Width = 700
Me.DataGrid_Scale.Columns(1).Caption = "Scala"
Me.DataGrid_Scale.Columns(1).Alignment = dbgCenter
 Me.DataGrid_Scale.Columns(2).Width = 700
Me.DataGrid_Scale.Columns(2).Caption = "Formato"
Me.DataGrid_Scale.Columns(2).Alignment = dbgCenter
Ma qui non esiste la propietà Reposition.
In poche parole quello che a me servirebbe è capire l'evento che devo
utilizzare.
grazie ancora :-)


 Set objRsScale = New ADODB.Recordset
non uso ado, ma a naso e' questo che ti serve, non il datagrid.
cioe', quando il cursore e' posizionato (il reposition potra' non
renderlo disponibile, ma lo effettua ogni volta che ti sposti di riga;
cmq da me era una proprieta' del controllo data, non della griglia: in
ogni caso, di un _recordset_: e' all'interno di quello che tu navighi,
no?) su una riga del datagrid, tu dovresti disporre del valore
    objRsScale!codice ' o come si chiama
o (controlla le sintassi)
    objRsScale.fields("codice").value
ecc.
ch, se ho capito, e' quello che ti serve.
ciao, a.


 ch, se ho capito, e' quello che ti serve.
grazie ci sono riuscito in parte :
Ho aggiunto l'oggetto Adodc e funziona mettendo sull'evento WillMove uno di
questi :
me.DataGrid_Scale.Columns(0).Value
me.Adodc_Scala.Recordset.Fields(0).Value
Entrambi mi restituiscono il valore del campo codice, il problema è che mi
restituiscono sempre non il valore di quello che seleziono ma di quello che
era selezionato prima.
Hai/avete una soluzione ?


 Hai/avete una soluzione ?
risolto tutto, andava messo nell'evento MoveComplete :-)
