Listbox che non si aggiorna su nuovo record

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Listbox che non si aggiorna su nuovo record

    Emadragon ha scritto:


    Forse sono io che non mi spiego bene.....
    Ho creato una maschera simile allo stile "maschera divisa" ma siccome non mi piace la struttura stile gridbox ho creato una listbox che visualizza tutti i record presenti cliccando sulle righe della listbox posso modificare i record (è bastato creare una listbox "ricerca record nella maschera") se cambio valore nei campi la listbox si aggiorna ma se inserisco un nuovo record e lo salvo questo non viene visualizzato...
    A scopo di chiarezza... provo a spiegare lo scenario, se ho compreso, in modo che un normale Accessista possa capire.

    Form Singola, basata sulla Tabella Dati, con i Controlli Associati.
    Aggiungo una ListBox, con RowSource uguale al RecordSource della Form.
    Su AfterUpdate della ListBox vado ad effettuare il FindFirst nel RecordsetClone della Form ed il successivo aggiornamento del Bookmark.
    Una cosa simile:
    
        Dim rs As Object
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[ID] = " & str(Nz(Me![NomeListBox], 0))
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    
    Risultato la ListBox funziona come Spostamento Record.

    In tal caso l'ADDNEW lo effettuo dalla Form in modalità usuale, quindi, come ho detto fin dall'inizio, serve intercettare l'evento giusto che si scatena in caso di Aggiunta del Record... e su quello fare il Requery della ListBox.

    La cosa strana è che facendo il Requery della ListBox su Current(escludendo il NewRecord) dovrebbe funzionare, ANZI FUNZIONA regolarmente..., quindi sospetto ci sia qualche altra cosa che non torna... tipo la mancanza di un comando di SALVA, replicabile con lo spostamento record oppure Forzando il Salva con un Button.

    Fatta verifica con questo codice
    
    Private Sub ListBox1_AfterUpdate()
        ' Trova il record corrispondente al controllo
        Dim rs As Object
    
        Set rs = Me.Recordset.Clone
        rs.FindFirst "[ID] = " & str(Nz(Me![ListBox1], 0))
        If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    End Sub
    
    Private Sub Form_Current()
        Me.ListBox1.Requery
    End Sub
    Funziona.
  • Re: Listbox che non si aggiorna su nuovo record

    Ehm risolto...
    l'evento current non era visto dalla proprietà della maschera....
    non uccidetemi...
Devi accedere o registrarti per scrivere nel forum
16 risposte