dissabte, 19 d’abril del 2014

Eliminar una taula si existeix en VBA

Com ja és habitual, comences a buscar solucions per una cosa que ha de ser força freqüent i et trobes un munt de solucions complexes. Pot ser d'aquí a un temps canviaré la meva opinió però, de moment, si veig una solució simple no veig perquè complicar-me la vida.

En aquest cas vull eliminar la taula EstadosX sols si existeix i que no passi res si no existeix.
Faig un botó, en aquest cas Comando197 i a l'event click l'asocio aquest codi:

Private Sub Comando197_Click()

    On Error GoTo BorraTaules_Err

        If CurrentDb.TableDefs("EstadosX").Name = "EstadosX" Then
           CurrentDb.TableDefs.Delete "EstadosX"
        End If

BorraTaules_Exit:
    Exit Sub

BorraTaules_Err:
    Resume BorraTaules_Exit

End Sub

No hi ha segona part en el if perquè no és resol. Si no existeix dona error. Per tant, ho gestionem amb un error. Si vols, per comprovar-ho, pots possar un debug.print sota BorraTaules_Err: Veuràs que en cas de no existència, el codi s'en va cap a aquest subprocediment.

Tags:
Eliminate table if exists
Eliminar una tabla si existe
Comprobar que una tabla existe
Comprovació que una taula existeix
Verify if a table exists and delete

Basat en:
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/microsoft-access/respuestas/900406/macro-condicion

divendres, 18 d’abril del 2014

ESTÉTICA EN EL TRANVIA de José Ortega y Gasset

Dins El Espectador 1, en la col·lecció El Arquero

