Condividi tramite

Requery sottomaschera

Anonimo
2023-07-25T08:52:13+00:00

Buongiorno a tutti, e innanzitutto grazie e complimenti per gli ottimi consigli che date sempre. Una community fantastica.

Io sto approcciando da pochissimo ad access, e ovviamente a vba, ma sicuramente senza avere le competenze (che sto piano piano cercando di apprendere). Il mio problema in questo caso è: ho una maschera di access "HOME" che esegue una ricerca tramite casella combinata da una tabella (ricerca nome e cognome di un elenco di lavoratori), e mi presenta dei dati del record che cerco. Vorrei, nella metà destra dello schermo, mettere un'altra casella combinata con un altro tipo di dati (in particolare, filtrare a elenco tutte le persone che sono dipendenti della azienda che ricerco in questa seconda casella combinata). Avevo pensato di crearlo con una sottomaschera, e avevo impostato una query, quindi con comando me.requery, ma non funziona, e non riesco a trovare la stringa di comando per fare requery in una sottomaschera da un campo di ricerca presente nella maschera che la contiene

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

18 risposte

Ordina per: Più utili
  1. domenico laurenza 9,900 Punti di reputazione Moderatore volontario
    2023-07-25T10:31:59+00:00

    Ciao Agostino,

    ti premetto che forse potevi risolvere con due combo 'a cascata' invece di avere una sottomaschera.

    Intendo dire che potresti avere una combo che ti permette di selezionare l'azienda e che presenta quindi nella seconda combo l'elenco dei dipendenti dell'azienda della prima combo. Al variare della selezione su cbo_Aziende cambia l'elenco dei dipendenti in cbo_Dipendenti.

    Volendo gestire la sottomaschera cmq, la sintassi per effettuare la requery è del tipo

    Forms.frm_Home.frm_Dipendenti.form.requery

    dove frm_Home è il nome della form principale ( contenitore)

    dove frm_Dipendenti è il nome della sottomaschera.

    Facci sapere

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2023-07-25T10:20:28+00:00

    Ciao

    Sono Abdal e sarei felice di aiutarti con la tua domanda.

    Il codice fornito dovrebbe funzionare, ma ci sono alcune cose che devi cambiare.

    Innanzitutto, la proprietà Me.SearchField non è una proprietà valida per un controllo casella combinata. La proprietà Me.SearchField è valida solo per i controlli casella di testo.

    Nel caso, il controllo casella combinata è denominato elencoaziende. Quindi, è necessario modificare il codice in:

    Sub privato elencoaziende_AfterUpdate() 'Rieseguire una query sulla sottomaschera in base al valore nella casella combinata Me.employees.Requery Me.elencoaziende Fine sub

    In secondo luogo, è necessario assicurarsi che la sottomaschera dipendenti sia associata alla tabella dei lavoratori. Se non è associato alla tabella workers, il metodo Requery non funzionerà.

    Per associare la sottomaschera employees alla tabella workers, è possibile utilizzare il codice riportato di seguito:

    Sub privato Form_Load() «Associare il sottomodulo alla tabella dei lavoratori Me.employees.Form.RecordSource = "SELECT * FROM workers" Fine sub

    Il codice dovrebbe funzionare ora.

    Spero che questa informazione aiuti.

    Saluti

    Abdal

    Restituisci alla comunità. Aiuta la persona successiva con questo problema indicando se questa risposta ha risolto il tuo problema. Fare clic su Sì o No nella parte inferiore.

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2023-07-25T10:18:02+00:00

    Inserisco per comodità uno screen. Nel campo "aziende" io vorrei poter cercare una azienda e che compaia sotto l'elenco dei lavoratori che sono di quella azienda (tutte informazioni che recupera dalla tabella lavoratori)

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2023-07-25T10:11:31+00:00

    Private Sub elencoaziende_AfterUpdate()

    Me.dipendenti.Requery

    End Sub

    questa è la routine che ho inserito nel codice della casella combinata (che si chiama elencoaziende). Ma non funziona. Inoltre me.searchfield non è un comando che riconosce e mi genera un errore di debug.

    Ho sostituito a "subform" il nome della sottomaschera, immaginavo fosse così il comando (giusto?)

    Ciao Sono Abdal e sarei felice di aiutarti con la tua domanda. Per eseguire nuovamente una query su una sottomaschera da un campo di ricerca nel modulo padre, è possibile utilizzare il codice seguente: Sub privato Form_AfterUpdate() «Interrogare nuovamente la sottomaschera in base al valore nel campo di ricerca Me.SubForm.Requery Me.SearchField Fine sub In questo codice la proprietà Me.SearchField fa riferimento al controllo casella di testo nel form padre utilizzato per la ricerca. La proprietà Me.SubForm fa riferimento alla sottomaschera che si desidera rieseguire la query. Per utilizzare questo codice, è necessario aggiungerlo alla routine evento AfterUpdate per il controllo campo di ricerca nel form padre. Ad esempio, se il controllo campo di ricerca è denominato txtSearch, è necessario aggiungere il codice alla routine evento txtSearch_AfterUpdate. Dopo aver aggiunto il codice, dovrebbe essere possibile eseguire nuovamente query sulla sottomaschera immettendo un valore nel campo di ricerca e premendo Invio. Spero che questa informazione aiuti. Saluti Abdal Restituisci alla comunità. Aiuta la persona successiva con questo problema indicando se questa risposta ha risolto il tuo problema. Fare clic su Sì o No nella parte inferiore.

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento
  5. Anonimo
    2023-07-25T09:34:41+00:00

    Ciao

    Sono Abdal e sarei felice di aiutarti con la tua domanda.

    Per eseguire nuovamente una query su una sottomaschera da un campo di ricerca nel modulo padre, è possibile utilizzare il codice seguente:

    Sub privato Form_AfterUpdate() «Interrogare nuovamente la sottomaschera in base al valore nel campo di ricerca Me.SubForm.Requery Me.SearchField Fine sub

    In questo codice la proprietà Me.SearchField fa riferimento al controllo casella di testo nel form padre utilizzato per la ricerca. La proprietà Me.SubForm fa riferimento alla sottomaschera che si desidera rieseguire la query.

    Per utilizzare questo codice, è necessario aggiungerlo alla routine evento AfterUpdate per il controllo campo di ricerca nel form padre.

    Ad esempio, se il controllo campo di ricerca è denominato txtSearch, è necessario aggiungere il codice alla routine evento txtSearch_AfterUpdate.

    Dopo aver aggiunto il codice, dovrebbe essere possibile eseguire nuovamente query sulla sottomaschera immettendo un valore nel campo di ricerca e premendo Invio.

    Spero che questa informazione aiuti.

    Saluti

    Abdal

    Restituisci alla comunità. Aiuta la persona successiva con questo problema indicando se questa risposta ha risolto il tuo problema. Fare clic su Sì o No nella parte inferiore.

    Questa risposta è stata tradotta automaticamente. Di conseguenza, potrebbero esserci errori grammaticali o espressioni strane.

    La risposta è stata utile?

    0 commenti Nessun commento