Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Grazie Sandro,
Nei prossimi giorni, appena potrò, proverò la soluzione proposta.
Cordiali saluti.
Ciao. David
Questo browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
Buongiorno a tutti,
In un DB di MS Access (uso la versione 2010, ma il file è in formato .mdb, quindi penso fatto con una versione precedente) ho una maschera che mi visualizza diversi dati (Maschera "Visualizza"), tra cui una sottomaschera. Tutti i campi sono bloccati perché è una maschera che deve permettere unicamente la visualizzazione.
Mediante un tasto che ho chiamato "modifica" si apre una maschera di modifica (Maschera "Modifica") all'interno della quale è possibile modificare alcuni campi, compresi quelli della sottomaschera. La maschera "Visualizza" rimane aperta in background.
Vorrei ora fare in modo che la maschera "Visualizza" si aggiorni, compresi i dati nella sottomaschera, non appena si chiude la maschera "Modifica".
È possibile? Come posso fare?
È meglio lavorare con le Macro oppure inserire direttamente un codice nelle proprietà (codice integrato)?
Grazie per un vostro aiuto.
David
Una famiglia di sistemi di gestione per database relazionali di Microsoft progettati per semplificare l'uso.
Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.
Grazie Sandro,
Nei prossimi giorni, appena potrò, proverò la soluzione proposta.
Cordiali saluti.
Ciao. David
ciao David,
ti ho preparato una demo al volo QUI, scaricala.
In sostanza il codice associato al commandButton cmdModifica, ti consente di modificare al volo il recordsetType, di modificare la caption del command Button ( in modo da capire in quale modalità ti trovi) e di ri-sincroninzzare il bookmark del recorsetClone con il recordeset post click :
Option Compare Database
Option Explicit
Private bool As Boolean
Private Sub cmdModifica_Click()
On Error GoTo errHandler
Dim strCaption As String
Dim strMessage As String
Dim lngRecType As Byte
Dim lngPK As Long
strCaption = "Salva"
strMessage = "Modifica Abilitata"
lngRecType = 0
bool = Not bool
If Not bool Then
strCaption = "Modifica"
lngRecType = 2
strMessage = "Modifica NON Abilitata"
End If
VBA.MsgBox prompt:=strMessage, _
buttons:=vbInformation, _
title:="Avviso"
With Me
lngPK = .IDCategoria
.cmdModifica.Caption = strCaption
.RecordsetType = lngRecType ' modifico il recordsetTtype della main form
.Prodotti.Form.RecordsetType = lngRecType ' modifico il recordsetTtype della Subform
.RecordsetClone.FindFirst "IDCategoria=" & lngPK ' salvo la pk e di seguito risicronizzo il bookMark tra recordsetClone e recordset
If Not .RecordsetClone.NoMatch Then
.Bookmark = .RecordsetClone.Bookmark
End If
End With
ExitErrorHandler:
Exit Sub
errHandler:
With Err
VBA.MsgBox "ERR#" & .Number _
& vbNewLine & .Description _
, vbOKOnly Or vbCritical
End With
Resume ExitErrorHandler
End Sub
HTH.
Ciao, Sandro.
Grazie Sandro.
in effetti mi aspettavo l’osservazione circa le 2 maschere.
È la soluzione più semplice e rapida che qualche tempo fa ero riuscito ad applicare 🤪.
Come potrei fare in alternativa? Praticamente vorrei che la modifica si abilitasse solo pressione di un pulsante.
grazie mille.
ciao David,
non mi piace moltissimo il fatto di avere un'altra form master details preposta alla sola modifiche, perché potresti implementare la gestione delle modifiche direttamente dalla form master details addetta per ora alla visualizzazione.
Ti lascio questo spunto di miglioramento per il futuro.
Per ora su scaricamento, evento scaricamento della form modifica, invoca come segue :
Private Sub Form_Unload(Cancel As Integer)
If CurrentProject.AllForms("visualizza").IsLoaded Then
Forms!visualizza.Refresh
End If
End Sub
in pratica prima della chiusura della form mofica verifichi se la form visualizza, ( ovviamente devi inserire il nome corretto dell'oggetto) è caricata oppure no, se si, procedi con l'aggiornamento.
Nel caso di aggiunta di nuovi dati dalla form modifica applica il metodo requery al posto di refresh.
HTH.
Ciao, Sandro.