ESTÉTICA EN EL TRANVÍA (1916)

  Pedir a un español que al entrar en el tranvía renuncie a dirigir una mirada de especialista sobre las mujeres que en él van, es demandar lo imposible. Se trata de uno de los hábitos más arraigados y característicos de nuestro pueblo. A los extranjeros y a algunos compatriotas les parece incorrecto ese modo insistente y casi táctil con que mira el español a la mujer. Yo soy uno de estos: me produce una gran repugnancia. Y, sin embargo, creo que esa costumbre, suprimida la insistencia, la petulancia y la tactilidad visual, es uno de los rasgos más originales, bellos y generosos de nuestra raza. Como con otras manifestaciones de la espontaneidad española acontece con ésta; tal y como se presentan, impolutas, toscas, mezcladas lo puro y lo torpe, ofrecen un aspecto de barbarie. Mas si se las depura, libertando lo exquisito de lo grosero y potenciando su germen noble, podrían constituir un sistema de ademanes originalísimos y digno de competir con aquellos estilos de movimiento que se han llamado gentleman u homme de bonne compagnie. Los artistas, los poetas, los hombres de mundo son los encargados de someter el material bruto de esos hábitos multiseculares a la química de depuraciones reflexivas. Velázquez hizo eso, y estad seguros de que en la admiración de otras naciones por su obra influye no poco la acertada estilización en que cendró el gesto español. Hermann Cohen me decía que aprovechaba siempre sus estancias en París para ir a la sinagoga con objeto de contemplar los ademanes de los judíos oriundos de España.

  Pero no es ahora mi propósito descubrir el sentido noble que pueda ocultarse tras de las atroces miradas del español a la mujer. El asunto sería interesante; al menos para  El Espectador, que ha vivido varios años bajo el influjo de Platón, maestro de la ciencia de mirar. Mas al presente es otra mi intención. Hoy he tomado el tranvía, y como nada español juzgo ajeno a mí, he ejercitado esa mirada de especialista arriba dicho. He procurado desembarazarla de insistencia, petulancia y tactilidad. Y me ha causado gran sorpresa advertir que no han sido menester tres segundos para que las ocho o nueve damas inclusas en el vehículo quedasen filiadas estéticamente y sobre ellas recayese firme sentencia. Esta es muy hermosa; aquélla, incorrecta; la de más allá, resueltamente fea, etc., etc. El lenguaje no posee términos suficientes para expresar los matices de ese juicio estético que en el raudo vuelo de una mirada se cumple y se dispara.

  Como el trayecto era largo y, con muy buen acuerdo, ninguna de aquellas damas me concedía un porvenir sentimental, hube de recogerme a la meditación sin otra presa que mi propia mirada y sus automáticas sentencias.

  ¿En qué consiste -me preguntaba yo- este fenómeno psicológico que podríamos denominar cálculo de la belleza femenina? Yo no ambiciono saber ahora qué mecanismo secreto de la conciencia causa y regula ese acto de valoración estética. Me contento con describir aquello de que nos damos clara cuenta cuando la realizamos.

  La antigua psicología supone que el individuo posee un previo ideal de belleza, en este caso, un ideal de rostro femenino, el cual aplica sobre el semblante real que está mirando. El juicio estético consistiría simplemente en la percepción de la coincidencia o discrepancia entre uno y otro. Esta teoría, procedente de la metafísica platónica, se ha inveterado en la estética y vierte en ella su originario error. El ideal, como la idea en Platón, viene a ser una unidad de medida, preexistente y aparte de las realidades, con la cual medimos estas.

   Semejante teoría es una construcción, una invención oriunda del genial afán helénico tras la unidad. Pues el Dios de Grecia habría que buscarlo no en el Olimpo -especie de château donde hace vida regocijada una sociedad de personas distinguidas-, sino en ese pensamiento de lo uno. Lo uno es lo único que es. Las cosas blancas son blancas, y las mujeres, bellas, no cada una de por sí y en su peculiaridad, mas en virtud de su mayor o menor participación en la blancura única y en la única mujer bella. Plotino, en quien este unitarismo llega a la exacerbación, va a acumular expresiones que nos insinúen la trágica sed de la unidad latiendo en las cosas. Σπεύδειν ργεσθαι πρς τ ν -se apresuran, tienden hacia, anhelan la unidad. Su ser, llega a decir, es sólo τ ἴχνoς τοῠ ἑνὁς, la huella de la unidad. Sienten un celo como afrodítico hacia lo uno. Nuestro Fray Luis, que platoniza y plotiniza desde su áspera celda, halla la frase más feliz: la unidad es «el pío universal de las cosas».

  Pero todo esto, repito, es construcción. No hay un modelo único y general al que imiten las cosas reales. ¡Qué he de aplicar yo sobre los rostros de estas damas un previo esquema de femenina belleza! Esto sería una falta de galantería y además no es verdad. Lejos de saber cuál sea la belleza suma en la mujer, el hombre la busca perpetuamente desde su mocedad hasta su decrepitud. ¡Oh, si la conociéramos de antemano!
   Si la conociésemos de antemano perdería la vida uno de sus mejores resortes y buena parte de su dramatismo. Cada mujer que por vez primera vemos suscita en nosotros la suprema esperanza de que es ella acaso la más bella. Y en este juego de esperanzas y desencantos que dilatan y contraen nuestro corazón, la vida corre presurosa por una campiña quebrada y amena. En el capítulo sobre el ruiseñor, cuenta Buffon de una de estas avecillas que llegó a la edad de catorce años merced a no haber tenido ocasión de amar. «Está visto –agrega- que el amor acorta los días; pero la verdad es que, en cambio, los llena.»

   Prosigamos nuestro análisis. Puesto que no hallo en mí ese arquetipo y modelo único de belleza femenina, me ocurre suponer -como también les ha ocurrido alguna vez a los estéticos- si, al menos, existirá una pluralidad de ellos, tipos varios de perfección corpórea: la perfecta morena y la rubia ideal, la ingenua y la nostálgica, etc.

  Al punto advertimos que este supuesto no hace sino multiplicar las dificultades del anterior. En primer lugar, yo no me doy cuenta de poseer esa galería de ejemplares rostros ni acierto a sospechar dónde podría haberla adquirido. En segundo lugar, dentro de cada tipo hallo un margen ilimitado de posibles bellezas diferentes. Habría, pues, que multiplicar los tipos ideales tanto, que perderían su carácter de género, y siendo innúmeros como los mismos rostros individuales se aniquilaría el propósito de esta teoría, que consiste también en hacer de lo uno y general norma y prototipo para la valoración de lo singular y vario.

   No obstante, algo nos interesa subrayar en esta doctrina que dispersa el modelo único en una pluralidad de modelos ejemplares típicos. Pues ¿qué es lo que ha invitado a esa dispersión? Sin duda, la advertencia de que, en realidad, cuando calculamos la belleza femenina, no partimos del esquema único ideal para someterle la fisonomía concreta, sin otorgar a ésta voz ni voto en el proceso estético. Al contrario: partimos del rostro que vemos y él, por sí mismo, según esta teoría, selecciona entre nuestros modelos el que ha de aplicársele. De esta suerte, la realidad individual colabora con nuestro juicio de perfección y no permanece, como antes, totalmente pasiva.

  He aquí una advertencia exacta, en mi entender, que refleja un fenómeno efectivo de mi conciencia y no es una construcción hipotética. Sí: mi talante al mirar esta mujer es por completo distinto del que usaría un juez presuroso de aplicar el Código preestablecido, la ley convenida. Yo no conozco la ley; al contrario, la busco en la faz transeúnte. Mi mirada lleva el carácter de una absoluta experiencia. Del rostro que ante mi veo quisiera aprender, conocer qué es hermosura. Cada individualidad femenina me promete una belleza ignorada, novísima; la emoción que empuja mis ojos es la de quien espera un descubrimiento, una revelación subitánea.

  La expresión más exacta de la tesitura en que nos hallamos, cuando, por vez primera, miramos a una mujer, sería esta que parece sólo un frívolo giro galante: «Toda mujer es guapa mientras no se demuestre lo contrario». Y aun cabría añadir: de una belleza que no hemos previsto.


    Verdad es que en ocasiones las promesas no se cumplen. Recuerdo a ese propósito una anécdota del hampa periodística madrileña. Cuéntase de un crítico de teatro, muerto hace no pocos años, que padecía la debilidad de repartir las alabanzas y las censuras según un régimen financiero. Llegó un tenor que al día siguiente había de debutar en el Teatro Real. El menesteroso crítico se apresuró a visitarle. Le habló de los muchos hijos y de las pocas rentas: quedó cerrado el trato en mil pesetas. La jornada del début comenzó sin que el crítico recibiese la cantidad convenida. Empezó la función y el dinero no llegaba; pasó un acto, y otro y todos, y cuando en la redacción se puso a escribir el crítico, aún no había llegado el emolumento. A la mañana siguiente el periódico insertaba la revista de la ópera; en ella no se hablaba del tenor ni una palabra hasta la postrera línea, donde se leía: «Olvidábamos decir que debutó el tenor X: es un artista que promete; veremos si cumple».

    A veces, pues, la promesa de belleza no se cumple. Así, me ha bastado mirar un instante a aquella señora que está en el fondo del tranvía para juzgarla fea. Descompongamos en sus elementos este acto de adversa sentencia. Para ello debemos repetirlo más despacio; así la reflexión puede sorprender a nuestra conciencia espontánea en los estadios sucesivos de su actividad.

   Y noto lo siguiente: la mirada se fija primero en el rostro entero, en el conjunto y parece tomar una orientación; luego elige una facción, la frente acaso, y se desliza por ella. La línea es suavemente curva y mi espíritu la sigue como placentero, sin enojo ni interna disconformidad.

   La frase que describe más certeramente mi estado de ánimo en este momento sería: ¡Esto va bien! Mas de pronto, al poner mi vista su etéreo pie en la nariz, percibo como una dificultad, vacilación o estorbo. Algo análogo a lo que experimentamos en un bivio, donde nacen dos caminos. La trayectoria de la frente parece -no sé bien por qué- como si exigiera ser continuada en una línea de nariz distinta de la real. Pero ésta impone otra trayectoria a mi mirada. Sí, no hay duda: yo veo dos líneas, una sutil y como espectral sobre la nariz de carne, que es, digámoslo con franqueza, algo roma. Entonces, ante esa dualidad, la conciencia sufre un pietinement sur place: vacila, oscila y en ese titubeo mide la distancia entre aquella facción que debía ser y la que es.

   No se trata, sin embargo, de que renovemos ahora, facción por facción, lo que con respecto al semblante total habíamos desestimado. No hay un modo ideal de nariz, de boca, de mejilla. Si se analizan los hechos advertiremos que toda facción fea (no monstruosa) (*) puede parecernos bella en otro conjunto.

   La realidad es que nosotros, a la par que advertimos el defecto, sabríamos corregirlo. Tendemos unas líneas incorpóreas que aquí agregan un poco de forma; allá, en cambio suprimen y amputan algo de las existentes. Líneas incorpóreas, digo, y esto no es una metáfora. Nuestra conciencia las traza al mirar constantemente donde no las halla corpóreas. Sabido es que no podemos mirar en la noche las estrellas imparcialmente, sino que destacamos unas u otras del encendido enjambre. Destacarlas es ya poner en una relación más intensa ciertas estrellas entre sí; para esto tendemos de una a otra como hilos de una araña sideral. Los puntos incandescentes quedan por ellos ligados y constituyendo una forma incorpórea. Este es el origen psicológico de las constelaciones perpetuamente, cuando la noche pura hace palpitar su azulada tiniebla, los ojos del hombre pagano se levantan y ven que Sagitario dispara, Casiopea se irrita, la Virgen aguarda y Orión opone al Toro su escudo de diamantes.

   De la propia suerte que el grupo de puntos estelares se organiza en constelación, el rostro real que vemos de la emanación de un ideal perfil, más o menos coincidente con él. En un mismo movimiento de nuestra conciencia surge la percepción del ser corpóreo y la sospecha de su ideal perfección.

   Venimos, pues, al convencimiento de que el modelo no es uno para todos, ni siquiera típico. Cada fisonomía suscita, como en mística fosforescencia, su propio, único, exclusivo ideal. Cuando Rafael dice que él pinta no lo que ve, sino una certa idea que mi vieni in mente, no se entienda la idea platónica que excluye la diversidad inagotable y multiforme de lo real. No; cada cosa al nacer trae su intransferible ideal.

   De esta manera abrimos a la Estética las puertas de su prisión académica y la invitamos a que recorra las riquezas del mundo.

                                       Laudata sii, Diversitá
                                     delle creature, sirena
                                     del mondo.

   He aquí como yo, desde este humilde tranvía que rueda hacia Fuencarral, envío una objeción al radiante jardín de Academos.

   Amor, me mueve, que me hace hablar... Amor a la multiplicidad de la vida, que a veces los mejores, contra su voluntad, han contribuido a empequeñecer. Porque de la misma manera que hicieron los griegos del ser lo único y de la belleza una norma o modelo general, va a encontrar Kant la bondad, la perfección moral en un imperativo genérico y abstracto.

  No, no; el deber no es único y genérico. Cada cual traemos el nuestro inalienable y exclusivo. Para regir mi conducta Kant me ofrece un criterio: que quiera siempre lo que otro cualquier puede querer. Pero esto vacía el ideal, lo convierte en un mascarón jurídico y en una careta de facciones mostrencas. Yo no puedo querer plenamente sino lo que en mí brota como apetencia de toda mi individual persona.
  
  El cálculo de la belleza femenina, una vez analizado, sirve de clave para todos los demás reinos de la valoración. Como en belleza, así en ética.

   Veíamos antes que el rostro individual es a la vez proyecto de sí mismo y realización más o menos completa. Así en la moralidad yo creo ver todo hombre que ante mi pasa como inscrito en una silueta moral de sí mismo: ella precisa lo que su carácter individual sería en perfección. Algunos hinchen por completo con sus actos ese límite de su posibilidad; mas de ordinario discrepamos, por defecto o por exceso, de lo que sería nuestra propia plenitud. ¡Cuántas veces nos sorprendemos anhelando que nuestro prójimo haga esto o lo otro porque vemos con extraña evidencia que así completaría su personalidad!

  No midamos, pues, a cada cual sino consigo mismo: lo que es como realidad con lo que es como proyecto. «Llega a ser el que eres». He aquí el justo imperativo... Pero suele acaecernos lo que maravillosamente, misteriosamente, sugiere Mallarmé, cuando resumiendo a Hamlet le llama: «el señor latente que no puede llegar a ser».

    Dondequiera nos es fecunda esta idea, que descubre en la realidad misma, en lo que tiene de más imprevisible, en su capacidad de innovación ilimitada, la sublime incubadora de ideales, de normas, de perfecciones.

   En crítica literaria o artística recibe inmediata aplicación: reprodúzcase el análisis motivado por el juicio de la belleza femenina a propósito de una lectura. Al leer un libro, sobre el cuerpo que forma lo leído, va golpeando como un íntimo martilleo de agrado o desagrado: «Esto va bien, -decimos-; es como debía ser» «Esto va mal; su perfección designa otra trayectoria". Y automáticamente, sobre la obra, inscrito o circunscrito en ella, vamos dejando un pespunte crítico que es el esquema por ella pretendido. Sí, todo libro es primero una intención y luego una realización. Con aquella midamos ésta. La obra misma nos revela a la par su norma y su pecado. Y el mayor absurdo fuera hacer un autor metro de otro.

   Esta dama que ante mi va...

  -¡Cuatro Caminos!- grita el cobrador.

  Ese grito me ha causado siempre una emoción penosa, porque es un símbolo de la perplejidad.

  Pero el trayecto ha concluido. No se puede pedir más por diez céntimos.


