Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [Access 2010] da macro incorporata a VBA

    In una maschera visualizzo una serie di record che hanno anche il campo [provincia]
    Nell'intestazione ho messo un DropDown per filtrare i dati di nome [pv] ed un pulsante per annullare il filtro.
    A questi due elementi ho associato una macro incorporata:

    DropDown, su modifica, condizione where: [Provincia]=[Maschere]![Indirizzi]![pv]

    pulsante, su click:
    MostraOgniRecord
    [Maschere]![indirizzi]![pv]=""

    Adesso vorrei passare dalle macro al codice VBA. Mi dareste una mano?
    Pietro

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    ....... Adesso vorrei passare dalle macro al codice VBA. ......
    Che brutta brutta brutta roba le macro incorporate,
    se vuoi un consiglio e se si tratta solamente di 1 mascherina io rifarei la maschera con una macro NON incorporata.

    poi nella macro NON incorporata hai un pulsante in alto a Sx "Converti Macro in Visual Basic"
    che ti fa una ottima conversione esente da errori o imperfezioni.
    e ti crea un nuovo modulo VBA del nome "Macroxxx convertita" ( che puoi modificare )

    poi nelle proprietà della maschera l'evento che ti puntava alla macro Non incorporata lo reindirizzi al nuovo modulo VBA

    per ultimo elimini la macro


    In questo modo hai un semplice ed efficace strumento per scrivere VBA
    fintantoché non lo puoi scrivere autonomamente.


    PS:
    Sto osservando adesso che nelle macro incorporate invece il pulsante "Converti macro in Visual Basic" è disabilitato ???
    poi comunque non saprei come faresti ad eliminarla

    .

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ti ringrazio della risposta. Seguendo il tuo consiglio ho creato la macro e l'ho convertita.
    In rete ho trovato del codice che fa la stessa cosa ma in modo diverso.
    Non so che differenze ci siano. Un aiuto per capire?

    codice:
    Private Sub annulla_filtro_Click()
        Me.FilterOn = False
        Me.Requery
        Me.id_regione_filtro.Value = Null
    End Sub
    codice:
    Private Sub annulla_filtro1_Click()
        DoCmd.ShowAllRecords
        Forms!province!id_regione_filtro1 = Null
    End Sub
    Pietro

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Sono sostanzialmente la stessa cosa

    La 1° è piu comune mentre la 2° è un po atipica ( ma NON sbagliata)

    Si tratta di 2 routine che possono funzionare solo all'interno della maschera
    perche diversamente avresti "Public Sub" oppure "Public Function"

    Pero la 1° ha usato la sintassi implicita Me. ( Me significa "la presente maschera" )
    mentre la 2° esplicita il nome della maschera


    Il filtro è una proprieta scritta fra le proprieta ( scheda Dati ) della maschera
    e resta scritto anche se il filtro viene disattivato e pertanto vedi tutti i record


    fra la 3° riga della 1° routine e la 2° riga della 2° routine
    c'è un .Value di differenza,
    e una questione di abitudine dell'autore, io preferisco scriverlo ma se omesso
    è come se ci fosse perche il value è la proprieta predefinita di Me.NomeCampo.Filtro

    Prova a scrivere una nuova riga con Me.NomeCampo.Filtro.
    ti accorgi che appena batti l'ultimo punto l'intellisense ti propone tutte le possibilità
    di queste solo il Value e defolt quindi lapuoi omettere



    La 1° dice :
    Me.FilterOn = False
    Me.Requery
    Significa:
    - Disattiva il filtro ( ma non lo cancella )
    - Aggiorna la visualizzazione ( quindi mostra tutti i record )


    La 2° dice:
    DoCmd.ShowAllRecords
    Significa:
    EseguiComando, Mostra Tutti i record ( anche questa non cancella il filtro )



    Poi entrambe impostano il valore di un campo a Null


    .
    Ultima modifica di nman; 16-05-2014 a 13:42

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    perfetto! ti ringrazio ancora
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.