Domanda

Qualcuno ha un'idea di cosa potrebbe impedire a nessuno di questi comandi di salvare effettivamente un modulo?C'è un ambiente che mi manca che potrebbe rendere il modulo "solo lettura"?Sto commuovendo il controllo. Proprietà abilita sulla forma sul carico, ma non posso vedere per farla rimanere una volta che ho chiuso la forma.

DoCmd.Close acForm, Me.Name, acSaveYes
DoCmd.Save acForm, Me.Name
.

Modifica: Un codice Psueo per chiarire. Questa funzione viene eseguita sul carico modulo per abilitare / disabilitare determinati controlli e funziona al 100% come previsto.

Private Sub Form_Load()
     If IsNull(TempVars.Item(Me.Name)) Then
         TempVars.Add Me.Name,1

         If somecondition = true then
             Me.Controls.Item("somecontrol").enabled = True
         Else
             Me.Controls.Item("somecontrol").enabled = False
         End If
     End If
End Sub
.

Questo evento Click chiude il modulo e apre un altro modulo.Il problema è, il controllo. Impostazioni anabled I impostato sul carico del modulo non salva.

Private Sub button_OnClick()
    DoCmd.OpenForm "someotherform", acnormal
    DoCmd.Close acForm, Me.Name, acSaveYes
End Sub
.

La prossima volta apporto il primo modulo, le proprietà di controllo non saranno impostate e devo impostare nuovamente la proprietà Conrol.Enabled.

È stato utile?

Soluzione

Non sono stato in grado di trovare alcuna documentazione, ma sembra che non sia possibile salvare le modifiche alla progettazione effettuate in modalità normale.Ho finito per dichiarare una variabile di tipo Global Collection Type.Ho memorizzato stringhe concatenate in questa variabile di raccolta della Convenzione "Form.Name & Control.Name".Se la forma non era mai stata aperta, ho eseguito il controllo lungo su quali controlli dovrebbero essere abilitati e li ho memorizzati in questa collezione globale.Se la forma era stata aperta almeno una volta, ho lottato attraverso i controlli sul modulo che controllano se fossero nella mia collezione globale di controlli "autorizzati".Si sente davvero hackash, ma funziona abbastanza bene.

Altri suggerimenti

Il codice che hai (Chiudi, quindi salva) non riesce sul mio test perché il nome me. è vuoto dopo l'esecuzione della chiusura.Anche se non so quale altro codice potresti avere, sono stato in grado di ottenere il modulo per chiudere una volta che ho cambiato l'ordine.

Ti suggerisco di posizionare il codice nell'evento "Apri" come segue:

Private Sub Form_Open(Cancel As Integer)
    DoCmd.Save acForm, Me.Name
    DoCmd.Close acForm, Me.Name, acSaveYes
End Sub
.

Si desidera modificare la proprietà abilitata su una condizione?Se hai solo bisogno di un controllo disabilitato se il record ... Allora, allora vorrai spostare l'abilitazione dell'evento corrente del modulo, che spara ad ogni navigazione record.Carico e aperto sono troppo presto e non ripetere alla navigazione.

Private Sub Form_Current()
  If Me!X = True Then
    Me.Controls("somecontrol").Enabled = False
  Else
    Me.Controls("somecontrol").Enabled = True
  End If
End Sub
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top