Il punto centrale di una sottomaschera è che è controllata dal origine record e il bambino di collegamento e campi di master. Diciamo la forma è la società e la sottomaschera è dipendenti, l'origine record per la sottomaschera potrebbe essere:
SELECT EmployeeID, CompanyID, Position, Etc FROM Employees
Il bambino collegamento e master campi sarebbero CompanyID. Mentre si spostava il modulo principale, venivano visualizzati solo i record pertinenti alla società corrente. Diciamo poi si desidera visualizzare solo i dipendenti che si trovano in una posizione tecnica, è possibile modificare l'origine record in fase di esecuzione:
SELECT EmployeeID, CompanyID, Position, Etc FROM Employees
WHERE Position = "Technical"
o se questo è sempre quello di essere un filtro sul modulo, aggiungere un combobox, per esempio, per la forma principale e utilizzare che come un secondo campo Master Link, in modo da avere:
Link Master Fields: CompanyID; cboPosition
Link Child Fields : CompanyID; Position
Infine, si può semplicemente impostare la proprietà del filtro dalla maschera principale:
Me.Employees_subform.Form.Filter = "Position=""Tecnical"""
Me.Employees_subform.Form.FilterOn = True
io Se questo non è quello che hai in mente, per favore aggiungi alcune note alla tua domanda.
EDIT
È possibile fornire i parametri a una query facendo riferimento a un controllo in un form:
SELECT EmployeeID, CompanyID, Position, Etc FROM Employees
WHERE Position = Forms!MyMainForm!cboPosition
È possibile modificare completamente l'SQL di una query ed è possibile utilizzare ADO, tuttavia, la modifica di SQL è simile all'impostazione dell'origine record in quanto l'SQL viene modificato nel codice e l'utilizzo di ADO non è in genere la scelta migliore per i moduli.
Ciò che non si può fare è modificare un parametro e farlo "incollare" con un modulo o una sottomaschera.
Ad esempio:
DoCmd.SetParameter "@SomeID", "1"
' This works
DoCmd.OpenQuery ("Queryx")
' This will give a prompt for @SomeID and then run
Me.SomeSubform.Form.RecordSource = "Queryx"
Inline SQL in un modulo VBA è una cattiva idea, non solo per scopi di leggibilità, ma anche perché potrebbe gettare errori imprevisti e rappresentano una [minaccia alla sicurezza] (http://xkcd.com/327/). – StockB