|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Milano <--> Lecce
Messaggi: 511
|
[MS Access'03] Selezioni in cascata in caselle combinate
Salve ragazzi,
ho un DB composto da un'unica tabella, su cui devo effettuare dei filtraggi in cascata in base a tre campi diversi: cioè innanzitutto filtro la tabella in base al primo campo, poi il risultato in base al secondo ed infine in base al terzo. Le selezioni devono essere fatte scegliendo il valore desiderato dal relativo menu a tendina. E' possibile fare questa stupidata solo tramite maschere? Non ho ben capito se servono o meno le query o se basta solo specificare la condizione WHERE di apertura di una maschera: stavo pensando di fare 3 maschere diverse, in cui la prima apre la seconda in base al valore selezionato, ma non riesco a capire come; nelle proprietà della maschera ho trovato solo l'opzione "Su clic" per selezionare l'apertura di un'altra maschera tramite macro, ma è generica, non in base al valore che ho scelto nella maschera precedente. Consigli? Grazie in anticipo, bye!
__________________
A+ Seenium; Corsair 650 TX V2 Bronze; Intel Core i5 2500k; ASRock Z68 Extreme3 Gen3; G.Skill Ripjaws-X F3-17000CL11D-8GBXL @2,13GHz; MSI N560GTX-Ti TwinFrozr II/OC; Crucial RealSSD M4 64GB; WD Caviar SE 320GB; Sony AD-7280S; Dell u2312hm; Logitech MX400 on LooneyTunes Mousepad HP Compaq nc8430-RH474ET-mod:Intel C2Duo T7200; 2x1GB DDR2 HP cert. @667MHz; ATi Mobility X1600 256MB; 15,4" 1680x1050; WD Scorpio 250GB; Windows 7 32bit Pro |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Credo sia più o meno l'argomento già trattato in questa discussione :
http://www.hwupgrade.it/forum/showthread.php?t=1834250 Vedi in particolare il mio intervento al post #4... |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2003
Città: Milano <--> Lecce
Messaggi: 511
|
Innanzitutto grazie mille per l'interessamento
Allora... dato che non ho molta dimestichezza con la sintassi del VB, non capisco a cosa si riferisca Form_M1 in: Form_M1.RecordSource = strSql e Form_M1.Requery Se non è il nome del pulsante "Imposta filtro" dell'utente cui hai risposto nell'altro thread (ho provato), a cosa si riferisce? Ehm... e poi, che tipo di pulsante occorre selezionare? Io ho optato per "Spostamento di record" -> "Trova record": è corretto? Vorrei in pratica visualizzare in una casella di riepilogo un valore in base ai 3 precedenti. Tra l'altro, i 3 campi di selezione (Campo1, Campo2 e Campo3 dell'altro utente) vorrei che si filtrassero man mano: cioè, scelgo dalla combobox un valore nel campo1, quindi nel campo2 scelgo un valore tra quelli disponibili dopo il filtraggio in base al campo precedente e così via... Puoi aiutarmi? Parto praticamente da zero e impararmi tutto il VB mi porterebbe parecchio tempo...
__________________
A+ Seenium; Corsair 650 TX V2 Bronze; Intel Core i5 2500k; ASRock Z68 Extreme3 Gen3; G.Skill Ripjaws-X F3-17000CL11D-8GBXL @2,13GHz; MSI N560GTX-Ti TwinFrozr II/OC; Crucial RealSSD M4 64GB; WD Caviar SE 320GB; Sony AD-7280S; Dell u2312hm; Logitech MX400 on LooneyTunes Mousepad HP Compaq nc8430-RH474ET-mod:Intel C2Duo T7200; 2x1GB DDR2 HP cert. @667MHz; ATi Mobility X1600 256MB; 15,4" 1680x1050; WD Scorpio 250GB; Windows 7 32bit Pro |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
E' molto più semplice. Una cosa del genere : 1. Carico la prima Combo ( campo1 ) : Codice:
Dim strSql As String
strSql = "SELECT Campo1 FROM T_nomeTabella"
cmb_campo1.LimitToList = True
cmb_campo1.RowSourceType = "Table/Query"
cmb_campo1.RowSource = strSql
cmb_campo1.SetFocus
cmb_campo1 = cmb_campo1.Column(0, 0)
Codice:
Private Sub cmb_campo1_Change()
Dim campo1 As String
cmb_campo1.SetFocus
campo1 = cmb_campo1.Text
Dim strSql As String
strSql = "SELECT Campo2 FROM T_nomeTabella WHERE Campo1=" & campo1
cmb_campo2.LimitToList = True
cmb_campo2.RowSourceType = "Table/Query"
cmb_campo2.RowSource = strSql
cmb_campo2.SetFocus
cmb_campo2 = cmb_campo2.Column(0, 0)
End Sub
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:07.



















