Condividi:        

[ACCESS] apertura maschere da Menu personalizzato

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 29/09/09 14:13

Salve ho creato un menu personalizzato con Access 2003 e dentro ci ho messo i vari collegamenti alle maschere, ora il mio problema è quello che quando ho una maschera aperta e clicco dal menu un'altra maschera non mi reindirizza su quella cliccata ma mi apre un'altra maschera, posso risolvere questo problema??? e avere sulo una maschera aperta e navigare nel menu senza avere tante maschere aperte???'

Thx
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Sponsor
 

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 29/09/09 15:31

Nella maschera principale (quella che ti permette di aprire altre maschere dovresti avere dei pulsanti di comando ed ognuno collegato alla maschera che ti occorre aprire
un codice standard potrebbe essere:

Codice: Seleziona tutto
Private Sub Comando1_Click()
On Error GoTo Err_Comando1_Click

    Dim stDocName As String
    stDocName = "TuaMaschera1"
    DoCmd.OpenForm stDocName
Exit_Comando1_Click:
    Exit Sub

Err_Comando1_Click:
    MsgBox Err.Description
    Resume Exit_Comando1_Click
 End Sub


un altro pulsante di comando:

Codice: Seleziona tutto
Private Sub Comando2_Click()
On Error GoTo Err_Comando2_Click

    Dim stDocName As String
    stDocName = "TuaMaschera2"
    DoCmd.OpenForm stDocName
Exit_Comando2_Click:
    Exit Sub

Err_Comando2_Click:
    MsgBox Err.Description
    Resume Exit_Comando2_Click
 End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 29/09/09 18:23

Prima di tutto grazie per la risposta, poi io non ho pulsanti sulla maschera principale ma un menu in alto come quello predefinito ma personalizzato con collegamenti alle maschere, ora il menu e presente in ogni maschera e se faccio un passaggio dalla maschera 1 alla 2 usanto il menu la maschera 1 non si chiude. Spero di essermi spiegato bene
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 29/09/09 19:30

Dovresti mettere una routine nel form di ogni maschera
ammettiamo di avere due menu (Menu1 e Menu2)
sul form del Menu1 metterai questo codice
Codice: Seleziona tutto
Dim obj As Object
For Each obj In Application.CurrentProject.AllForms
If obj.Name = "Menu1" Then GoTo salta
DoCmd.Close acForm, obj.Name, acSaveNo
salta:
Next obj

nel Form del Munu2 metterai invece
Codice: Seleziona tutto
Dim obj As Object
For Each obj In Application.CurrentProject.AllForms
If obj.Name = "Menu2" Then GoTo salta
DoCmd.Close acForm, obj.Name, acSaveNo
salta:
Next obj
In pratica chiude tutte le maschere ad esclusione del Menu richiamato nella condizione
Codice: Seleziona tutto
If obj.Name = "MenuX" Then GoTo salta


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 29/09/09 20:45

oh dio forse diventa un casino perchè io dovrei realizzare 180 maschere e in futuro credo altre ora credevo si potesse fare una cosa piu comoda. ma se metto un timer?? cioè dopo 15 sec di inattivita si chiude è possibile????
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 29/09/09 22:28

carlodag ha scritto:....credevo si potesse fare una cosa piu comoda. ma se metto un timer?? cioè dopo 15 sec di inattivita si chiude è possibile????


Di inattività di cosa? :roll:
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 30/09/09 06:12

Flash30005 ha scritto:
carlodag ha scritto:....credevo si potesse fare una cosa piu comoda. ma se metto un timer?? cioè dopo 15 sec di inattivita si chiude è possibile????


Di inattività di cosa? :roll:



di chiusura che dopo un tot di secondi inutilizzata si chiude sola
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 30/09/09 14:12

Flash30005 ha scritto:Di inattività di cosa? :roll:

Carlodag ha scritto:di chiusura che dopo un tot di secondi inutilizzata si chiude sola


:roll: che dopo un tot di secondi inutilizzata si chiude sola, cosa :?:

Se una macro ha un timer interno e dopo n secondi (minuti, ore) chiude la o le maschere non è dipendente dall'utilizzo che ne fai ma allo scadere del tempo chiuderà le maschere, oppure si dovrebbero "intercettare" i comandi della tastiera, e/o mouse,
credo che sia molto più complicato di un codice da mettere in ogni maschera.

Per semplificarti la vita ti invio una macro "universale" (che va bene per ogni maschera senza dover modificare il nome della maschera che deve tener aperta, come richiedeva la precedente macro)

Un copia/incolla per 200 maschere lo si fa in pochissimo tempo, considerando il fatto che il codice rimane in memoria quindi devi fare 200 operazioni di incolla nel Form Load di ogni maschera (non so se si può fare una macro che faccia questo copia incolla automaticamente per tutti i Form del database, ci dovrei pensare su, o magari qualche utente esperto potrebbe realizzarla, visto che in excel è fattibile).

Questo codice è molto più affidabile di qualunque timer (che tra l'altro impegna il Pc e rende difficoltoso l'utilizzo del database stesso)

Codice: Seleziona tutto
Private Sub Form_Load  '<<< riga che già trovi nel Form_Load()
On Error GoTo Err_Close
Dim n, x As Integer
n = Forms.Count
For x = n - 1 To 0 Step -1
If Forms(x).Name = Application.CurrentObjectName Then GoTo salta
DoCmd.Close acForm, Forms(x).Name
salta:
Next
CloseAllForms = True
Err_Close:
CloseAllForms = False
End Sub '<<< riga che già trovi nel Form_Load


Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 30/09/09 17:37

Ho inserito come dici tu il codice in tutte le Maschere ma quest'ultimo manco me le fa aprire le maschere.
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 01/10/09 07:43

Il codice funziona perfettamente
deve essere inserito nel form della maschera
selezioni la maschera
vai in struttura
visualizza codice
selezioni Form e
inserisci il codice
Codice: Seleziona tutto
On Error GoTo Err_Close
Dim n, x As Integer
n = Forms.Count
For x = n - 1 To 0 Step -1
If Forms(x).Name = Application.CurrentObjectName Then GoTo salta
DoCmd.Close acForm, Forms(x).Name
salta:
Next
CloseAllForms = True
Err_Close:
CloseAllForms = False


provalo prima su due o tre maschere e ti accorgerai che all'apertura di una si chiudono le altre (l'altra)
Testato su Access 2003

