Newsgroup: it.comp.lang.visual-basic
Titolo: impostare un bookmark

Allora parto dalla premessa che ho un Database e due form a cui lo ho
collegato.
Sul form principale form1 ho :
1 data control data1
1 dbgrid
associate entrambe al database
sul form 2 invece ho un controllo data2 anch'esso associato al db.
Ora volendo aggiungere dei record al database tramite il data2 , ho bisogno
di impostare un segnalibro di modo che all'evento nuovo_click sul command
button presente sul form2, si aggiunga un record al database tramite
data2.recordset.addnew, tale aggiunta sia registrata contemporaneamente
sulla dbgrid presente sul form1 dove viene aggiunto il record (e fin qui
tutto bene) , ma a questo punto ho bisogno che il bookmark presente sul
dbgrid1 si sposti sul record appena creato. E' questo che mi sta facendo
impazzire.
Chi ha delle soluzioni da propormi ?

 wrote in message 809u8t$bk4$1...@nslave1.tin.it...


...


 chiave primaria in access.
ok, allora ti spedisco +- pari pari un mail che ho da poco inviato a qualcun
altro. prova e poi sappimi dire. ciao, andrea
=*=
andrea palazzi
pal at cedoc dot mo dot it
free sw - 
http://www.comune.modena.it/cittadini/apal/html/
p.f. nei messaggi usare solo testo normale, non html !
please use just plain text, not html, in your msgs !
==========
per quello che dici, direi che -- come spesso in vb -- hai piu' di una
scelta. qui ti allego un pezzo di codice che fa esattamente quello che dici.
il cmdOK e' su un altro form rispetto al datacontrol, i cui indici sono
elencati in un combo. mybk e' a livello di form. (continuo sotto il codice):
Private Sub cmdOK_Click()
    On Error GoTo errman
    Dim OldNdx
    OldNdx = frmBibliog.cboIndice
    MyBK = frmBibliog.dbBibliog.Recordset.Bookmark
    Dim db As Database, rs As Recordset
    Set db = OpenDatabase(MainPath & "bibliog.mdb", False, False)
    Set rs = db.OpenRecordset("bibliog", dbOpenTable)
    rs.Index = "numpc"
    With rs
        If Caption = "NUOVA SCHEDA" Then
            .AddNew
        ElseIf Caption = "MODIFICA" Then
            .Seek "=", frmBibliog.lblNumPC
            .Edit
        End If
        !autcognome = txtAutCognome
        !AutNome = txtAutNome
        !titolo = txtTitolo
        .Update
    End With
    rs.Close
    db.Close
    set rs=nothing
    set db=nothing
    frmBibliog.dbBibliog.Refresh
    frmBibliog.dbBibliog.Recordset.Index = OldNdx
    frmBibliog.dbBibliog.Recordset.Bookmark = MyBK
    'Unload Me
    Me.Hide
    Exit Sub
errman:
    MsgBox Err & " - " & Error
End Sub
cioe', quando uno da' ok:
-- se sta modificando, cerca la scheda attraverso l'indice numpc (che e' un
contatore quindi assolutamente univoco), quindi mette nel rs i dati dei
textboxes.
-- se sta inserendo, aggiunge una scheda e procede come sopra. modif/inser
li gestisco caricando lo stesso form ma dandogli una caption diversa a
seconda del pulsante con cui e' stato chiamato. cosi' evito di doverlo
duplicare (anche se a volte puo' essere necessario).
potresti anche fare p.e. qc tipo:
in un bas --> public sAutore as string
nel txt_change del 2. form --> sAutore = txtAutore
nell'unload del 2. form --> form1.txtautore = sAutore
==> quando muovi il datacontrol di form1 o con un refresh forzato dovrebbe
aggiornarsi. pero' in linea di massima meno ricorri al datacontrol meglio
e'. io come vedi uso un mix di controlli e codice, forse l'ideale sarebbe
tutto codice. cosi' e' abbastanza pratico.

ok ti ringrazio infinitamente, dammi qualche giorno per studiarmi e provare
il codice e poi ti dico. Spero di ricambiare al più presto.