Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Aggiornare DataGrid

  1. #1

    Aggiornare DataGrid

    Ciao, ho un problemino con l'aggiornamento di una griglia.
    Sul form principale c'è la DataGrid "indiziata", connessa ad un DB access. Per modificare/cancellare/aggiungere record al DB uso un form secondario. Il problema è che quando ho fatte le modifiche al DB dal form2 e poi torno al form principale, la DataGrid visualizza ancora i vecchi dati, perchè non li ha aggiornati.
    Come faccio ad aggiornare i dati nella datagrid, in seguito alle modifiche fatte sul form2? :quipy:

  2. #2
    Form1.DataGrid1.refresh

  3. #3
    Grazie.



  4. #4
    Ma non mi funziona
    mettendo il refresh su un pulsante apposito mi dice "Necessario Oggetto". Se invece metto il comando direttamente dal form2 (la griglia sta nel form1), non viene aggiornato senza restituire errori.

    L'inserimento nel DB deve essere effettuato sullo stesso form con il refresh?

  5. #5
    Utente di HTML.it L'avatar di krico
    Registrato dal
    Mar 2003
    Messaggi
    186
    il datagrid l'hai iniz in form_load?

    se si significa che che non modifichi in modo permanente il db quando lavori nel form 2.
    che fortuna essere sognatore in un mondo in cui è una sfortuna essere sognatori

  6. #6
    Il datagrid va inizializzato?
    Come?

  7. #7
    Utente di HTML.it L'avatar di krico
    Registrato dal
    Mar 2003
    Messaggi
    186
    datasource
    che fortuna essere sognatore in un mondo in cui è una sfortuna essere sognatori

  8. #8
    Il datasource l'ho già fatto puntare al datacontrol.

  9. #9
    Utente di HTML.it L'avatar di krico
    Registrato dal
    Mar 2003
    Messaggi
    186
    la dichiarazione del recordset(dell'oggetto) è pubblica?
    che fortuna essere sognatore in un mondo in cui è una sfortuna essere sognatori

  10. #10
    FORM1:

    Private Sub SetButtons(bVal As Boolean)
    CmdAggiorna.Visible = Not bVal
    End Sub
    ---
    Private Sub CmdAggiorna_Click()
    On Error GoTo UpdateErr

    adoPrimaryRS.UpdateBatch adAffectAll

    If mbAddNewFlag Then
    adoPrimaryRS.MoveLast 'si sposta sul nuovo record
    End If

    mbEditFlag = False
    mbAddNewFlag = False
    SetButtons True
    mbDataChanged = False

    Exit Sub
    UpdateErr:
    MsgBox Err.Description
    End Sub
    ----
    Private Sub Command1_Click()
    Form1.Hide
    Secondario.Show
    End Sub


    _______________
    FORM2:
    Dim WithEvents adoPrimaryRS As Recordset
    Dim mbChangedByCode As Boolean
    Dim mvBookMark As Variant
    Dim mbEditFlag As Boolean
    Dim mbAddNewFlag As Boolean
    Dim mbDataChanged As Boolean

    Private Sub Command1_Click()
    Secondario.Hide
    Form1.Show
    End Sub


    Private Sub Form_Load()
    Dim db As Connection
    Set db = New Connection
    db.CursorLocation = adUseClient
    db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=GetsMag.mdb;"

    Set adoPrimaryRS = New Recordset
    adoPrimaryRS.Open "select [Cognome Nome],Indirizzo,Note,Provincia,[Ragione sociale],Telefono,[Telefono secondario] from Clienti", db, adOpenStatic, adLockOptimistic

    Dim oText As TextBox
    'Associa le caselle di testo al fornitore di dati
    For Each oText In Me.txtFields
    Set oText.DataSource = adoPrimaryRS
    Next

    mbDataChanged = False
    End Sub

    Private Sub Form_Resize()
    On Error Resume Next
    lblStatus.Width = Me.Width - 1500
    cmdNext.Left = lblStatus.Width + 700
    cmdLast.Left = cmdNext.Left + 340
    End Sub

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If mbEditFlag Or mbAddNewFlag Then Exit Sub

    Select Case KeyCode
    Case vbKeyEscape
    cmdClose_Click
    Case vbKeyEnd
    cmdLast_Click
    Case vbKeyHome
    cmdFirst_Click
    Case vbKeyUp, vbKeyPageUp
    If Shift = vbCtrlMask Then
    cmdFirst_Click
    Else
    cmdPrevious_Click
    End If
    Case vbKeyDown, vbKeyPageDown
    If Shift = vbCtrlMask Then
    cmdLast_Click
    Else
    cmdNext_Click
    End If
    End Select
    End Sub

    Private Sub Form_Unload(Cancel As Integer)
    Screen.MousePointer = vbDefault
    End Sub

    Private Sub adoPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    'Visualizza la posizione del record corrente per questo gruppo di record
    lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)
    End Sub

    Private Sub adoPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    'Posizione in cui inserire il codice per la convalida
    'L'evento viene richiamato in seguito alle seguenti azioni
    Dim bCancel As Boolean

    Select Case adReason
    Case adRsnAddNew
    Case adRsnClose
    Case adRsnDelete
    Case adRsnFirstChange
    Case adRsnMove
    Case adRsnRequery
    Case adRsnResynch
    Case adRsnUndoAddNew
    Case adRsnUndoDelete
    Case adRsnUndoUpdate
    Case adRsnUpdate
    End Select

    If bCancel Then adStatus = adStatusCancel
    End Sub

    Private Sub cmdAdd_Click()
    On Error GoTo AddErr
    With adoPrimaryRS
    If Not (.BOF And .EOF) Then
    mvBookMark = .Bookmark
    End If
    .AddNew
    lblStatus.Caption = "Aggiunge il record"
    mbAddNewFlag = True
    SetButtons False
    End With

    Exit Sub
    AddErr:
    MsgBox Err.Description
    End Sub

    Private Sub cmdDelete_Click()
    On Error GoTo DeleteErr
    With adoPrimaryRS
    .Delete
    .MoveNext
    If .EOF Then .MoveLast
    End With
    Exit Sub
    DeleteErr:
    MsgBox Err.Description
    End Sub

    Private Sub cmdEdit_Click()
    On Error GoTo EditErr

    lblStatus.Caption = "Modifica il record"
    mbEditFlag = True
    SetButtons False
    Exit Sub

    EditErr:
    MsgBox Err.Description
    End Sub
    Private Sub cmdCancel_Click()
    On Error Resume Next

    SetButtons True
    mbEditFlag = False
    mbAddNewFlag = False
    adoPrimaryRS.CancelUpdate
    If mvBookMark > 0 Then
    adoPrimaryRS.Bookmark = mvBookMark
    Else
    adoPrimaryRS.MoveFirst
    End If
    mbDataChanged = False

    End Sub

    Private Sub cmdUpdate_Click()
    On Error GoTo UpdateErr

    adoPrimaryRS.UpdateBatch adAffectAll

    If mbAddNewFlag Then
    adoPrimaryRS.MoveLast 'si sposta sul nuovo record
    End If

    mbEditFlag = False
    mbAddNewFlag = False
    SetButtons True
    mbDataChanged = False

    Exit Sub
    UpdateErr:
    MsgBox Err.Description
    End Sub

    Private Sub cmdClose_Click()
    Unload Me
    End
    End Sub

    Private Sub cmdFirst_Click()
    On Error GoTo GoFirstError

    adoPrimaryRS.MoveFirst
    mbDataChanged = False

    Exit Sub

    GoFirstError:
    MsgBox Err.Description
    End Sub

    Private Sub cmdLast_Click()
    On Error GoTo GoLastError

    adoPrimaryRS.MoveLast
    mbDataChanged = False

    Exit Sub

    GoLastError:
    MsgBox Err.Description
    End Sub

    Private Sub cmdNext_Click()
    On Error GoTo GoNextError

    If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext
    If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then
    Beep
    'è stata superata la fine e quindi torna indietro
    adoPrimaryRS.MoveLast
    End If
    'visualizza il record corrente
    mbDataChanged = False

    Exit Sub
    GoNextError:
    MsgBox Err.Description
    End Sub

    Private Sub cmdPrevious_Click()
    On Error GoTo GoPrevError

    If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious
    If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then
    Beep
    'è stata superata la fine e quindi torna indietro
    adoPrimaryRS.MoveFirst
    End If
    'visualizza il record corrente
    mbDataChanged = False

    Exit Sub

    GoPrevError:
    MsgBox Err.Description
    End Sub

    Private Sub SetButtons(bVal As Boolean)
    cmdAdd.Visible = bVal
    cmdEdit.Visible = bVal
    cmdUpdate.Visible = Not bVal
    cmdCancel.Visible = Not bVal
    cmdDelete.Visible = bVal
    cmdClose.Visible = bVal
    cmdNext.Enabled = bVal
    cmdFirst.Enabled = bVal
    cmdLast.Enabled = bVal
    cmdPrevious.Enabled = bVal
    End Sub

    Questo è il codice che sto utilizzando, ed è della creazione guidata (sto provando così adesso ), ma non funziona ancora.

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.