(*) Lo monstruoso es un defecto biológico y, por consiguiente, anterior al plano de discernimiento estético. Lo opuesto a «monstruoso» no es lo «bello», sino lo «normal».

dissabte, 12 d’abril del 2014

Capturar text d'un msgbox

A vegades voldriem capturar alguna part d'un msgbox per poder lliurar-ho o per copiar-ho i pegar-ho en alguna altra part. Sovint llegim i ens ho apuntem a ma o simplement ho recordem.

Hi ha una solució tan pràctica que sobta el poc coneguda que és.

Polsem simultàniament les dues tecles

                     CTRL         C

 (es a dir, un copy normal i corrent) tenint el focus sobre el msgbox. El resultat es va al portapapers. Obrim el portapapers i alli fem un cutypaste de la part que volguem.
Simple!.

Trobat a:
http://www.propiedadprivada.com/copiar-el-texto-de-un-alert-o-msgbox/820/

Tags:
Copy text from msgbox
Copiar texto de un msgbox
Copiar text d'un msgbox

dimecres, 9 d’abril del 2014

Taules buides. Recordset buit. Access VBA

Les taules buides són una mica un maldecap.

El primer és que no les pots actualitzar.

Sembla que tenen un registre en blanc però, en realitat, no en tenen cap.Per això, si vols afegir dades cal fer una consulta d'annexió de dades. De fet és lògic.

