Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Modifica di una form via VBA

13 views
Skip to first unread message

nuts

unread,
Jul 3, 2009, 7:27:32 AM7/3/09
to
Ciao a tutti,

Ho un db access che viene distribuito a diversi utenti.
All'interno di una form c'� un controllo (combobox) che deve essere
visibile soltanto ad alcuni utenti. Altri invece non la devono vedere.

Anzich� creare due versioni del db (sarebbero state pi� di due perch� in
realt� il problema si ripete con altre maschere e controlli), ho pensato
di scrivere una procedura VBA che:

Apre la form
setta la propriet� Visible del combobox a False.
chiude la form

Il risultato � che la propriet� viene modificata, ma alla chiusura della
form questa modifica viene persa e la combobox � ancora ben visibile.
Esiste un modo per salvare le modifiche a una form effettuate via VBA?

Grazie

Karl Donaubauer

unread,
Jul 3, 2009, 7:38:22 AM7/3/09
to

No, ma perch� vuoi farlo?
Di solito si legge l'utente (di Access, di Windows o di un proprio
sistema con tabelle ecc.) nel evento Open o Load della maschera
e imposta la propriet� Visibile dei controlli.

Certo si puo anche leggere l'utente una sola volta all'avvio del db,
scriverlo p.e. in una casella di testo nella maschera principale e
poi leggerlo da qui. Ma la visibilit� si imposta sempre di nuovo
OnOpen o OnLoad delle maschere e report.

--
HTH
Karl
*********
Access FAQ: www.donkarl.com/it

Pablitomf

unread,
Jul 3, 2009, 8:25:49 AM7/3/09
to
nuts ha scritto:

> Ciao a tutti,

> Grazie

non si fa come hai previsto tu...
si fa piuttosto cos� :

if CurrentUser = "PIPPO" then :tuoncontrollo.visible=false
if CurrentUser = "PLUTO" then :tuoncontrollo.visible=true

--
Ciao
Pablitomf

----------------------------
http://www.accessgroup.it/
----------------------------
Non mi fido molto delle statistiche, perch� un uomo con la testa nel forno
acceso e i piedi nel congelatore statisticamente ha una temperatura media.

questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ab...@newsland.it


nuts

unread,
Jul 3, 2009, 10:48:02 AM7/3/09
to
Karl Donaubauer wrote:

> No, ma perch� vuoi farlo?
> Di solito si legge l'utente (di Access, di Windows o di un proprio
> sistema con tabelle ecc.) nel evento Open o Load della maschera
> e imposta la propriet� Visibile dei controlli.

grazie, far� cos�

Riccardo Baldinotti

unread,
Jul 9, 2009, 4:07:37 AM7/9/09
to
On 3 Lug, 13:38, "Karl Donaubauer" <NoS...@donkarl.com> wrote:
> nuts wrote:
> > ... Esiste un modo per salvare le modifiche a una form
> > effettuate via VBA?
>
> No, ma perché vuoi farlo? ...

Scusate se m'intrometto; le soluzioni prospettate sono senz'altro le
migliori, ma io uso un modo per salvare le modifiche a una form, per
esempio:
DoCmd.OpenForm stDocName, acDesign
If Forms!stato!livello = "A" Then
Forms(stDocName).PopUp = False
Forms(stDocName).Modal = False
Forms(stDocName).AutoCenter = False
Else
Forms(stDocName).PopUp = True
Forms(stDocName).Modal = True
Forms(stDocName).AutoCenter = True
End If
DoCmd.Close acForm, stDocName, acSaveYes
DoCmd.OpenForm stDocName, acNormal
cosa che faccio in un'applicazione affinché la maschera si presenti
diversamente a seconda del valore trovato in una casella di testo.

Altrove, faccio il seguente:
DoCmd.OpenForm "maschera1", acDesign
Forms!maschera1!Testo63.DefaultValue = pos.Top
Forms!maschera1!Testo64.DefaultValue = pos.Left
Forms!maschera1!Testo56.DefaultValue = u
Forms!maschera1!Casella46.BackColor = sfondo
Forms!maschera1!Casella47.BackColor = sfondo
Forms!maschera1!Testo61.DefaultValue = q
Forms!maschera1!o1.BackColor = scheda
Forms!maschera1!o2.BackColor = scheda
Forms!maschera1!m1.BackColor = scheda
Forms!maschera1!m2.BackColor = scheda
Forms!maschera1!s1.BackColor = scheda
Forms!maschera1!s2.BackColor = scheda
Forms!maschera1!Testo62.DefaultValue = s
Forms!maschera1!o1.ForeColor = cifre
Forms!maschera1!o2.ForeColor = cifre
Forms!maschera1!m1.ForeColor = cifre
Forms!maschera1!m2.ForeColor = cifre
Forms!maschera1!s1.ForeColor = cifre
Forms!maschera1!s2.ForeColor = cifre
DoCmd.Close acForm, "maschera1", acSaveYes
per memorizzare sia i colori della maschera, scelti dall'utente, che
la posizione in modo che si riapra nel punto in cui era stata
spostata.

Sono gli arzigogoli di un praticone, e magari mi potete commentare
qualcosa.
Grazie per l'attenzione e scusate ancora.
Riccardo Baldinotti

Alessandro Cara

unread,
Jul 9, 2009, 7:12:38 AM7/9/09
to
Riccardo Baldinotti ha scritto:
[cut]

> Sono gli arzigogoli di un praticone, e magari mi potete commentare
> qualcosa.
Bel modo per degradare il FE
--
ac
0 new messages