Aggiornamento maschere

di il
8 risposte

Aggiornamento maschere

Devo risolvere un problema spero possiate aiutarmi,
Nel Db che ho creato ho una tabella che ho chiamato movimenti_esce, nella quale sono presenti 3 campi: data, articolo, esce,
Da questa ho creato una maschera di riepilogo tabulati, dove vengono visionate tutte le operazioni di scarico.
ho creato poi una seconda maschera dalla stessa tabella con gli stessi campi ma questa funziona solo come inserimento dati. Per visionare gli aggiornamenti sulla maschera di riepilogo devo ogni volta chiudere e riaprire la maschera stessa. Ho creato una routine di aggiornamento ma non funziona, mi da sempre "errore di run time 424 - necessario oggetto",. Visione il debugging e mi evidenzia la seconda riga della routine. Allego il codice che ho scritto. Potete dirmi dove Sbaglio?

Private Sub Form_AfterUpdate ()
Dim rec As String
rec = Form_movimenti_esce.CurrentRecord
Form_movimenti_esce.Requery
DoCmd.GoToRecoed a Data Formazione, "movimenti_esce",asGoTo, rec
Me.RecordsetClone.MoveLast
Me.Bookmark = Me.RecorsetClone.Bookmark
End Sub

Ringrazio anticipatamente chi può aiutarmi

8 Risposte

  • Re: Aggiornamento maschere

    Per me tu potresti avere una "maschera singola" per INSERIRE e "la stessa" "maschera foglio dati" per VEDERE.
    Stando così le cose non vedo il perché di 2 maschere, basta solo commutare la visualizzazione della "stessa" maschera da maschera singola in foglio dati e viceversa...del resto hai anche il tasto in alto a sinistra che fa ciò.
    Quel codice non mi dice niente. Direi che via codice puoi imporre/impostare che quando sei in maschera singola puoi inserire, quando sei in maschera foglio dati solo lettura, attraverso le proprietà
    Consenti modifiche
    Consenti aggiunte
    Consenti eliminazioni

    Altrimenti spiega meglio la situazione.
  • Re: Aggiornamento maschere

    Spero di farmi capire meglio.
    Ho creato una la tabella "movimenti_esce" con 3 campi: data, articolo, esce.
    Da questa tabella ho creato una maschera con i 3 campi come foglio dati. Questa maschera puo essere visionate e puo subire modifiche ma non può avere aggiunte, serve solo come controllo, ed il sempre aperta .
    Poi ho creato una seconda maschera con gli stessi campi in formato normale per la sola immissione dati e quindi ogni volta deve essere riaperta. Quando questa seconda maschera viene chiusa automaticamente l'operazione fatta deve essere visibile nella prima maschera che è sempre aperta, ma questa operazione non viene fatta e devo sempre richiudere e riaprire la maschera in foglio dati per visionare gli aggiornamenti dei campi.
  • Re: Aggiornamento maschere

    Vediamo se ho capito, con la SecondaMaschera tu inserisci qualcosa che poi deve essere modificato in tabella [movimenti_esce].
    Una tabella Movimenti mi sembra strano che non può avere aggiunte di record.
    Trovo anomalo o addirittura sbagliato il modo con cui stai gestendo un DATABASE.
    Hai una sola tabella? Normalizzazione?
  • Re: Aggiornamento maschere

    Ho più tabelle, articoli, fornitori, categorie, movimenti in entrata ecc, tutto funziona bene solo quando inserisco nuove entrate o uscite mi si pone il problema, mi sa però che leggendo la tua risposta ho spiegato male la cosa, chiedo scusa. Volevo dire che quando nella seconda maschera faccio un movimento quando la chiudo questo movimento deve essere visionato nella prima maschera in tempo reale senza che debba ogni volta chiuderla e riaprirà. La prima maschera in formato foglio dati può subire delle modifiche ma on può avere immissioni dati se non attraverso la seconda maschera
  • Re: Aggiornamento maschere

    Non so...penserei a un
    DoCmd.RunCommand acCmdSaveRecord
    subito dopo aver inserito il nuovo record

    Se ancora non funziona, penserei a
    Forms!Maschera1.Requery
    Se ancora non funziona, penserei al comando equivalente a "Aggiorna tutto" (in VBA non lo so...)

    Nutro ancora qualche perplessità sulla gestione di questa cosa...sai tu!
  • Re: Aggiornamento maschere

    Se ho ben capito usi un pulsante per chiudere la maschera, oltre alla chiusura mettici anche l'apertura della maschera foglio dati e nella maschera foglio dati in evento su caricamento fai una macro con il comando aggiorna. così dovrebbe funzionare.
  • Re: Aggiornamento maschere

    MIguel catalini ha scritto:


    Devo risolvere un problema spero possiate aiutarmi,
    Nel Db che ho creato ho una tabella che ho chiamato movimenti_esce, nella quale sono presenti 3 campi: data, articolo, esce,
    Da questa ho creato una maschera di riepilogo tabulati, dove vengono visionate tutte le operazioni di scarico.
    ho creato poi una seconda maschera dalla stessa tabella con gli stessi campi ma questa funziona solo come inserimento dati. Per visionare gli aggiornamenti sulla maschera di riepilogo devo ogni volta chiudere e riaprire la maschera stessa. Ho creato una routine di aggiornamento ma non funziona, mi da sempre "errore di run time 424 - necessario oggetto",. Visione il debugging e mi evidenzia la seconda riga della routine. Allego il codice che ho scritto. Potete dirmi dove Sbaglio?

    Private Sub Form_AfterUpdate ()
    Dim rec As String
    rec = Form_movimenti_esce.CurrentRecord
    Form_movimenti_esce.Requery
    DoCmd.GoToRecoed a Data Formazione, "movimenti_esce",asGoTo, rec
    Me.RecordsetClone.MoveLast
    Me.Bookmark = Me.RecorsetClone.Bookmark
    End Sub

    Ringrazio anticipatamente chi può aiutarmi
    Se l'obbiettivo è tornare al Record iniziale dopo il REQUERY si usa un metodo diverso, questo potrebbe riservare sorprese... pensa ad esempio in caso di Cancellazione Record...

    Io ti suggerisco questo
    
    Dim lngPK As Long
    Forms!Form_movimenti_esce.Requery
    With Forms!Form_movimenti_esce.RecordsetClone
        .FindFirst "NomeCampoPK=" & lngPK
        If .NoMatch=False then
           Forms!Form_movimenti_esce.Bookmark=.Bookmark
        Else
           Msgbox "Riferimento non trovato o non valido"
        End if
    End With
  • Re: Aggiornamento maschere

    Problema risolto, un po' grazie ai vostri consigli un po' provando varie soluzioni e sono riuscito ad ottenere ciò che volevo.
    Ho impostato una requery su chiusura maschera e funziona perfettamente.
    Grazie a tutti per i consigli
Devi accedere o registrarti per scrivere nel forum
8 risposte