S'ha de reconeixer que -molt sovint- les millors explicacions es troben en les mateixes pàgines de Micfrosoft, com ara:
http://support.microsoft.com/kb/113919/es
Afegeixo el codi d'un mòdul amb un debug perquè es vegi el resultat
On també s'explica força bé és en el curs de Eduardo Olaz. Seguint les seves instruccions podem combinar funcions amb un procediment:
Tags:
Obtener ruta en Access VBA
Obtenir ruta en Access VBA
Get path in Access VBA
dimecres, 30 de maig del 2012
dilluns, 28 de maig del 2012
MNAC
El pla de la Boqueria de ACHILLE BATTISTUZZI, 1873
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=010486-000
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=010486-000
Fou exposada durant la Exposició Universal de Barcelona del 1888
El barret nou de FELIU ELIAS Cap a 1935
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=214993-000
El barret nou de FELIU ELIAS Cap a 1935
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=214993-000
Expulsat de la revista Cu-Cut i fonador de Papitu.Per alguns es proper al hiperrealisme.
Sobre Ron Mueck (autor hiperrealista) veiu http://www.centineladelsendero.com/2011/02/ron-mueck-y-el-hiperrealismo.html
Estudi de RAMON CASAS cap a 1893
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=004035-000
Figura femenina de SANTIAGO RUSIÑOL, 1894
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=065612-000
Estudi de RAMON CASAS cap a 1893
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=004035-000
Figura femenina de SANTIAGO RUSIÑOL, 1894
http://art.mnac.cat/fitxatecnica.html;jsessionid=a8f5c8096e7b97b118d72cc5c7b79677fe601037687703e8c188f4f4e090cbca?inventoryNumber=065612-000
diumenge, 27 de maig del 2012
Copiar fitxers en VBA
dissabte, 26 de maig del 2012
Canviar nom d'un fitxer des de VBA
divendres, 25 de maig del 2012
Cometes en Access VBA
L'objectiu es crear un bat que copii fitxers d'un directori en un altre.
En l'exemple volen copiar el que hagi a E:\pato rojo dins E:\pato verde
Per tant, volem crear una cadena amb aquest aspecte:
copy "E:\Pato rojo\*.*" "E:\Pato verde"
Partim d'una taula que conté els possibles origens i destins:
En el nostre cas crearem una consulta de creació de taula que escollirá l'opció 2:
En txt:
Option Compare
DatabaseOption Explicit
Private Sub cmdCreaDOS_Click()
Dim bicholandia As String
bicholandia = "SELECT ""copy " & """""""& ""E:\"" & [Ruta1] & ""\*.*""& """"""" & " " & """""""&""E:\"" & [Ruta2] & """""""" AS DOS2 INTO TblDOS2 FROM Bichos WHERE (((Bichos.id)=[indica el id]));"
DoCmd.RunSQL bicholandia
End Sub
Atenció a tot el que s'ha de fer per possar unes cometes dobles ("): 7 cometes seguides
& """""""&
En l'exemple volen copiar el que hagi a E:\pato rojo dins E:\pato verde
Per tant, volem crear una cadena amb aquest aspecte:
copy "E:\Pato rojo\*.*" "E:\Pato verde"
Partim d'una taula que conté els possibles origens i destins:
En el nostre cas crearem una consulta de creació de taula que escollirá l'opció 2:
En txt:
Option Compare
DatabaseOption Explicit
Private Sub cmdCreaDOS_Click()
Dim bicholandia As String
bicholandia = "SELECT ""copy " & """""""& ""E:\"" & [Ruta1] & ""\*.*""& """"""" & " " & """""""&""E:\"" & [Ruta2] & """""""" AS DOS2 INTO TblDOS2 FROM Bichos WHERE (((Bichos.id)=[indica el id]));"
DoCmd.RunSQL bicholandia
End Sub
Atenció a tot el que s'ha de fer per possar unes cometes dobles ("): 7 cometes seguides
& """""""&
diumenge, 20 de maig del 2012
Crucigramarius RNE No es un dia cualquiera 2012 05 20
La primera es entre sutil y redundante. Horizontales 1:
“Le disgusta porque da su apoyo a la oposición, de 9 letras”.
La segunda también juega con el régimen verbal, pero como disyuntiva. Horizontales 2:
“Vacío cercano a la soledad, o socializaos, de 7 letras”.
La tercera, que hoy es entre bucólica y pastoril. Horizontales 3:
“Cerros insuperables, de 5 letras”.
La cuarta hoy es sanísima. Horizontales 4:
"Tardanza en saber de qué fruta se trata, de 6 letras".
La primera pista para la vertical, que se forma en acróstico:
“Metí la pata en el ruedo”.
Una segunda pista para la solución que se forma en acróstico:
“Filtré, tamicé”.
Soluciones:
CONTRARIA
OQUEDAD
LOMAS
ESPERA
El jueu garrepa
http://www.torah.org/features/spirfocus/ClassicJewishTales.html#
THE MISER OF CRACOW
In the city of Cracow resided an elderly, wealthy Jew, Reb Shimon. His wealth was well known to the people of Cracow; just as well known, however, was his stinginess.
All the days of his life, he did not so much as give one coin to tzedakah. Thus his nickname: "Shimon the Miser."
One day, Reb Shimon passed away. The town's burial society decided to bury him in a disgraceful manner and lay him to rest on the outskirts of the cemetery, a place reserved for the lowly members of the town.
That Friday afternoon, the rabbi of Cracow, Rabbi Yom Tov Lipman Heller (author of "Tosafos Yom Tov"), sat in his home engaged in Torah study. Suddenly, he heard a faint knock at the door. "Come in," the rabbi called out. The door opened and in walked Reb Zalman, one of the poor men of Cracow. "Rebbe," said Reb Zalman, "could you please help me? This week, I don't have even one coin in order to buy food for Shabbos."
"What do you mean by, 'this week'?" asked Rabbi Heller. "What did you do until this week?"
"Until this week," answered Reb Zalman, "every Friday morning, I would find an envelope placed under my door containing the amount of money I need to buy food for Shabbos. Yet this morning, I checked under my door and there was no envelope! I am therefore left without any money to buy Shabbos food."
While they were conversing, there was another knock at the door. Another pauper walked in; he, too, came to ask for money for Shabbos. He was followed by another pauper and yet another.... They all had the same request: "Rabbi, please provide us with our Shabbos needs."
The wise rabbi deduced that the man who had passed away that week, an individual who everyone had thought to be a miser, was in reality a hidden tzaddik who had performed the mitzvah of tzedakah with utmost secrecy. Every week, Reb Shimon had apparently provided scores of Cracow's poor with the funds to acquire their Shabbos needs.
The rabbi made a public announcement: "I order the entire community to gather in the shul at once!"
The rabbi, wrapped in his tallis, ascended the podium, opened the ark, and declared, "We, the people of Cracow, are gathered here today in order to beg forgiveness from one of the tzaddikim that lived in our midst. His greatness went unnoticed by us; we denigrated him and called him, 'The Miser.'
"In the name of the entire community," cried the rabbi, "I hereby beg for total forgiveness from Reb Shimon, who was a righteous and holy Jew!"
Years later, when it came time for Rabbi Heller to depart to his Heavenly abode, he requested to be buried next to the tzaddik, Reb Shimon.
THE MISER OF CRACOW
In the city of Cracow resided an elderly, wealthy Jew, Reb Shimon. His wealth was well known to the people of Cracow; just as well known, however, was his stinginess.
All the days of his life, he did not so much as give one coin to tzedakah. Thus his nickname: "Shimon the Miser."
One day, Reb Shimon passed away. The town's burial society decided to bury him in a disgraceful manner and lay him to rest on the outskirts of the cemetery, a place reserved for the lowly members of the town.
That Friday afternoon, the rabbi of Cracow, Rabbi Yom Tov Lipman Heller (author of "Tosafos Yom Tov"), sat in his home engaged in Torah study. Suddenly, he heard a faint knock at the door. "Come in," the rabbi called out. The door opened and in walked Reb Zalman, one of the poor men of Cracow. "Rebbe," said Reb Zalman, "could you please help me? This week, I don't have even one coin in order to buy food for Shabbos."
"What do you mean by, 'this week'?" asked Rabbi Heller. "What did you do until this week?"
"Until this week," answered Reb Zalman, "every Friday morning, I would find an envelope placed under my door containing the amount of money I need to buy food for Shabbos. Yet this morning, I checked under my door and there was no envelope! I am therefore left without any money to buy Shabbos food."
While they were conversing, there was another knock at the door. Another pauper walked in; he, too, came to ask for money for Shabbos. He was followed by another pauper and yet another.... They all had the same request: "Rabbi, please provide us with our Shabbos needs."
The wise rabbi deduced that the man who had passed away that week, an individual who everyone had thought to be a miser, was in reality a hidden tzaddik who had performed the mitzvah of tzedakah with utmost secrecy. Every week, Reb Shimon had apparently provided scores of Cracow's poor with the funds to acquire their Shabbos needs.
The rabbi made a public announcement: "I order the entire community to gather in the shul at once!"
The rabbi, wrapped in his tallis, ascended the podium, opened the ark, and declared, "We, the people of Cracow, are gathered here today in order to beg forgiveness from one of the tzaddikim that lived in our midst. His greatness went unnoticed by us; we denigrated him and called him, 'The Miser.'
"In the name of the entire community," cried the rabbi, "I hereby beg for total forgiveness from Reb Shimon, who was a righteous and holy Jew!"
Years later, when it came time for Rabbi Heller to depart to his Heavenly abode, he requested to be buried next to the tzaddik, Reb Shimon.
Recordset (2)
Apliquem un programet molt ximple a un recorset que apunta a una taula. Simplement ha d'anar escribint el nom de municipi si la seva provincia és Alava (codi 01). El segon registre -Amurrio- ha estat modificat perquè digui que no és Alava. El mateix pel cinquè -Artziniega-
Si ens fixem en el resultat veiem
Alegría-Dulantzi OK
No és Alava OK ja que hem falsejat el codprov
Añana d'on surt?
Aramaio aquest deuria ser el tercer i és el quart
Armiñón un altre salt !!!
Arraia-Maeztu i aquest?
Alegría-Dulantzi Bé, s'ha acabat el programa i tornem al principi
Ara montarem una consulta que ordeni pel codi INE i farem que el recordset apunti a una consulta:
Bastant millor. En conseqüència, es d'imaginar que la taula té algun tipus d'ordre intern que no te res a veure amb com s'ordenen les dades per pantalla. En canvi, la consulta -que hem ordenat pel seu codi INE- es molt més operativa.
Si ens fixem en el resultat veiem
Alegría-Dulantzi OK
No és Alava OK ja que hem falsejat el codprov
Añana d'on surt?
Aramaio aquest deuria ser el tercer i és el quart
Armiñón un altre salt !!!
Arraia-Maeztu i aquest?
Alegría-Dulantzi Bé, s'ha acabat el programa i tornem al principi
Ara montarem una consulta que ordeni pel codi INE i farem que el recordset apunti a una consulta:
Bastant millor. En conseqüència, es d'imaginar que la taula té algun tipus d'ordre intern que no te res a veure amb com s'ordenen les dades per pantalla. En canvi, la consulta -que hem ordenat pel seu codi INE- es molt més operativa.
dissabte, 19 de maig del 2012
Jo, jo i jo, per Quim Monzó
Jo, jo i jo, per Quim Monzó
La Vanguardia 08 de Maig de 2012 pàgina 28
El món és ple de gent que et pregunta sobre tu
per interrompre't i dedicar-se a parlar d'ells
La Vanguardia en
català | 17/05/2012 -
00:00h
La setmana passada Josep Corbella informava en aquest diari d'una investigació feta per psicòlegs de la Universitat de Harvard, publicada a Proceedings. Segons aquests psicòlegs, queda finalment demostrat el que fins ara no era més que una hipòtesi: que "els humans estan tan disposats a revelar informació sobre si mateixos perquè els resulta intrínsecament gratificant". Aquesta demostració s'ha aconseguit gràcies a una sèrie d'experiments en els quals han participat més de dos centenars de persones. "S'ha registrat l'activitat cerebral dels voluntaris amb ressonància magnètica. S'ha comparat què passava al seu cervell quan pensaven en les seves pròpies creences, opinions i tests de personalitat i quan pensaven en els d'altres persones". El resultat és que quan pensaven en ells mateixos se'ls activaven les mateixes àrees que s'activen quan menges o quan et dediques al sexe, i quan pensaven en altres persones doncs no passava res d'important. A aquestes proves en van seguir unes altres en les quals els participants parlaven d'ells mateixos. L'activació de les zones que s'activen quan menges o et dediques al sexe es va repetir quan qui parlava d'ell mateix sabia que hi havia qui l'escoltava.
Això explica el comportament d'algunes persones. Fa molts anys vaig tenir una senyora de fer feines que era especialista -en un moment o altre de les hores que passava a casa- a preguntar-me pel meu fill: "I el teu fill, com està?". Jo començava a contestar: "Bé, ara estud...". No havia tingut temps d'acabar la tercera paraula de la resposta que ja m'havia tallat, per parlar-me de la seva néta: "Ui, doncs la meva Alexia està tremenda. És un dimoniet. Guaita si és entremaliada que l'altre dia, mentre el seu germà dinava, li va agafar el plat i el va tirar a terra! És molt intel·ligent. Fa dues setmanes...". Minuts i minuts de rellotge per parlar de la seva Alexia, que era el motiu real pel qual m'havia fet la pregunta trampa "I el teu fill, com està?". Com estigués el meu fill li importava un rave: el que de debò volia era parlar d'ella i del seu món, i el seu món d'aleshores eren les gracietes de la seva néta estimada. Des d'aquella vegada he anat veient que el món és ple de persones que et pregunten coses sobre tu per, sense que hagis tingut temps de pronunciar tres paraules de resposta, deixar-te anar un monòleg d'una hora al llarg del qual t'expliquen -amb pèls i senyals- les seves últimes visites al metge, les bones notes dels fills i tots i cada un dels problemes que tenen amb els contractes dels dependents de la botiga que regenten. Gràcies a Josep Corbella i als psicòlegs de Harvard, ara sé que el que els passa és que activen les mateixes àrees que activen quan es dediquen a menjar o al sexe, de manera que la pròxima vegada que em deixin anar un d'aquests monòlegs, quan acabin el rotllo trauré el paquet de tabac i els convidaré: "Què? Ja t'has escorregut prou? Vols un cigarret?"
La Vanguardia 08 de Maig de 2012 pàgina 28
Comunicar experiències pròpies activa els
mateixos circuits al cervell que el sexe i el menjar.
El plaer
de parlar d’un mateix.
JOSEP CORBELLA . Barcelona.
Parlar d’un mateix
activa els mateixos circuits de gratificació al cervell que el sexe i el menjar,
segons demostra una investigació que van presentar ahir psicòlegs de la
Universitat de Harvard (Estats Units).
“Els éssers humans
dediquen entre el 30% i el 40% del que parlen a informar altres persones de les
seves pròpies experiències subjectives”, escriuen els autors de la investigació
a la revista Proceedings, de l’Acadèmia Nacional de Ciències dels Estats Units,
on han presentat els seus resultats. En xarxes socials com Twitter, el
percentatge se situa per sobre del 80%. Aquesta propensió a compartir les
vivències pròpies ja es manifesta en nens de nou mesos, que intenten cridar l’atenció
dels adults sobre el que els sembla important.
Per comprendre
aquesta afició tan humana a comunicar les vivències pròpies a altres persones,
els investigadors Diana Tamir i Jason Mitchell han dissenyat una sèrie
d’experiments per als quals han reclutat més de 200 voluntaris. En un primer
experiment, s’ha registrat l’activitat cerebral dels voluntaris amb ressonància
magnètica. S’ha comparat què passava al seu cervell quan pensaven en les seves
pròpies creences, opinions i trets de personalitat i quan pensaven en els
d’altres persones.
Els resultats
mostren que, quan pensen en ells mateixos, se’ls activen el nucli accumbens i
l’àrea tegmental ventral al centre del cervell. Aquestes mateixes àrees
s’activen davant d’estímuls gratificants com el sexe i el menjar. Quan pensen
en els altres, en canvi, l’activitat en aquestes àrees del cervell és baixa.
En un segon
experiment, Tamir i Mitchell van demanar a un altre grup de voluntaris que hi
anessin acompanyats –per exemple, amb la parella o amb un amic–. Davant algunes
preguntes, els van dir que l’acompanyant sentiria les seves respostes. Davant
d’altres, no les sentiria ningú. De nou es va registrar la seva activitat
cerebral durant l’experiment. I de nou es va observar que parlar de si mateixos
els resultava més gratificant que parlar d’altres qüestions.
Però la gran
novetat d’aquest segon experiment va ser que, quan el voluntari sabia que el
seu acompanyant sentiria la resposta, l’activitat del nucli accumbens i l’àrea
tegmental ventral es disparava. En canvi, quan ningú no sentiria la resposta,
l’activitat en aquestes àrees no augmentava. “El valor de parlar d’un mateix té
dos orígens independents: la introspecció i la comunicació d’informació a
altres persones”, escriuen els investigadors a Proceedings.
A més de registrar
l’activitat cerebral dels participants en la investigació, Tamir i Mitchell van
dissenyar una segona sèrie d’experiments per avaluar la seva conducta. Els van
proposar un joc en què podien respondre preguntes sobre si mateixos, sobre
altres persones o sobre fets. I rebien una quantitat de diners segons la
pregunta que triaven en cada moment.
L’estratègia
d’avaluar comportaments amb recompenses s’ha utilitzat en investigacions
anteriors en les quals s’ha observat, per exemple, que els macacos poden
renunciar a xarrups de suc de fruites per veure congèneres d’estatus alt (una
cosa semblant a pagar per veure Madonna); o que els estudiants universitaris
estan disposats a renunciar a diners a canvi de poder mirar a persones
atractives del sexe oposat. En aquesta ocasió, s’ha observat que els voluntaris
triaven les preguntes d’una manera que els feia perdre el 17% dels seus guanys
a canvi de poder parlar de si mateixos. I, quan sabien que el seu acompanyant
sentiria les respostes, renunciaven fins i tot al 25% del premi.
Les dades que han
presentat Tamir i Mirchell no aclareixen si aquesta propensió a parlar d’un
mateix és igual entre homes i dones o si evoluciona amb l’edat. Tampoc no
expliquen per què aquesta conducta varia tant entre persones introvertides i
extravertides.
Però els resultats demostren que “els humans
estan tan disposats a revelar informació sobre si mateixos perquè els resulta
intrínsecament gratificant”, conclouen els investigadors a Proceedings. Tot i
que aquesta idea s’havia proposat abans com a hipòtesi, no s’havia demostrat
experimentalment mai fins ara.
El plaer de parlar
d’un mateix és beneficiós per diversos motius”, argumenten els psicòlegs de
Harvard. “Genera vincles i aliances entre persones; ajuda a obtenir coneixement
sobre un mateix; [...] multiplica el coneixement que cada persona pot adquirir
al llarg de la vida”. I és útil per a “l’extrema sociabilitat de la nostra espècie”.
Disclosing information about the
self is intrinsically rewarding
Edited by Michael S.
Gazzaniga, University of California, Santa Barbara, CA, and approved March 27,
2012 (received for review February 7, 2012)
ABSTRACT
Humans devote [dediquen] 30–40%
of speech output solely [unicament] to informing others of their own subjective
experiences. What drives this propensity for disclosure [divulgar]? Here, we
test recent theories that individuals place high subjective value on
opportunities to communicate their thoughts and feelings to others and that
doing so engages neural and cognitive mechanisms associated with reward. Five
studies provided support for this hypothesis. Self-disclosure was strongly
associated with increased activation in brain regions that form the mesolimbic
dopamine system, including the nucleus accumbens and ventral tegmental area.
Moreover, individuals were willing to forgo [renunciar a] money to disclose
about the self. Two additional studies demonstrated that these effects stemmed
from [es deuen a] the independent value that individuals placed on
self-referential thought and on simply sharing information with others. Together,
these findings suggest that the human tendency to convey [transmetre] information about personal
experience may arise [poden sorgir] from the intrinsic value associated with
self-disclosure.
Creació d'un informe en Access (2). VBA + gestió d'errors.
Objectiu: Crear un informe a partir dels resultats de 4 consultes que no existeixen en la base de dades.
Per tant, caldrà fer-ho amb VBA.
Partim de una BBDD anomenada IneIberia
Una de les seves taules es diu Municipios.
Un dels camps de Municipios és Nombre
Fem quatre consultes (que esborrarem al final) per saber els municipis que comencen per A,per K, per Ñ i per W.
Els resultat és:
A: 870
K: 4
Ñ: 0, però la consulta no ens retorna cap resultat.
W: 1
Per saber-ho hem creat les consultes
qryFreqA
qryFreqK
qryFreqÑ
qryFreqW
La FreqÑ ha estat creada amb "AgruparPor" i és la causa que no doni cap valor. Si haguessim fet servir "Dónde" ens haguessim estalviat molts problemes ja que ens haguès donat resultat "0", però ...
El primer que fem es crear el Informe amb Crear/Diseño de Informe.
Afegirem 4 "cuadros de texto".
Com queda explicat en "Creació d'un informe (1)" és molt important donar nom als objectes. En aquest cas:
txtA
txtK
txtÑ
txtW
Li donem nom un nom significatiu al informe. Es dirà infFreqNomMunicipis
Passem a "Ver código"
Com és habitual declarem el recordset i la base de dades dins General/Declaraciones
Passem a la combinació Objecte/Procediment Report/Activate
Assignem a la variable dbs la nostra base de dades:
Set dbs = Currentdb
Ara omplim el nostre recordset -des de la base ja assignada a la variable dbs- amb un mètode -Openrecordset- que obre la consulta qryFreqA
Set rs = dbs.OpenRecordset("qryFreqA")
Ens movem al primer i únic registre:
rs.movefirst
Ara, carreguem les dades del primer registre del recordset indicant el camp on són les dades
Me!txtA = rs![FreqA]
El primer recuadre ja està. Però la gràcia està en fer-ho sense que existeixi la consulta.
Ara guardarem el informe i anirem a la consulta entrant en mode SQL.
Copiem el texte del SQL, tanquem la consulta i tornem al informe en mode codi.
Al copiar-ho, com que està en diferents línies, ens donarà errors.
Deixem-ho en una única línia.
Cada vegada que eliminem un separador de línia ens donarà error. Aguantem fins al final i sembla que simplement hem deixat una línia però també amb error:
El problema el tenim en dos aspectes:
en les cometes. Arreglem-les tancant-les novament entre cometes
cal afegir-ho dins una variable
Com sempre, la estructura d'una variable string serà Alfa="x", es a dir, el valor que s'assigna entre cometes.
El recordset ja no ha d'anar a buscar la consulta (que ja deuriem haver esborrat). El recordset ara ha d'anar a buscar la variable.
Ja funciona el primer resultat. Anem fent el mateix amb els altres.
Hem deixat la càrrega del botó de la Ñ comentada perquè no s'executi. Els altres tres botons funcionen perfectament sense les consultes.
Si "descomentem" l'error farà que no funcioni res. Per tant ens cal gestionar els errors.
El mòdel seria aquest:
Set rs = dbs.OpenRecordset(VolumA)
On Error GoTo Zero
Me!txtA = rs![FreqA]
Sortir:
Exit Sub
Zero:
Me!txtA = "0"
Resume Sortir
En assegurem que al carregar Me!txtA no es pugui causar un error al no haver-hi res per escriure.
Aquesta prevenció, si hi ha error, farà que el programa salti a la línia Zero: (atenció als dos puntets) i tot seguit escrigui 0. Acabarà anant a la línia Sortir: que li farà sortir del procediment.
Atenció, hem dit sortir del procediment. Si sortim del procediment en el primer error que hagi s'acabarà el programa. La solució es fer un procediment per cada cas:
Private Sub CasoA()
Set rs = dbs.OpenRecordset(VolumA)
On Error GoTo Zero
Me!txtA = rs![FreqA]
Sortir:
Exit Sub
Zero:
Me!txtA = "0"
Resume Sortir
End Sub
Nota: Es més habitual trobar el On Error GoTo com a primera línia, es a dir:
Private Sub CasoA()
On Error GoTo Zero
Set rs = dbs.OpenRecordset(VolumA)
Me!txtA = rs![FreqA]
Sortir:
Exit Sub
Zero:
Me!txtA = "0"
Resume Sortir
End Sub
Per tant, el procediment final funcionant:
Per tant, caldrà fer-ho amb VBA.
Partim de una BBDD anomenada IneIberia
Una de les seves taules es diu Municipios.
Un dels camps de Municipios és Nombre
Fem quatre consultes (que esborrarem al final) per saber els municipis que comencen per A,per K, per Ñ i per W.
Els resultat és:
A: 870
K: 4
Ñ: 0, però la consulta no ens retorna cap resultat.
W: 1
Per saber-ho hem creat les consultes
qryFreqA
qryFreqK
qryFreqÑ
qryFreqW
La FreqÑ ha estat creada amb "AgruparPor" i és la causa que no doni cap valor. Si haguessim fet servir "Dónde" ens haguessim estalviat molts problemes ja que ens haguès donat resultat "0", però ...
El primer que fem es crear el Informe amb Crear/Diseño de Informe.
Afegirem 4 "cuadros de texto".
Com queda explicat en "Creació d'un informe (1)" és molt important donar nom als objectes. En aquest cas:
txtA
txtK
txtÑ
txtW
Li donem nom un nom significatiu al informe. Es dirà infFreqNomMunicipis
Passem a "Ver código"
Com és habitual declarem el recordset i la base de dades dins General/Declaraciones
Passem a la combinació Objecte/Procediment Report/Activate
Assignem a la variable dbs la nostra base de dades:
Set dbs = Currentdb
Ara omplim el nostre recordset -des de la base ja assignada a la variable dbs- amb un mètode -Openrecordset- que obre la consulta qryFreqA
Set rs = dbs.OpenRecordset("qryFreqA")
Ens movem al primer i únic registre:
rs.movefirst
Ara, carreguem les dades del primer registre del recordset indicant el camp on són les dades
Me!txtA = rs![FreqA]
El primer recuadre ja està. Però la gràcia està en fer-ho sense que existeixi la consulta.
Ara guardarem el informe i anirem a la consulta entrant en mode SQL.
Copiem el texte del SQL, tanquem la consulta i tornem al informe en mode codi.
Al copiar-ho, com que està en diferents línies, ens donarà errors.
Deixem-ho en una única línia.
Cada vegada que eliminem un separador de línia ens donarà error. Aguantem fins al final i sembla que simplement hem deixat una línia però també amb error:
El problema el tenim en dos aspectes:
en les cometes. Arreglem-les tancant-les novament entre cometes
cal afegir-ho dins una variable
Com sempre, la estructura d'una variable string serà Alfa="x", es a dir, el valor que s'assigna entre cometes.
El recordset ja no ha d'anar a buscar la consulta (que ja deuriem haver esborrat). El recordset ara ha d'anar a buscar la variable.
Ja funciona el primer resultat. Anem fent el mateix amb els altres.
Hem deixat la càrrega del botó de la Ñ comentada perquè no s'executi. Els altres tres botons funcionen perfectament sense les consultes.
Si "descomentem" l'error farà que no funcioni res. Per tant ens cal gestionar els errors.
El mòdel seria aquest:
Set rs = dbs.OpenRecordset(VolumA)
On Error GoTo Zero
Me!txtA = rs![FreqA]
Sortir:
Exit Sub
Zero:
Me!txtA = "0"
Resume Sortir
En assegurem que al carregar Me!txtA no es pugui causar un error al no haver-hi res per escriure.
Aquesta prevenció, si hi ha error, farà que el programa salti a la línia Zero: (atenció als dos puntets) i tot seguit escrigui 0. Acabarà anant a la línia Sortir: que li farà sortir del procediment.
Atenció, hem dit sortir del procediment. Si sortim del procediment en el primer error que hagi s'acabarà el programa. La solució es fer un procediment per cada cas:
Private Sub CasoA()
Set rs = dbs.OpenRecordset(VolumA)
On Error GoTo Zero
Me!txtA = rs![FreqA]
Sortir:
Exit Sub
Zero:
Me!txtA = "0"
Resume Sortir
End Sub
Nota: Es més habitual trobar el On Error GoTo com a primera línia, es a dir:
Private Sub CasoA()
On Error GoTo Zero
Set rs = dbs.OpenRecordset(VolumA)
Me!txtA = rs![FreqA]
Sortir:
Exit Sub
Zero:
Me!txtA = "0"
Resume Sortir
End Sub
Per tant, el procediment final funcionant:
dissabte, 12 de maig del 2012
Crucigramarius RNE No es un dia cualquiera 2012 05 13
Horizontales
La primera es muy animal El oso más colonial de 10 letras
La segunda también es animal pero me temo que mucho más humana. El instrumento musical que tenemos por todo el cuerpo de 6 letras
La tercera es un poco inquietante Unida como un grupo de militares con ansias de gobernar de 5 letras
La cuarta procede del ámbito económicoHechos de renta variable de 8 letras
Verticales
Puede ser de reclamaciones
Puede ser de almendro
http://www.rtve.es/radio/20120513/primeras-pistas-del-crucigramarius/357645.shtml
http://www.rtve.es/radio/20120513/segundas-pistas-del-crucigramarius/357649.shtml
SOLUCIONES
HORMIGUERO
ORGANO
JUNTA
ACCIONES
HOY ESTOCOLMO Acertantes: 2047
TAGS: Crucigramarius hoy Soluciones crucigramarius
La primera es muy animal El oso más colonial de 10 letras
La segunda también es animal pero me temo que mucho más humana. El instrumento musical que tenemos por todo el cuerpo de 6 letras
La tercera es un poco inquietante Unida como un grupo de militares con ansias de gobernar de 5 letras
La cuarta procede del ámbito económicoHechos de renta variable de 8 letras
Verticales
Puede ser de reclamaciones
Puede ser de almendro
http://www.rtve.es/radio/20120513/primeras-pistas-del-crucigramarius/357645.shtml
http://www.rtve.es/radio/20120513/segundas-pistas-del-crucigramarius/357649.shtml
SOLUCIONES
HORMIGUERO
ORGANO
JUNTA
ACCIONES
HOY ESTOCOLMO Acertantes: 2047
TAGS: Crucigramarius hoy Soluciones crucigramarius
dimarts, 8 de maig del 2012
El conde Lucanor de Don Juan Manuel
Austral Narrativa nº 21
Trigésimo sexta edición 15/XII/2008. Madrid
Edición y guía de lectura: María Jesús Lacarra320 páginas
Introducción
Bibliografía fundamental
Nota previa
Primer parte del libro: Anteprólogo + prólogo + 51 ejemplos
Segundo parte del libro: Razonamiento que faze don Juan por amor de don Jaime, señor de Xérica
Tercera parte del libro: Escusación de Patronio al conde Lucanor
Cuarta parte del libro: Razonamiento de Patronio al conde Lucanor
Quinta parte del libro.
Guía de lectura
Cuadro cronológico
Documentación complementaria
Taller de lectura
Glosario
Primera recomanació: no us limiteu als 51 exemples. La part cinquena és impressionant: d'una banda plantejaments originalíssims com ara la justificació del bateig front a la circumcissió en un curiós plantejament pseudo-feminista; un plantejament -per mi desconegut- del pecat original; un exemple que seria el 52é; les diferències entre els setmesins, els vuitmesins i la resta, etc.
A banda, la part cinquena, donant bastant la raó a Joaquín Gimeno Casalduero, es una mena d'alé d'aire fresc desprès de la complexitat progressiva dels llibres tercer i quart.
Cal també agrair a María Jesús Lacarra tant el pròleg, com la documentació complementària etc, que fan aprofitar infinitament més la lectura d'aquest clàssic.
I com a gran dubte, encara no entenc el final del llibre:
Et acabólo don Johan en Salmerón, lunes XII días de junio, era de mil et CCC et LXX et tres años.
és a dir, el 12 de juny de 1335... No ho entenc!!!
és a dir, el 12 de juny de 1335... No ho entenc!!!
@@@@@@@@@@@@@
Problema resolt:
La mateixa professora Maria Jesús Lacarra m'ha donat la solució:
Fins a finals del XIV es feia servir la Era Hispànica com a sistema de referència. Es a dir, es començava a comptabilitzar en 38 aC commemorant la pacificació d'Hispània per August. Per tant, la data de finalització és 1373 - 38 = 1335.
Altres casos famosos pel que fa a aquesta cronologia són la datació de El Cid:
"Per abbat le escriuio enel mes de mayo,
en era de mill y C.C. xL.v años." (1245-38 = 1207)
(per cert, Menéndez Pidal deia que un plegament fa que no es vegi una altra C i la data real sigui 1307 segons indica Miguel Garci-Gómez)
o la inscripció de la Tizona (l'espassa del Cid)
"IO SOI TIZONA Q FUE FECHA EN LA ERA DE MIL E QVARENTA" (1040-38 = 1002)
Fecha() i Fecha$() Error en la generació de la data
dilluns, 7 de maig del 2012
El ser humano podría vivir a base de cervezas y naranjas
Steve Huxley: "El ser humano podría vivir a base de cervezas y naranjas"
La Vanguardia 07/05/2012
Lorena Ferro
Este cervecero asegura que si esta bebida es buena no da resaca y retrasa la menopausia, previene la osteoporosis y ayuda a domir
http://www.lavanguardia.com/ocio/20120507/54288304254/steve-huxley-entrevista-cerveza.html#ixzz2WMdAMxao
La Vanguardia 07/05/2012
Lorena Ferro
Este cervecero asegura que si esta bebida es buena no da resaca y retrasa la menopausia, previene la osteoporosis y ayuda a domir
Para Steve Huxley la cerveza es “casi” una religión. Este profesor inglés (Liverpool, 1950) reconvertido a empresario cervecero se familiarizó precozmente con una bebida que, dice, era “el Dios” de los Celtas. Huxley, que ha escrito La cerveza… Poesia líquida. Un manual para cervesiáfilos (Trea) y ha participado en la Oxford Companion to Beer, defiende que la buena cerveza no da resaca y anima a hacerla en casa para ahorrar. Por eso, y aprovechando que todo lo que rodea a esta bebida cada vez genera más interés, pronto abrirá en la Cervecería Jazz, una Academia para enseñar a elaborar cerveza.
Dice que la cerveza tiene beneficios para la humanidad ¿En qué sentido?
Es buena para la salud, tanto física como mental o emocional. Es el lubricante social por excelencia. La cerveza te hace reír, te hace sociable. Es muy sana. Además, con la buena cerveza te puedes pasar y al día siguiente levantarte tan fresco como una flor de primavera. Pero con las industriales no es recomendable…
¿Quiere decir que con la artesanal se lleva mejor la resaca?
¡No hay resaca! Si haces la cerveza bien, con buenos materiales, no creas alcoholes superiores, que son los que provocan dolor de cabeza. Si la cerveza está bien hecha nunca, nunca, nunca tendrás resaca.
¿Ni aunque tomemos 15 botellas?
No. Antes tenía un local en el barrio de Gracia en el que hacía cerveza y cuando preparaba una nueva me usaba a mi mismo como conejo de indias. Bebí 15 pintas, que son ocho litros, en tres horas sin comer. Después me fui a dormir dos horas a ver qué pasaba. Y me levanté bien.
También dice que la cerveza da felicidad ¿Se puede explicar?
… ¡Es que cubre muchas necesidades de un ser humano! Es la única bebida alcohólica realmente importante nutritivamente. Se puede casi vivir tomando solo cerveza.
¡¿Sin comer?!
Sí. Una mujer de Nueva York me comentó que tiene un amigo que recientemente lo probó: durante un mes solo bebió buena cerveza. Y está fantástico.
Pero tampoco es recomendable…
Lo único que no tiene la cerveza es vitamina C. Entonces habría que tomar una naranja, patatas…
¡¿Me está diciendo que con cervezas y naranjas podríamos vivir?!
Sí. La cerveza es muy nutritiva. Tiene de todo: minerales, proteínas, mucha fibra…
¿Cualquier tipo de cerveza?
Las buenas son mejores pero hasta las muy normalitas industriales son bastante nutritivas. Y todas tienen antioxidantes. Si vas a beber algo bebe té o cerveza que tiene antioxidantes y te conservas mejor. Además, el lúpulo tiene efectos narcóticos y ayuda a dormir bien.
Parece que la cerveza lo tiene todo…
Sí, sí. Es buena para el cuerpo, mente y alma.
¿Cuántas toma al día?
En general bebo un litro de te por la mañana y durante el día tres litros de cerveza. Hace años que no bebo agua porque oxida.
Yo tomo dos cervezas y la aseguro que mi cabeza da vueltas.
Seguro que no has tomado en tu vida lo que yo llamaría cerveza. Las grandes industrias no hacen cerveza, hacen un refresco con alcohol, extractos, aditivos… Para mí no es cerveza. Bebo mucha cerveza mala porque si tengo sed y entro en un bar mis opciones para saciarla son muy reducidas.
¿Desde cuando toma cerveza?
Con 2-3 años bebía copitas en bodas y cosas así. Cuando los adultos bailaban yo cogía el vaso.
¿Y le gustaba el sabor siendo tan pequeño?
Me fascinaba. Veía que a los demás les gustaba mucho y pensaba que entonces era algo que tenía que ser muy especial. Además había cierto misterio porque en los pubs nunca podías ver qué había dentro y era un mundo mágico y prohibido. Y cualquier fruta prohibida es deseable.
¿Oficialmente cuando empezó a tomar cerveza?
En mi época podías ir al pub con 18 años pero si eras alto te podías colar antes. Cuando estaba en los Boy Scouts entré con 13 años en un club en el campo y al año siguiente empecé a beber en otro en la ciudad en un club al que no iba mi familia. Lo hacía a escondidas.
En casa sospechaban.
Con 14 años mi padre me llevó al pub… lo típico… Antes los padres actuaban así. Te enseñaban a beber. Hoy te lo prohíben y entonces los jóvenes cogen botellas de vodka baratas y beben en la calle.
¿Cuándo empezó a fabricar cerveza?
En 1968. Estuve en la universidad con una beca. Compartía una casa con amigos y queríamos hacer fiestas con el mínimo de dinero. Hice cantidades enormes de cerveza muy mala porque acababan de legalizarla, no había libros y era muy difícil encontrar materiales. Era malísima: muy alcohólica. Y las fiestas memorables.
¿Qué ingredientes son imprescindibles para hacer cerveza?
Hay cuatro. Malta, lúpulo, agua y levadura.
Para ser buena tiene que tener…
Los mejores ingredientes posibles. Ayuda mucho si tienes buen equipo, pero esto se puede improvisar. Hay que tener las ideas muy claras sobre lo que se va a hacer, no puede haber ningún error en el proceso. La cerveza es control, aunque no me guste esa palabra. Además hay que estar de buen humor porque a la cerveza le gusta el buen rollo. Así que si no estás de buen humor, déjalo para otro día o tómate un par de cervezas a ver si se mejora ese humor (risas).
¿Es fácil hacerla?
Sí. Este local va a ser dentro de unas semanas la Steve Beer’s Academy y la gente podrá venir a aprender a hacer cerveza en casa.
¿Cuánto dura un proceso artesanal sencillo?
En dos o tres semanas la podríamos tener. Si la haces bien, desde el grano, tardarás siete u ocho horas. Luego hay que ponerla a fermentar y, aunque depende del equipo con el que cuentes, lo más normal es poderla embotellar en dos semanas.
Usted usa mucha maquinaria ¿Hay alternativas más económicas?
Claro. ¡La cerveza no sabe cuánto has gastado en el equipo! Cuánto más gastas en eso más fácil es limpiarlo porque mucho del tiempo que se emplea en la elaboración de cerveza es para la limpieza. En casa se podría improvisar un equipo con una cazuela grande. Yo lo hacía así cuando llegué a España y con una tinaja con un agujero tapado de paja la filtraba. Y las cervezas me salían fantásticas.
¿Dónde se hace mejor la cerveza?
Antes la geografía era muy importante porque la gente no sabía tratar el agua y cada región hacía una cerveza que le salía bien según el contenido mineral del agua que tenía. Por ejemplo, en Londres y Múnich hacían cervezas negras porque tienen mucho carbonato en el agua. En cambio en Pilsen, Checoslovaquia, tienen cerveza muy pálida casi sin minerales disueltos en el agua. Había unos cincuenta o más estilos por todo el mundo atrapados primero en el agua, luego en el tipo de cebada que usaban para hacer la malta y luego en los tipos de lúpulo que tenían hace siglos. Pero en general hoy se puede hacer cualquier tipo de cerveza en cualquier punto del mundo si tienes acceso a los materiales y tratas el agua.
¿En España se hace buena cerveza?
Se están haciendo maravillas. Pero hace poco tiempo. Y modestia aparte, yo he tenido mucho que ver con esto (risas). Todos los que hacen cerveza tienen mi libro en la mesa.
¿Cuántas variedades de cerveza existen?
Hay más de cien estilos aceptados por la Copa del Mundo. Muchos de ellos antes eran subestilos, algunos son estilos históricos a los que se ha dado vida de nuevo y también hay inventos.
¿Por ejemplo?
Tengo un amigo cervecero de Escocia que dice que hay gente en América usando el método de Solera que se emplea para preparar los brandys. Hay gente que hace cervezas de frutas. Y es bastante habitual añadir granos de café o chocolate.
¿Los amantes de la cerveza admiten estas innovaciones?
Un cervecero serio admite lo que sea en la cerveza mientras se haya hecho por razones cerveceras, no económicas. En general no nos gusta el uso de arroz y maíz en la cerveza porque lo usan muchos grandes industriales para abaratar costes. Se puede poner lo que quiera pero pensando en las cervezas.
¿Cuál es la más rara que ha hecho usted?
Una que contenía jengibre y cilantro. Era fantástica.
¿La cerveza más común es la hecha de cebada?
Sí. El cereal más fácil para maltear es la cebada. La que nosotros hacemos está hecha de lo que yo considero la mejor malta de cebada del mundo. Viene de una variedad cervecera desarrollada en los años 60. La sacamos de una maltería en Inglaterra que usa los mismos métodos manuales que se usaban hace tres siglos.
Viéndolo a usted podemos decir que la cerveza no engorda…
Es un mito. Lo que pasa es que una buena cerveza te da apetito y si tomas unas patatas bravas con la cerveza esto sí que engorda.
Y dice que tomarla tiene beneficios para la salud.
Sí. Retrasa la menopausia y previene la osteoporosis. La cerveza tiene mucho silicio y esto incrementa la masa ósea. Si tomas cerveza, especialmente negra, olvida esto. Hoy no lo dicen los médicos porque no les dejan recomendar alcohol, pero antes en Inglaterra si una mujer había tenido problemas de anemia durante el embarazo o tenía antecedentes familiares de osteoporosis recetaban cerveza negra. Hay un estilo que se llama Milk Stout que tiene lactosa. Mi madre, a la que no le gusta la cerveza, la bebió cuando estaba embarazada de mí y de mi hermano y durante toda la lactancia. Tiene 84 años y está estupenda.
¿La cerveza es lo que más refresca?
No. Lo más refrescante es el té caliente. Lo segundo más refrescante es la cerveza de trigo alemana… tiene toques que recuerdan al plátano.
Por cierto ¿Qué opina de la cerveza sin alcohol?
… Hay tanto proceso para hacerla sin alcohol que es un producto muy industrial. Y tiene sabores desagradables por naturaleza porque no fermenta y entonces las moléculas desagradables no desaparecen... El que descubra una manera de hacer cerveza sin alcohol con un perfil agradable se va a hacer millonario.
http://www.lavanguardia.com/ocio/20120507/54288304254/steve-huxley-entrevista-cerveza.html#ixzz2WMdAMxao
dissabte, 5 de maig del 2012
Accedir a registres access amb VBA
Objectiu:
Donada una taula en Access, actualitzar un camp amb VBA. El que vull és que el camp PROVINCIA afegeixi al principi el dos dígits INE del codi provincial, es a dir:
Fins ara ho feia amb n consultes (en aquest cas 5 consultes) a les que accedia des de una macro. Era efectiu però una mica pessat montar les consultes i tenir-les donant voltes per la base. Total que ho volia fer des d'un formulari amb VBA.
Li he estat donant voltes i voltes, consultant manuals, veient videos,... no podia ser tan difícil. Semblava que calia establir una connexió, etc. Al final, gràcies a aquest video
http://www.youtube.com/watch?v=WZFBHQWZpQo
he trobat el sistema.
Fem la primera consulta d'actualització, per exemple la de Barcelona i ens guardem el codi SQL
(aquesta consulta l'eliminarem tan bon punt ens guardem el codi)
UPDATE Listado SET Listado.PROVINCIA = "08 " & [Listado]![PROVINCIA]WHERE (((Listado.PROVINCIA)="Barcelona"));
En el meu cas:
la taula es diu Listado
el camp on volem fer els canvis es diu PROVINCIA
el codi INE que volem afegir és 08
Creem un formulari i un botó. Farem les coses dignament. Al formulari li diem frmActualitzador i al botó cmdActProv
Al polsar generar evento escollim generador de código i entrem en VBA.
Al botó -fent bé les coses- li hem dit cmdActProv. Dins el seu evento clik declarem una variable tipus string i li anem a assignar la sentència SQL. De moment sols escrivim:
Prov = "
Al afegir-li el SQL quedarà fet un desastre per culpa de les cometes. Les arreglem:
Tal com queda al afegir el SQL:
Prov = "UPDATE Listado SET Listado.PROVINCIA = "08 " & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)="Barcelona"));
Ho arreglem així (atenció a les dobles cometes i a les cometes del final)
Prov = "UPDATE Listado SET Listado.PROVINCIA = ""08 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Barcelona""));"
Ara, simplement afegim
DoCmd.RunSQL Prov
Al executar el codi, sols ens canviarà Barcelona i, a banda, ens apareixerà un missatge d'advertència. Simplement afegirem una línia per evitar aquest missatge (DoCmd.SetWarnings False ) i afegirem les altres 4 línies necessaries. Per no liar-nos, canviarem Prov per Prov08, Prov37, etc.
Finalment ens quedarà:
Option Compare Database
Option Explicit
Private Sub cmdActProv_Click()
DoCmd.SetWarnings False
'08 Barcelona,27 Lugo,28 Madrid, 37 Salamanca, 48 Bizkaia
Dim Prov08$, Prov27$, Prov28$, Prov37$, Prov48$
Prov08 = "UPDATE Listado SET Listado.PROVINCIA = ""08 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Barcelona""));"
Prov27 = "UPDATE Listado SET Listado.PROVINCIA = ""27 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Lugo""));"
Prov28 = "UPDATE Listado SET Listado.PROVINCIA = ""28 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Madrid""));"
Prov37 = "UPDATE Listado SET Listado.PROVINCIA = ""37 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Salamanca""));"
Prov48 = "UPDATE Listado SET Listado.PROVINCIA = ""48 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Bizkaia""));"
DoCmd.RunSQL Prov08
DoCmd.RunSQL Prov27
DoCmd.RunSQL Prov28
DoCmd.RunSQL Prov37
DoCmd.RunSQL Prov48
End Sub
Donada una taula en Access, actualitzar un camp amb VBA. El que vull és que el camp PROVINCIA afegeixi al principi el dos dígits INE del codi provincial, es a dir:
Fins ara ho feia amb n consultes (en aquest cas 5 consultes) a les que accedia des de una macro. Era efectiu però una mica pessat montar les consultes i tenir-les donant voltes per la base. Total que ho volia fer des d'un formulari amb VBA.
Li he estat donant voltes i voltes, consultant manuals, veient videos,... no podia ser tan difícil. Semblava que calia establir una connexió, etc. Al final, gràcies a aquest video
http://www.youtube.com/watch?v=WZFBHQWZpQo
he trobat el sistema.
Fem la primera consulta d'actualització, per exemple la de Barcelona i ens guardem el codi SQL
(aquesta consulta l'eliminarem tan bon punt ens guardem el codi)
UPDATE Listado SET Listado.PROVINCIA = "08 " & [Listado]![PROVINCIA]WHERE (((Listado.PROVINCIA)="Barcelona"));
En el meu cas:
la taula es diu Listado
el camp on volem fer els canvis es diu PROVINCIA
el codi INE que volem afegir és 08
Creem un formulari i un botó. Farem les coses dignament. Al formulari li diem frmActualitzador i al botó cmdActProv
Al polsar generar evento escollim generador de código i entrem en VBA.
Al botó -fent bé les coses- li hem dit cmdActProv. Dins el seu evento clik declarem una variable tipus string i li anem a assignar la sentència SQL. De moment sols escrivim:
Prov = "
Al afegir-li el SQL quedarà fet un desastre per culpa de les cometes. Les arreglem:
Tal com queda al afegir el SQL:
Prov = "UPDATE Listado SET Listado.PROVINCIA = "08 " & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)="Barcelona"));
Ho arreglem així (atenció a les dobles cometes i a les cometes del final)
Prov = "UPDATE Listado SET Listado.PROVINCIA = ""08 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Barcelona""));"
Ara, simplement afegim
DoCmd.RunSQL Prov
Al executar el codi, sols ens canviarà Barcelona i, a banda, ens apareixerà un missatge d'advertència. Simplement afegirem una línia per evitar aquest missatge (DoCmd.SetWarnings False ) i afegirem les altres 4 línies necessaries. Per no liar-nos, canviarem Prov per Prov08, Prov37, etc.
Finalment ens quedarà:
Option Compare Database
Option Explicit
Private Sub cmdActProv_Click()
DoCmd.SetWarnings False
'08 Barcelona,27 Lugo,28 Madrid, 37 Salamanca, 48 Bizkaia
Dim Prov08$, Prov27$, Prov28$, Prov37$, Prov48$
Prov08 = "UPDATE Listado SET Listado.PROVINCIA = ""08 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Barcelona""));"
Prov27 = "UPDATE Listado SET Listado.PROVINCIA = ""27 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Lugo""));"
Prov28 = "UPDATE Listado SET Listado.PROVINCIA = ""28 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Madrid""));"
Prov37 = "UPDATE Listado SET Listado.PROVINCIA = ""37 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Salamanca""));"
Prov48 = "UPDATE Listado SET Listado.PROVINCIA = ""48 "" & [Listado]![PROVINCIA] WHERE (((Listado.PROVINCIA)=""Bizkaia""));"
DoCmd.RunSQL Prov08
DoCmd.RunSQL Prov27
DoCmd.RunSQL Prov28
DoCmd.RunSQL Prov37
DoCmd.RunSQL Prov48
End Sub
Sufixos de les variables
Al declarar les constants o variables no cal explicitar amb paraules el tipus. Podem fer servir els símbols reservats -sufixes-. Així en lloc de
dim Comentari as String
podem fer servir
dim Comentari$
Exemple:
Els sufixos són:
Text:
String $
Sencers
Integer % (-32.768 fins 32767)
Long & (-2.147.483.648 fins 2.147.483.647)
Amb decimals
Single !
Double #
Currency @
dim Comentari as String
podem fer servir
dim Comentari$
Exemple:
Els sufixos són:
Text:
String $
Sencers
Integer % (-32.768 fins 32767)
Long & (-2.147.483.648 fins 2.147.483.647)
Amb decimals
Single !
Double #
Currency @
Declaració de variable en el procediment
Es probable que et molesti fer servir els parèntesis al crear un procediment ja que te'ls pots oblidar. Però si estan és per alguna cosa.
En aquest exemple declarem la variable just dins el parèntesis, és a dir, de:
Public Sub Alfa( )
passem a
Public Sub Alfa (Comentari as String)
Ja hem creat la variable. Al executar el procediment dins la finestra inmediato li afegim el valor de la variable:
Alfa "El valor de pi és "
i el resultat, ja el pots veure.
També podem fer servir dos variables i dos arguments:
Atenció. Aquest exemple funciona però presenta un possible error.
Si fem servir:
Public Sub Alfa (Categoria, Comentari As String)
Categoria prendrà valor Variant. Si, el que voliem és que prenés un valor String ha de ser:
Public Sub Alfa (Categoria as String, Comentari As String)
o com veurem més endavant
Public Sub Alfa (Categoria$, Comentari$)
Codis INE 52 provincies espanyoles
Es troben a http://www.ine.es/daco/daco42/codmun/cod_provincia.htm però a vegades és pràctic tenir-les a ma. En aquest llistat s'afegit un zero a les primeres 9 provincies per tal de tenir-les totes amb dos dígits. Entre codi i provincia hi ha un tabulador.
Código Literal
01 Araba/Álava
02 Albacete
03 Alicante/Alacant
04 Almería
05 Ávila
06 Badajoz
07 Balears, Illes
08 Barcelona
09 Burgos
10 Cáceres
11 Cádiz
12 Castellón/Castelló
13 Ciudad Real
14 Córdoba
15 Coruña, A
16 Cuenca
17 Girona
18 Granada
19 Guadalajara
20 Gipuzkoa
21 Huelva
22 Huesca
23 Jaén
24 León
25 Lleida
26 Rioja, La
27 Lugo
28 Madrid
29 Málaga
30 Murcia
31 Navarra
32 Ourense
33 Asturias
34 Palencia
35 Palmas, Las
36 Pontevedra
37 Salamanca
38 Santa Cruz de Tenerife
39 Cantabria
40 Segovia
41 Sevilla
42 Soria
43 Tarragona
44 Teruel
45 Toledo
46 Valencia/Valéncia
47 Valladolid
48 Bizkaia
49 Zamora
50 Zaragoza
51 Ceuta
52 Melilla
divendres, 4 de maig del 2012
Ética a Nicómaco de Aristóteles
Títol original: Ἠθικὰ Νικομάχεια
Presentación de Teresa Martínez Manzano
Traducción y notas de Julio Pallí Bonet
Editorial Gredos. Madrid, 2010
Es considera una de les darreres obres d'Aristòtil, per la qual cosa la podriem datar entre la mort de Plató (347 aC) i la mort del propi Aristòtil al 322 aC. La datació, en bona part, es deu a un màxim distanciament d'Aristòtil respecte a Plató.
El llibre es dur i les temptacions per deixar-lo a mitjes són fortes. Els dos capítols sobre l'amistat (llibresVIII i IX) són els més agradables i propers al nostre llenguate actual. La resta, en general, és per aquells que tinguin uns coneixements de filosofia bastant considerables. Sort de les notes de Julio Pallí Bonet que, a banda d'aclaridores, són una font de dades molt interessant.
En resum, literalment es pot dir que paga la pena (sobre tot per lo de pena). Pot ser no arribes a captar la profunditat del pensament però sí que et dona pistes per replantejar moltes coses. A banda, com un quadre famós en un museu, veus sentències que has escoltat mil vegades (zoon politicon) o trobes plantejaments encara vigents (cobardia del suicida), etc.
Les següents notes estan referenciades a l'edició de Gredos indicant el llibre, la pàgina i el vers o el llibre, la pàgina i la nota de Julio Pallí.
I-35-10 "...puesto que el hombre es por naturaleza un ser social."
I-35-Nota 17: "Propiamente animal político (cf. Política I 2, 1253a2-3), es decir, hecho para vivir en una pólis, en una ciudad. El solitario es, para Aristóteles, un desgraciado."
III-75. Nota 56 "En la retórica griega y latina, la circunstancia es la situación concreta que caracteriza el caso singular. Los elementos de la situación, que constituyen la circunstancia, son siete: la persona, la cosa, el instrumento, el lugar, el tiempo, la manera y la causa.
III-90 Nota 61: "Según el testimonio de Estrabón en su Geografía (VII 2), los celtas, ante las mareas, dejaban sumergir sus casas en las olas para ejercitarse en la impasibilidad."
III-90/91 10: "Pero el morir por evitar la pobreza, el amor o algo doloroso, no es propio del valiente, sino, más bien, del cobarde; porque es blandura evitar lo penoso, y no sufre la muerte por ser noble, sino por evitar un mal."
IV-108 Nota 76: "El texto dice propiamente: "partir un grano de comino.". El comino se empleaba como condimento y era considerado un rasgo de avaricia partir un grano en dos (cf. Teofrasto, Caracteres X 13)."
IV-117-10: "Parece que es propio del magnánimo (tener) movimientos sosegados, y una voz grave, y una dicción reposada; pues el que se afana por pocas cosas no es apresurado, ni impetuoso aquel a quien nada parece grande; la voz aguda y la rapidez proceden de estas causas."
IV-120-15 "Los coléricos son excesivamente precipitados y se irritan contra todo y por cualquier motivo, de ahí su nombre."
V-159 Nota 17: "En Atenas, la mano del suicida se enterraba aparte del resto del cadaver (cf. ESQUINES, Contra Ctesifonte, 244)."
VI-163 Nota 21: "Sabido es que Aristóteles distingue cuatro causas, o sea, cuatro tipos de respuesta a la pregunta de por qué: causa formal, causa material, causa eficiente y causa final. En el terreno de la acción, actúan sólo las eficiente y la final.
VI-164-5: "Nada que haya ocurrido es objeto de elección, por ejemplo, nadie elige que Ilión haya sido saqueada; pero nadie delibera sobre lo pasado, sino sobre el futuro y posible, y lo pasado no puede no haber sucedido; por eso, rectamente dice Agatón:
De una cosa sólo Dios está privado:
de hacer que no se haya realizado lo que ya está hecho."
VI-166-Nota 125 "...Pero el encuentro de la noción de 'arte' y de la noción de 'bello' que ha dado nacimiento, entre nosotros, a las 'bellas artes' no se había producido todavía en la época de Aristóteles, y sólo le era lícito ver en el arte el 'oficio' que 'fabrica' o 'produce' algo, prescindiendo de toda consideración estética. (R.A: GAUTHIER-J. Y.JOLIF: L'Éthique à Nicomaque, Commentaire..., pág 456)"
VI-174/175 Nota 132: "Por silogismo entiende Aristóteles "un discurso en el que establecidas determinadas premisas resulta necesariamente de ellas, por ser lo que son, algo distinto de lo antes establecido (Analítica priora 24b18-20)."
VII-196-25: "En efecto, parece que la ira oye en parte la razón, pero la escucha mal, como los servidores apresurados, que, antes de oír todo loque se les dice, salen corriendo y, luego, cumplen mal la orden, y como los perros que ladran cuando oyen la puerta, antes de ver si es un amigo. Así, la ira oye, pero, a causa del acaloramiento y de su naturaleza precipitada, no escucha lo que se le ordena, y se lanza a la venganza. La razón, en efecto, o la imaginación le indican que se le hace un ultraje o un desprecio, y ella, como concluyendo que debe luchar contra esto, al punto se irrita."
VII-215 Nota 169: "...La inmovilidad, según Aristóteles, no es la cesación del movimieto, sino el mantenimiento constante de un equilibrio perfecto."
IX-245-30: "Pero, en la amistada amorosa, a veces, el amante se queja de que su exceso de amor no es correspondido (aunque puede suceder que no tenga nada de amable), mientras que el amado con frecuencia se lamenta de que el amante, que todo antes se lo prometía, ahora nada cumple."
IX-246 Nota 203: "Un caso parecido nos cuenta Plutarco del tirano Dionisio, el cual le prometió a un músico un talento, pero, al día siguiente, le dijo que ya le había pagado suficientemente por el placer de la anticipación (De Alexandri Magni fortuna II 1)."
IX-254-10: "Los malos buscan compañeros con quienes consumir los días e intentan escapar de sí mismos, porque, estando solos se acuerdan de muchas cosas desagradables y esperan otras de esta suerte, pero cuando están con otros se olvidan de ellas."
IX-254-25: "Parece, pues, que el malo no está dispuesto a amar ni siquiera a sí mismo, porque no tiene nada de amable. Por consiguiente, si el tener tal disposición es una gran desgracia, debemos hacer todo esfuerzo para evitar la maldad e intentar ser buenos, porque de esta manera no sólo uno puede tener disposiciones amistosas consigo mismo, sino también llegar a ser amigo de otro.
IX-256-Nota 211: "Pítaco fue elegido tirano de Mitilene, a principios del siglo VI a C. y, después de catorce años de gobierno, dimitió en contra de los deseos de los ciudadanos"
IX-257-Nota 213 [Euripo] "Estrecho entre Beocia y Eubea y cuyas corrientes cambian de dirección varias veces al día."
IX-263-15: "Quizá es también absurdo hacer del hombre dichoso un solitario, porque nadie, poseyendo todas las cosas, preferiría vivir solo, ya que el hombre es un ser social y dispuesto por la naturaleza a vivir con otros."
IX-267-30: "Porque ni diez hombres llegan a constituir una ciudad, ni persiste la ciudad si la aumentamos en cien mil."
Presentación de Teresa Martínez Manzano
Traducción y notas de Julio Pallí Bonet
Editorial Gredos. Madrid, 2010
Es considera una de les darreres obres d'Aristòtil, per la qual cosa la podriem datar entre la mort de Plató (347 aC) i la mort del propi Aristòtil al 322 aC. La datació, en bona part, es deu a un màxim distanciament d'Aristòtil respecte a Plató.
El llibre es dur i les temptacions per deixar-lo a mitjes són fortes. Els dos capítols sobre l'amistat (llibresVIII i IX) són els més agradables i propers al nostre llenguate actual. La resta, en general, és per aquells que tinguin uns coneixements de filosofia bastant considerables. Sort de les notes de Julio Pallí Bonet que, a banda d'aclaridores, són una font de dades molt interessant.
En resum, literalment es pot dir que paga la pena (sobre tot per lo de pena). Pot ser no arribes a captar la profunditat del pensament però sí que et dona pistes per replantejar moltes coses. A banda, com un quadre famós en un museu, veus sentències que has escoltat mil vegades (zoon politicon) o trobes plantejaments encara vigents (cobardia del suicida), etc.
Les següents notes estan referenciades a l'edició de Gredos indicant el llibre, la pàgina i el vers o el llibre, la pàgina i la nota de Julio Pallí.
I-35-10 "...puesto que el hombre es por naturaleza un ser social."
I-35-Nota 17: "Propiamente animal político (cf. Política I 2, 1253a2-3), es decir, hecho para vivir en una pólis, en una ciudad. El solitario es, para Aristóteles, un desgraciado."
III-75. Nota 56 "En la retórica griega y latina, la circunstancia es la situación concreta que caracteriza el caso singular. Los elementos de la situación, que constituyen la circunstancia, son siete: la persona, la cosa, el instrumento, el lugar, el tiempo, la manera y la causa.
III-90 Nota 61: "Según el testimonio de Estrabón en su Geografía (VII 2), los celtas, ante las mareas, dejaban sumergir sus casas en las olas para ejercitarse en la impasibilidad."
III-90/91 10: "Pero el morir por evitar la pobreza, el amor o algo doloroso, no es propio del valiente, sino, más bien, del cobarde; porque es blandura evitar lo penoso, y no sufre la muerte por ser noble, sino por evitar un mal."
IV-108 Nota 76: "El texto dice propiamente: "partir un grano de comino.". El comino se empleaba como condimento y era considerado un rasgo de avaricia partir un grano en dos (cf. Teofrasto, Caracteres X 13)."
IV-117-10: "Parece que es propio del magnánimo (tener) movimientos sosegados, y una voz grave, y una dicción reposada; pues el que se afana por pocas cosas no es apresurado, ni impetuoso aquel a quien nada parece grande; la voz aguda y la rapidez proceden de estas causas."
IV-120-15 "Los coléricos son excesivamente precipitados y se irritan contra todo y por cualquier motivo, de ahí su nombre."
V-159 Nota 17: "En Atenas, la mano del suicida se enterraba aparte del resto del cadaver (cf. ESQUINES, Contra Ctesifonte, 244)."
VI-163 Nota 21: "Sabido es que Aristóteles distingue cuatro causas, o sea, cuatro tipos de respuesta a la pregunta de por qué: causa formal, causa material, causa eficiente y causa final. En el terreno de la acción, actúan sólo las eficiente y la final.
VI-164-5: "Nada que haya ocurrido es objeto de elección, por ejemplo, nadie elige que Ilión haya sido saqueada; pero nadie delibera sobre lo pasado, sino sobre el futuro y posible, y lo pasado no puede no haber sucedido; por eso, rectamente dice Agatón:
De una cosa sólo Dios está privado:
de hacer que no se haya realizado lo que ya está hecho."
VI-166-Nota 125 "...Pero el encuentro de la noción de 'arte' y de la noción de 'bello' que ha dado nacimiento, entre nosotros, a las 'bellas artes' no se había producido todavía en la época de Aristóteles, y sólo le era lícito ver en el arte el 'oficio' que 'fabrica' o 'produce' algo, prescindiendo de toda consideración estética. (R.A: GAUTHIER-J. Y.JOLIF: L'Éthique à Nicomaque, Commentaire..., pág 456)"
VI-174/175 Nota 132: "Por silogismo entiende Aristóteles "un discurso en el que establecidas determinadas premisas resulta necesariamente de ellas, por ser lo que son, algo distinto de lo antes establecido (Analítica priora 24b18-20)."
VII-196-25: "En efecto, parece que la ira oye en parte la razón, pero la escucha mal, como los servidores apresurados, que, antes de oír todo loque se les dice, salen corriendo y, luego, cumplen mal la orden, y como los perros que ladran cuando oyen la puerta, antes de ver si es un amigo. Así, la ira oye, pero, a causa del acaloramiento y de su naturaleza precipitada, no escucha lo que se le ordena, y se lanza a la venganza. La razón, en efecto, o la imaginación le indican que se le hace un ultraje o un desprecio, y ella, como concluyendo que debe luchar contra esto, al punto se irrita."
VII-215 Nota 169: "...La inmovilidad, según Aristóteles, no es la cesación del movimieto, sino el mantenimiento constante de un equilibrio perfecto."
IX-245-30: "Pero, en la amistada amorosa, a veces, el amante se queja de que su exceso de amor no es correspondido (aunque puede suceder que no tenga nada de amable), mientras que el amado con frecuencia se lamenta de que el amante, que todo antes se lo prometía, ahora nada cumple."
IX-246 Nota 203: "Un caso parecido nos cuenta Plutarco del tirano Dionisio, el cual le prometió a un músico un talento, pero, al día siguiente, le dijo que ya le había pagado suficientemente por el placer de la anticipación (De Alexandri Magni fortuna II 1)."
IX-254-10: "Los malos buscan compañeros con quienes consumir los días e intentan escapar de sí mismos, porque, estando solos se acuerdan de muchas cosas desagradables y esperan otras de esta suerte, pero cuando están con otros se olvidan de ellas."
IX-254-25: "Parece, pues, que el malo no está dispuesto a amar ni siquiera a sí mismo, porque no tiene nada de amable. Por consiguiente, si el tener tal disposición es una gran desgracia, debemos hacer todo esfuerzo para evitar la maldad e intentar ser buenos, porque de esta manera no sólo uno puede tener disposiciones amistosas consigo mismo, sino también llegar a ser amigo de otro.
IX-256-Nota 211: "Pítaco fue elegido tirano de Mitilene, a principios del siglo VI a C. y, después de catorce años de gobierno, dimitió en contra de los deseos de los ciudadanos"
IX-257-Nota 213 [Euripo] "Estrecho entre Beocia y Eubea y cuyas corrientes cambian de dirección varias veces al día."
IX-263-15: "Quizá es también absurdo hacer del hombre dichoso un solitario, porque nadie, poseyendo todas las cosas, preferiría vivir solo, ya que el hombre es un ser social y dispuesto por la naturaleza a vivir con otros."
IX-267-30: "Porque ni diez hombres llegan a constituir una ciudad, ni persiste la ciudad si la aumentamos en cien mil."
Crucigramarius RNE No es un dia cualquiera 2012 05 06
La primera es fluvial.
Horizontales 1: “Las orillas menos falsas, de 5 letras”.
La segunda, en cambio, es más urbana.
Horizontales 2: “Ocupo la salida de vehículos y casi la invalido, de 6 letras”.
Añadamos ahora la tercera, más ruidosa.
Horizontales 3: “Gritos de mando por activa y por pasiva, de 5 letras”.
La cuarta viene del ámbito económico:
Horizontales 4: "Cobro un precio al mes según el peso de mi inquilino, de 7 letras"
VERTICALES
“Pronta a respirar”
“Grito victorioso”
SOLUCIONES:
VERAS
INVADO
VOCES
ALQUILO
Links
http://www.rtve.es/radio/20120506/primeras-pistas-del-crucigramarius/357645.shtml
http://www.rtve.es/radio/20120506/segundas-pistas-del-crucigramarius/357649.shtml
http://www.rtve.es/radio/20120506/terceras-pistas-del-crucigramarius/357650.shtml
HOY DUSSELDORF
2364 participantes
2247 acertantes
Horizontales 1: “Las orillas menos falsas, de 5 letras”.
La segunda, en cambio, es más urbana.
Horizontales 2: “Ocupo la salida de vehículos y casi la invalido, de 6 letras”.
Añadamos ahora la tercera, más ruidosa.
Horizontales 3: “Gritos de mando por activa y por pasiva, de 5 letras”.
La cuarta viene del ámbito económico:
Horizontales 4: "Cobro un precio al mes según el peso de mi inquilino, de 7 letras"
VERTICALES
“Pronta a respirar”
“Grito victorioso”
SOLUCIONES:
VERAS
INVADO
VOCES
ALQUILO
Links
http://www.rtve.es/radio/20120506/primeras-pistas-del-crucigramarius/357645.shtml
http://www.rtve.es/radio/20120506/segundas-pistas-del-crucigramarius/357649.shtml
http://www.rtve.es/radio/20120506/terceras-pistas-del-crucigramarius/357650.shtml
HOY DUSSELDORF
2364 participantes
2247 acertantes
dimecres, 2 de maig del 2012
Declaració pública de constants i variables
dimarts, 1 de maig del 2012
Creació d'un informe en Access
Farem un informe molt simple partint d'una taula i dues consultes. L'informe ens pintarà els valors que ens presentaran les dues consultes.
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
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
Subscriure's a:
Missatges (Atom)