+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: Aprire DoCmd.OpenForm con acFormView predefinito

  1. #1
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Luogo
    Conversano
    Post
    2,988

    Aprire DoCmd.OpenForm con acFormView predefinito

    Ho 3 maschere, Maschera1, Maschera2, Maschera3, aventi rispettivamente la proprietà "Visualizzazione predefinita"
    - Maschera singola
    - Maschere continue
    - Foglio dati

    In una variabile di tipo String (strNomeMaschera) gli passo il nome della maschera che ho precedentemente scelto in una piccola maschera di scelta. Poi vorrei aprire così
    codice:
    DoCmd.OpenForm strNomeMaschera, xxx
    dove al posto di xxx vorrei dirgli qualcosa come "aprila secondo la SUA impostazione predefinita".
    Si può fare? Altrimenti come posso risolvere?
    Ditemi i campi di tutte le vostre tabelle.

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,431
    Non capisco... se le Maschere sono state impostate a Design(Struttura) non hai bisogno di andare a specificare il parametro... basta OpenForm con il Nome...
    codice:
    DoCmd.OpenForm strNomeMaschera
    Se invece vuoi fare una prova, allora devi aver salvato da qualche parte la modalità in quanto non la puoi rilevare dalla Form stessa essendo ancora chiusa.

    Fatico però a capire.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Luogo
    Conversano
    Post
    2,988
    Quote Originariamente inviato da @Alex
    Non capisco... se le Maschere sono state impostate a Design(Struttura) non hai bisogno di andare a specificare il parametro... basta OpenForm con il Nome...
    Anch'io mi aspetterei una cosa del genere, ma si dà il caso che non scrivendo nulla nel secondo argomento, il VBA interpreta sempre e comunque acNormal come valore di default.

    Quote Originariamente inviato da @Alex
    Se invece vuoi fare una prova, allora devi aver salvato da qualche parte la modalità in quanto non la puoi rilevare dalla Form stessa essendo ancora chiusa.
    Ho fatto varie prove e ovviamente non si può andare a rilevare quella proprietà se la maschera è ancora chiusa.

    Speravo di cavarmela con nomi generici. Rispiego tutto con i nomi veri delle maschere che sono 2: Nominativi (maschera singola), Tessere (foglio dati). Anziché la strNomeMaschera, uso direttamente il valore del controllo Scelta, ossia Me!Scelta. Attualmente me la cavo così
    codice:
    Select Case Me!Scelta
            Case "Nominativi"
                DoCmd.OpenForm Me!Scelta 'il default prevede sempre acNormal
            Case "Tessere"
                DoCmd.OpenForm Me!Scelta, acFormDS 'qui lo devo specificare altrimenti me la apre acNormal
    End Select
    Certo, per ora sono solo 2 casi, ma mi piacerebbe capire come "snellire" tutto in un colpo solo.

    Nel frattempo sto provando a leggere qui
    Access/VBA - leggere i paramentri di apertura di un form
    pare che la via OpenArgs e il successivo Load potrebbero risolvere...ma confesso che mi sto perdendo in un bicchier d'acqua...e non ci arrivo!!!
    O non ne vale la pena?
    Ultima modifica di OsvaldoLaviosa; 21-03-2019 08:27 
    Ditemi i campi di tutte le vostre tabelle.

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,431
    Qualche cosa non torna... nelle proprietà della Maschera in modaltà STRUTURA alla Tab(Formato)---> [Visualizzazione Predefinita]
    Se la imposti e salvi questa prorpeità VIENE MANTENUTA ed è impossibile che aprendola da codice non sia applicata...!

    Il problema è che tu la vuoi aprire in modalità acFormDS che non è supportata nelle DEFAULT PROPERTIES in quanto è una modalità di progettazione...

    A questo punto devi modificare facendo una cosa simile
    codice:
    Dim eFormView    As Access.AcFormView
    Dim sFormName   As Strig
    
    Select Case Me!Scelta
            Case "Nominativi"
                sFormName="NomeMascheraScelta1":    eFormView = acNormal
    
            Case "Tessere"
                sFormName="NomeMascheraScelta2":    eFormView = acFormDS
    End Select
    
    DoCmd.OpenForm sFormName, eFormView
    P.S. Faccio 2 osservazioni:
    1) Non si scrive MAI CODICE che apre in Struttura un oggetto perchè non deve essere fatto(ovviamente so che nel tuo caso lo usi tu, ma nell'ottica di distribuire)
    2) I Gruppi Opzioni per le Scelte o le ComboBox per le Scelte, si usano sfruttando INDICI Numerici, perchè se domani Campi i Nomi degli Oggetti non funziona più nulla... e se il codice è complesso andarsi a ricordare dove hai messo i riferimenti incrociati è un macello.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    OsvaldoLaviosa non è in linea Topo di biblioteca
    Luogo
    Conversano
    Post
    2,988
    Quote Originariamente inviato da @Alex
    Il problema è che tu la vuoi aprire in modalità acFormDS che non è supportata nelle DEFAULT PROPERTIES in quanto è una modalità di progettazione...
    Questa cosa non la sapevo.
    Vabbè, vuol dire che lascio l'impianto logico del Select Case.
    Grazie mille per tutti i chiarimenti.
    Ditemi i campi di tutte le vostre tabelle.

  6. #6
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Arrivo anch'io!!!
    Quote Originariamente inviato da OsvaldoLaviosa Visualizza il messaggio
    ...ma si dà il caso che non scrivendo nulla nel secondo argomento, il VBA interpreta sempre e comunque acNormal come valore di default.
    Mumble mumble... effettivamente qualcosa di strano c'è, almeno nelle mie prove (poche a dire il vero). Mentre il doppio click rispetta sempre la visualizzazione predefinita (almeno quello!) il DoCmd.OpenForm fa un po' di testa sua: rispetta la visualizzazione predefinita impostata in modalità struttura se si tratta di Maschera Singola o Maschera Continua, mentre se ne infischia quando è Foglio Dati e la apre in Maschera Singola.
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    ...nelle proprietà della Maschera in modaltà STRUTURA alla Tab(Formato)---> [Visualizzazione Predefinita]
    Se la imposti e salvi questa prorpeità VIENE MANTENUTA ed è impossibile che aprendola da codice non sia applicata...!
    eppure succede anche a me.
    Non chiedetemi la spiegazione però è quello che è successo.

  7. #7
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    ...
    Il problema è che tu la vuoi aprire in modalità acFormDS che non è supportata nelle DEFAULT PROPERTIES in quanto è una modalità di progettazione...
    Questa non l'ho capita.

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,431
    Nella combo delle opzioni della proprietà Visualizzazione Predefinita... trovi Modalità Struttura...?
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  9. #9
    Phil_cattivocarattere non è in linea Scribacchino
    Luogo
    Verona-Mantova
    Post
    1,688
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Nella combo delle opzioni della proprietà Visualizzazione Predefinita... trovi Modalità Struttura...?
    Certo che no, ma non riesco a capire cosa c'entra acFormDS che è la visualizzazione Foglio Dati.

  10. #10
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,431
    Hai ragione... ho pensato alla modalita DESIGN chissa perché invece è Datasheet... portate pazienza... invecchio.
    In questo caso l'impostazione assegnata viene assolutamente Mantenuta.
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi