Establir la llista de valors d'un quadre combinat d'Access depenent del valor seleccionat en un altre quadre combinat
La relació entre les províncies i les seves poblacions són un exemple comú en el que basem la llista de poblacions d'un quadre combinat depenent de la província que haguem seleccionat en un altre quadre combinat.
Podem utilitzar aquest codi VBA en Access per establir la llista de valors d'un quadre combinat anomenat cboPoblacio d'acord amb el valor seleccionat en un altre quadre combinat anomenat cboProvincia.
Com que la llista de poblacions depèn de la província seleccionada, col·locarem el següent codi en l'event después de actualizar del quadre combinat cboProvincia per establir l'orígen de la fila ( RowSource ) del quadre combinat cboPoblacio, mitjançant una consulta SQL, en els valors que tinguin l'IdProvincia coincident.
Private Sub cboProvincia_AfterUpdate()
Me.cboPoblacio.RowSource = "SELECT tbl_Poblacions.IdPoblacio, tbl_Poblacions.NomPoblacio, tbl_Poblacions.IdProvincia FROM tbl_Poblacions WHERE tbl_Poblacions.IdProvincia=" & Me.cboProvincia.Value & " ORDER BY tbl_Poblacions.NomPoblacio;"
End Sub
Me.cboPoblacio.RowSource = "SELECT tbl_Poblacions.IdPoblacio, tbl_Poblacions.NomPoblacio, tbl_Poblacions.IdProvincia FROM tbl_Poblacions WHERE tbl_Poblacions.IdProvincia=" & Me.cboProvincia.Value & " ORDER BY tbl_Poblacions.NomPoblacio;"
End Sub
En el cas que el tipus de format del camp que relacionem en la instrucció WHERE fós de tipus text, i no numèric com en el nostre exemple, hauríem de posar entre cometes el valor del quadre combinat ja que si no ens donaria error.
Observa en el fragment de codi següent que hem col·locat entre comentes el valor Me.cboProvincia.Value ja que en aquest supòsit el camp IdProvincia l'hauríem definit com de tipus text en el disseny de les taules Provincies i Poblacions.
"WHERE tbl_Poblacions.IdProvincia=" & "'" & Me.cboProvincia.Value & "'" & " ORDER BY tbl_Poblacions.NomPoblacio;"
Aplicacions i usos en les empreses
Totes les ERP's, en alguns dels seus formularis ( Clients, Proveïdors etc.. ), fan servir aquesta tècnica, ja sigui per relacionar províncies amb poblacions, departaments amb subdepartaments, famílies amb subfamílies, etc... Un altre exemple d'aplicació el trobem a la pàgina web de correus quan cerquem codis postals. Observem que després de seleccionar la província BARCELONA només apareixen les POBLACIONS de Barcelona en el quadre combinat Localidad.
Comentaris
Publica un comentari a l'entrada