Newsgroup: it.comp.lang.visual-basic
Titolo: DataGrid

 Accesso ai dati ADO 2.5 senza uso di Adodc
A spanne č un problema di allineamento.
Prova una .bookmark=.bookmark sul recordset prima di restituire la pk.
Se non va posta del codice.
ciao
ugo


Già fatto ma non va.Cioè il record selezionato effetivamente nella variabile
lngAnagrafica  è sempre in ritardo di uno
rispetto alla selezione effettuata sulla DataGrid
Questo è il codice incriminato usando il Bookmark.
Nella prima versione sull'evento click del DataGrid avevo inserito
direttamente.
g_lngAnagrafica = rsAnagrafiche.Fields("IDAnagrafica")
*****************Codice della frm***********
Option Explicit
Dim varBMK As Variant
Private Sub Form_Load()
    ApriRecordset
End Sub
Sub ApriRecordset()
Dim strSQL As String
strSQL = "SELECT * FROM tblAnagrafiche"
    rsAnagrafiche.Source = strSQL
    rsAnagrafiche.ActiveConnection = cnServer
    rsAnagrafiche.Open
    rsAnagrafiche.Filter = "Data = '" & Date & "'"
    Set DataGrid1.DataSource = rsAnagrafiche
End Sub
Private Sub DataGrid1_Click()
varBMK = rsAnagrafiche.Bookmark
Estrai
End Sub
Sub Estrai()
    rsAnagrafiche.Bookmark = varBMK
    g_lngAnagrafica  = rsAnagrafiche.Fields("IDAnagrafica")
    g_strAnagrafica = rsAnagrafiche.Fields("Cognome") & " " &
rsAnagrafiche.Fields("Nome")
    g_strEta = CalcolaEta(rsAnagrafiche.Fields("DataNascita"))
End Sub
********su di un modulo *******
Option Explicit
'Dichiarazioni variabili per la gestione della connessione e dei recordset
Public cnServer As New Connection
Public rsAnagrafiche As New Recordset
Public g_lngAnagrafica As Long
Public g_strAnagrafica As String
Public g_strEta As String
Sub Main()
cnServer.ConnectionString = "DSN=Yeast"
cnServer.CursorLocation = adUseClient
cnServer.Open
frmPrincipale.Show
End Sub
SunRex

     rsAnagrafiche.Filter = "Data = '" & Date & "'"
Cosa c'è in Date?

 ha scritto nel messaggio
news:bkmohg$39b36$1...@ID-174464.news.uni-berlin.de...

E' la data corrente di sistema.
Spiego.La tbl Anagrafiche contiene i dati anagrafici riferiti a dei pazienti
che afferiscono ad un ambulatorio.Nella stessa tbl ho un campo data che in
base ad una funzione si aggiorna alla data corrente se il paziente è già
presente in archivio ed è venuto per effettuate una nuova prestazione.
Cmq il filtro funziona benissimo.
SunRex


Visto il codice, mi correggo:
è un problema di ordine degli eventi:
datagrid.click
recordset.move
datagrid.rowcolchange
sposta il codice nella recordset.movecomplete (se puoi cambiare un po' il
tutto...) o sulla datagrid.rowcolchange (se non puoi cambiare il tutto...
ciao
ugo
ps (se posso...):
- meno public
- ado.connection costruita a runtime e non su un dns
- provider ado direttamente su hjet anzichè su odbc

 - provider ado direttamente su hjet anzichè su odbc
OK è vero ma quello che sto facendo è didattico e non avendo di meglio
che Access ma volendo rendere "universale" il collegamento al db ho pensato
di
usare DSN.Normalmente mi sarei creato un file *.txt dove avrei scritto il
percorso della
base dati e che sarei andato a leggere dal Main durante l'apertura del
programma.
Penso che intendi questo per  una costruzione a run time della connection.
Capisco che usare Access con ODBC e DSN è aggiungere troppi "strati" alla
connection.
Sub Apri()
    Dim strPercorso As String
    strPercorso = "D:\Documneti\BaseDati\Percorso.txt"
     Open strPercorso For Input As #1
            Line Input #1, PathDb
    Close #1
End Sub
SunRex