Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Truedbgrid pro 6.0 oledb e ADODB.Recordset

    Ho un software in vb6 fatto da varie form anagrafiche. Ad esempio una form è fatta così:
    c'è una truedbgrid oledb 6 che usa come datasource un ADODB.recordset poi ho 3 bottoni (Nuovo, Aggiungi, Elimina).

    Dichiaro a livello di form:
    Dim rsOperatori As ADODB.Recordset

    Elimino in questo modo:
    rsOperatori.Delete

    Lo definisco in Form load in questo modo:
    Set rsOperatori = New ADODB.Recordset
    rsOperatori.CursorLocation = adUseClient

    rsOperatori.open "Select * from Operatori", cn, ADODB.CursorTypeEnum.adOpenForwardOnly, ADODB.LockTypeEnum.adLockOptimistic
    TDBGrid1.DataSource = rsOperatori
    TDBGrid1.Refresh

    E fino a qui tutto ok, ho problemi per l'aggiunta e la modifica perchè uso un nuovo form e non so perchè quando faccio alla fine del salvataggio frmOperatori.tdbgrid1.refresh non mi aggiorna la tdbgrid della form operatori. Avete un idea del perchè? Grazie

  2. #2
    perché devi fare un refesh del recordset, non del controllo grid

  3. #3
    Originariamente inviato da optime
    perché devi fare un refesh del recordset, non del controllo grid
    Come lo faresti?

  4. #4
    .requery

    oppure

    .refresh

    oppure

    chiudi e riapri


  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Che differenza c'è tra il bottone "Nuovo" e il bottone "Aggiungi" ?
    Il recordset ha CursorType = ForwardOnly, sei sicuro che vada bene?
    Può anche sserci un problema di latenza della cache ADO.

    Originariamente inviato da optime
    perché devi fare un refesh del recordset, non del controllo grid
    No. Il recordset è sensibile agli aggiornamenti della TrueDbGrid (non grid), non il contrario.
    In ogni caso il recordset ADO non espone il metodo Refresh.

  6. #6
    Originariamente inviato da Grumpy
    Che differenza c'è tra il bottone "Nuovo" e il bottone "Aggiungi" ?
    Il recordset ha CursorType = ForwardOnly, sei sicuro che vada bene?
    Può anche sserci un problema di latenza della cache ADO.


    No. Il recordset è sensibile agli aggiornamenti della TrueDbGrid (non grid), non il contrario.
    In ogni caso il recordset ADO non espone il metodo Refresh.
    Scusate io dovrei fare una cosa simile come facevo con il vecchio DAO:

    frmProva.datTab.RecordSource = "SELECT * FROM Tab ORDER BY Codice"
    frmProva.datTab.Refresh

  7. #7
    ti ho già risposto, usa .requery sul recordset a cui fa riferimento la tdbg

  8. #8
    Originariamente inviato da optime
    ti ho già risposto, usa .requery sul recordset a cui fa riferimento la tdbg
    Per farlo dovrei definire il recordset pubblico nel modulo perchè ripeto sono 2 form diversi.

    Il problema se anche dichiaro pubblico in un modulo il recordset non riesco a fare:

    frm.recordset.requery

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.