Però quan la cosa encara és més fastidiosa és quan les converteixes en recordset. Per la mateixa raó, es a dir, perquè en realitat no tenen cap línia, si intentes fer un rs.movefirst, el programa petarà.

Conforme, però com puc saber si hi ha un o més d'un registre o, pel contrari, no hi ha cap?

Una bona solució seria "If rs.EOF And rs.BOF Then":

El que fem es validar que, en un recordset (en aquest cas anomenat rs) el principi [Begining Of File] i el final [End Of File] es troben en la mateixa línia. Per tant, te zero registres!!!

Un exemple de codi:

Private Sub subSumatori()
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("tempDedicacion")
Dim mbsumatori As String

    If rs.EOF And rs.BOF Then
        MsgBox "No hi ha registres de temps imputats aquest dia"
       Usuaria = ""
        lblUsuaria.Caption = Usuaria
       rs.Close
        End
    Else
         rs.MoveFirst
            While Not rs.EOF
                mbsumatori = mbsumatori & "Dia " & data....
                rs.MoveNext
            Wend
         rs.Close
            MsgBox mbsumatori
    End If

End sub

Tags:
Empty table. Empty recordset
Tablas vacías. Recordset vacio
Taules buides. Recordset buit.
VBA Access
Error recordset vacío
Error recordset buit