Fai sapere
Ciao


P.s. sei sicuro che non dipende dai pulsanti? Avvia la maschera cliccando direttamente sulla maschera
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 01/10/09 10:05

Il dubbio che mi è sorto nel post precedente è diventato certezza, quel codice non funziona se attivato da pulsanti che chiamano la maschera ma solo se si attiva la maschera direttamente, quindi ho pensato che puoi risolvere così
Crei un menu con tanti pulsanti quante sono le maschere (è facilissimo farlo con la creazione guidata del pulsante di comando):
"azione su Maschere" > avanti
selezioni la maschera e premi Fine
Avrai qualcosa come questo:
Codice: Seleziona tutto
Private Sub Comando0_Click()
On Error GoTo Err_Comando0_Click

    Dim stDocName As String
    Dim stLinkCriteria As String


    stDocName = "Maschera1"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Comando0_Click:
    Exit Sub

Err_Comando0_Click:
    MsgBox Err.Description
    Resume Exit_Comando0_Click
End Sub

Fatto questo le tutte le maschere (fai una prova con due maschere e un Menu)
inserisci questa macro
Codice: Seleziona tutto
Sub ChiusuraMaschere()
    On Error GoTo Err_Close
Dim n, x As Integer
n = Forms.Count
For x = n - 1 To 0 Step -1
If Forms(x).Name = "Menu" Then GoTo salta
DoCmd.Close acForm, Forms(x).Name
salta:
Next
CloseAllForms = True
Err_Close:
CloseAllForms = False
End Sub

