dijous, 20 de gener del 2011

Informes en Access amb VBA

Es tracta de fer un informe que reflecteixi el resultat de dues consultes a partir d'un taula:


Pas 1) Creem les dues consultes:
Consulta que comptabilitza els cognoms: Simplement agrupem i fem servir la opció cuenta. El camp es diu, directament, CuentaDeApellido. La consulta es diu QryNumeroAlumnos

Consulta que comptabilitza els alumnes de Barcelona. S'ha modificat el nom del camp que ara es diu TotalBarcelona. La consulta es diu QryBarcelona

Pas 2) Creem l'informe. Les txtbox es diuen, respectivament, txtAlumnos y txtBarcelona
Finalment apliquem el codi que conté un recordset. Atenció: Report Activate

Per si no es veu bé:

Option Compare Database
Option Explicit
Dim rs As Recordset, dbs As Database

Private Sub Report_Activate()

'Es declara una variable pel recordset i una per la base de dades

'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
Me!txtAlumnos = rs![CuentadeApellido]

Set rs = dbs.OpenRecordset("QryBarcelona")

'rs.MoveFirst
Me!txtBarcelona = rs![TotalBarcelona]

End Sub

dimecres, 12 de gener del 2011

Modificar un text amb EDG de MicroStation

Si volem modificar, per exemple, un element de text 02299 a 022991 és tan simple com:

EdG> set search /char="02299"
EdG> MODIFY CHAR="022991" TOP TO END

Ja està. L'ajuda parla de modify character=substitute i no se quins rollos més. Però es tan fàcil com això.

Si ho volem fer per bastants fitxers, sols cal obrir un edg (amb un fitxer qualsevol) i des d'alli invocar a un txt amb un contingut similar a aquest:

edg c:\barcelona\Alfag.dgn
set search /char="002"
modify char="0021" top to end
edg c:\barcelona\Betag.dgn
set search /char="004"
modify char="0041" top to end
edg c:\barcelona\Betag.dgn
set search /char="006"
modify char="0061" top to end
edg c:\barcelona\Gammag.dgn
set search /char="007"
modify char="0071" top to end
edg c:\barcelona\Gammag.dgn
set search /char="00793"
modify char="007931" top to end
edg c:\barcelona\Deltag.dgn
set search /char="00798"
modify char="007981" top to end
exit


Si aquest fitxer, es digués, per exemple, "CanviarCodis.txt", i estigues ubicat a c:\temp, des del EDG obert ho invocariem amb l'arroba:

Edg> @c:\Temp\CanviarCodis.txt

Atenció que no cal possar cap cometa ni res semblant...

Precaució: Cal tenir present que canviarà TOTS els txt que coincideixin amb la cadena solicitada. Es a dir, no podem modificar sols el primer text que aparegui..

Tags:
EDG
MICROSTATION
MODIFY CHARACTERS
SUBSTITUTE
Cambiar una cadena de texto con edg
How to change a string with edg