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.