Ora non devi far altro che mettere in ogni codice di pulsante la chiamata a questa macro in questa posizione:
Codice: Seleziona tutto
Private Sub Comando0_Click()
On Error GoTo Err_Comando0_Click

    Dim stDocName As String
    Dim stLinkCriteria As String

Call ChiusuraMaschere    '<<<<<<<<<<<<<< Qui

    stDocName = "Maschera1"
    DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Comando0_Click:
    Exit Sub

Err_Comando0_Click:
    MsgBox Err.Description
    Resume Exit_Comando0_Click
End Sub

Per accelerare questa operazione puoi copiare in memoria la riga Call ChiusuraMaschere, selezionare Dim stLinkCriteria As String (riga dell macro) e cliccare su cerca (pulsante binocolo) ad ogni stringa trovata ti posizioni sotto la stringa e incolli (Call ChiusuraMaschere) poi premi F3 (continua la ricerca) e incolli, etc

Puoi far avviare il Munu contenente tutti i pulsanti all'avvio del database (Strumenti>Avvio e in "Visualizza Maschera/pagina" digiti Menu

Fai sapere
Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 01/12/09 07:38

Ciao Flash prima di tutto ti chiedo scusa se non mi sono fatto piu vivo, ma 2 mesi fà mi sono nati 2 gemellini e mi viene un po difficile lavorare al pc appena ho 2 min. provo la tua soluzione e ti faccio sapere.

Ciao carlo
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 01/12/09 07:56

sinceramente ho provato subito dalla curiosità e funziona a meraviglia ma ora per 200 maschere mica posso fare 200 pulsanti sulle stesse maschere??? io volevo creare un menu a tendina con tutti questi pulsanti inseriti è possibile?
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Flash30005 » 01/12/09 13:39

Ciao Carlodag
bentornato e AUGURISSIMI per i gemelli ;)

Quello che chiedi si può fare creando una tabella "ElencoMaschere" con due campi
NomeMasch e CodiceMasch (esempio) ed eventualmente l'ID
Nella maschera Menu che conteneva i piulsanti o altra maschera crei una casella di riepilogo (metto il nome "ElencoMasch" come esempio) che si collega alla tabella "ElencoMaschere" e importi i due campi interessati
poi crei un pulsante di comando (il mio ha come nome "Comando4")

Codice: Seleziona tutto
Private Sub Comando4_Click()
On Error GoTo Err_Comando4_Click
Mascheramia = Me.ElencoMasch.Column(2)  '<<< questa è la variabile che stata selezionata nella maschera Menu
 Dim stDocName As String
    Dim stLinkCriteria As String
Call ChiusuraMaschere       '<<<< avendo ora il codice qui devi toglierlo nel form di ogni maschera (codice inserito nell'ultimo post)
 stDocName = Mascheramia
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Exit_Comando4_Click:
    Exit Sub

Err_Comando4_Click:
    MsgBox Err.Description
    Resume Exit_Comando4_Click
   
End Sub


Selezionando nella casella combinata la maschera e premendo il pulsante si apre la maschera voluta chiudendo tutte le altre, pertanto va tolta ad ogni form di maschera il codice di chiamat chiusura maschere

comunque per maggior chiarezza ti invio il database-esempio
http://rapidshare.com/files/314739728/ElencoMaschere.rar.html

Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi carlodag » 01/12/09 20:17

sinceramente il tuo esempio è valido ma lolto complicato cioè cercavo una cosa tipo il menu di access ora cerco un po in giro perchè se non ricordo male c'era un menu java che si integrava
carlodag
Utente Junior
 
Post: 92
Iscritto il: 01/03/05 19:48
Località: Palermo

Re: [ACCESS] apertura maschere da Menu personalizzato

Postdi Anthony47 » 01/12/09 21:13

...ma 2 mesi fà mi sono nati 2 gemellini e mi viene un po difficile lavorare al pc
Tranquillo, sei solo all' inizio ... :D :lol: :lol:
Auguri!
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[ACCESS] apertura maschere da Menu personalizzato":


Chi c’è in linea

Visitano il forum: Nessuno e 65 ospiti