dimarts, 8 d’abril del 2014

Crear una taula en access amb VBA

En general hom fa servir sistemes de tipus DAO o ADO que, personalment, encara trobo bastant complicats.

Pels que simplement volem crear una taula temporal amb VBA, aquesta seria una solució.

Creem una taula tempTaula amb quatre camps:

  • ID de tipus integer
  • Nom de tipus text amb longitud 10
  • Cognom de tipus text amb longitud 20
  • Anys de tipus integer
Un cop creada la taula, l'omplim -amb una taula d'annexió- amb els valors 1,Pepe, Gotera i 50
Tot ho fem polsant un botó.


Font: http://www.access-programmers.co.uk/forums/showthread.php?t=149613

El codi (es recomana pasar-ho a Notepad++ amb llenguatge vb)




Option Compare Database
Option Explicit

Private Sub Form_Load()
    DoCmd.SetWarnings False
End Sub

Private Sub cmdCreaTaula_Click()
    crearTaula
    subqryPersonatges
End Sub

Private Sub crearTaula()
'Font: http://www.access-programmers.co.uk/forums/showthread.php?t=149613
    Dim qryCrearTaula As String
        qryCrearTaula = "CREATE TABLE tempTaula (ID integer, Nom text (10), Cognom text (20), Anys integer )"
    DoCmd.RunSQL qryCrearTaula
End Sub

Private Sub subqryPersonatges()
    Dim qryPersonatges As String
        qryPersonatges = "INSERT INTO tempTaula ( ID, Nom, Cognom, Anys )" _
        & "SELECT 1 AS Expr1, ""Pepe"" AS Expr2, ""Gotera"" AS Expr3, 50 AS Expr4;"
    DoCmd.RunSQL qryPersonatges
End Sub




Tags:
Make a table with VBA in Access
Crear una tabla con VBA en Access
Crear una taual amb VBA en Access

divendres, 4 d’abril del 2014

Format DATA europeu i americà en Acces VBA

Capto una data d'un control ActiveX de tipus calendari:

data = calendari.value

fico aquesta variable dins una select:

...
'WHERE (((OCUPACION.FECHA)= #" & data & "# )
...

funciona fantàsticament pel dia 31 de març però el dia 03 d'abril me'l considera com a 4 de març.
Se que la data la capta en format americà, però fent un debug aparentment està bé...

Busco una mica i dins
http://www.lawebdelprogramador.com/foros/Access/1304492-Formato_de_fechas_Europeo_-_Americano.html
trobo la solució:

WHERE (((OCUPACION.FECHA)= #" & Format([data], "mm/dd/yyyy") & "# )

Ara funciona perfectament