Creem un formulari i afegim dos CUADROS DE TEXTO. El quadre de texte porta una etiqueta i el propi quadre que és on apareixeran els valors.
El nombre del quadre de text on pintarem el total d'alumnes es diu "txtAlumnos".
El nombre del quadre de text on pintarem el total d'alumnes de Barcelona es diu "txtBarcelona"
Ara és el moment d'accedir a VB i escriure el codi:
Tot i que està comentat, la idea principal és la declaració d'un recordset rs) i una database (dbs)
Assignem la base activa (currentdb) a la base declarada [set dbs=CurrentDb]
Assignem al recordset una consulta [set rs = dbs.OpenRecordset("QryNumeroAlumnos")
Ens movem al primer (i únic) resultat de la consulta ja en el recordset [rs.MoveFirst]
Assignen el valor al quadre de text [Me!TxtAlumnos = rs![CuentadeApellido]
Atenció al Me! està indicant que el quadre de texte és "meu" des del punt de vista del informe.
Observa que CuentadeApellido és el nom del camp de la consulta
Fem el mateix pel altre quadre sols reassignant la consulta al recordset.
No es trivial que el Subprocediment es digui Report_Activate. Sols funcionarà amb aquest nom. No es que el posem per les bones. Es la combinació del objecte REPORT i el procediment ACTIVATE:
Finalment el codi escrit:
Option Compare DatabaseOption Explicit
'Es declara una variable pel recordset i una per la base de dades
Dim rs As Recordset, dbs As Database
Private Sub Report_Activate()
'S'assigna a la variable base de dades la base activa
Set dbs = CurrentDb
'S'obre el recordset pel objecte database des'del objecte (consulta) "QryNumeroAlumnos"
Set rs = dbs.OpenRecordset("QryNumeroAlumnos")
'Es situa en una posició del recordset
rs.MoveFirst
'Assignem al quadre de text el valor del recordset
Me!txtAlumnos = rs![CuentadeApellido]
Set rs = dbs.OpenRecordset("QryBarcelona")
'si sols hi ha un registre, aquest rs.MoveFirst no seria necessari
rs.MoveFirst
Me!txtBarcelona = rs![TotalBarcelona]
End Sub
End Sub
Cap comentari:
Publica un comentari a l'entrada