Modificar una Vista de SQL Server desde VBA en Access y mostrarla

Recientemente me ví en la necesidad de tener una vista con contenido ‘a petición’ del usuario, que bien puede ser de una sola tabla o de muchas, usando como base una instrucción en SQL Server.

Abrir una tabla desde VBA en Access es sencillo, para ello existe la instrucción:

DoCmd.OpenTable "NombreTabla", acViewNormal

Donde:

DoCmd.OpenTable es la instrucción

NombreTabla es un parámetro donde le indiques el nombre de la tabla

acViewNormal es un segundo parámetro para indicarle en que modo se abrirá la tabla. En este caso ‘Normal’

 

Ahora bien, nuestra misión será editar una consulta/vista desde VBA en Access, pero si no existe habrá que crearla y luego abrirla en vista tabla.

Estos son los pasos a seguir:

1 – Crear la consulta, si existe, regresará un error y entonces pasaremos a editarla.

2 – Luego de crearla o editarla, refrescar el enlace a la BD de SQL Server, porque si no hacemos este paso, la vista/consulta editada, saldrá con el contenido anterior y parecerá que nuestro método de edición ha fallado. Esto se soluciona dando clic en el area de objetos de Access y presionando F5, pero nosotros lo haremos desde VBA.

La función para Crear o Editar la vista es la siguiente:

Function CrearEditarVista(strNombreVista As String, strSQLBase As String) As Boolean
    Dim iSQL As String
    
    'le indicamos que si hay un error continúe'
    On Error Resume Next
    'Esta instrucción SQL crea la vista en SQL Server'
    iSQL = "CREATE VIEW " & strNombreVista & " AS " & strSQLBase
    
    Err.CLEAR
    CurrentProject.connection.Execute iSQL
    
    If Err.number = 0 Then 'Si no hubo error'
        'Se creó la vista :D, Devolvamos True'
        CrearEditarVista = True
    ElseIf Err.number = -2147217900 Then 'Este error significa que ya existe la vista. Entonces a editarla'
        iSQL = "ALTER VIEW " & strNombreVista & " AS " & strSQLBase
        Err.CLEAR
        CurrentProject.connection.Execute iSQL
        If Err.number Then GoTo MANEJA_ERROR 'Si genera error, anunciar el error'
        'Nuesta función, funcionó :D, retornemos True'
        CrearEditarVista = True
    Else
        GoTo MANEJA_ERROR
    End If
    Exit Function
MANEJA_ERROR:
    MsgBox "[" & Err.number & "] - [" & Err.description, vbCritical, "Error"
    CrearEditarVista = False
End Function

Ahora, necesitamos consumirla y hacer el resto:

Function AbrirVista()
    strSQL = "Cualquier consulta con SELECT"
    R = CrearEditarVista("NombreDeMiVista", SQL)
    
    If R = True Then 'Si se creó o editó la vista'
        'Refrescamos los objetos. Si no hacemos esto, dará error porque no encontrará la vista o nos abrirá la vista, con la consulta que ya tenía guardada'
        Application.RefreshDatabaseWindow
        'Esperamos un segundo a que se actualicen los objetos'
        Sleep (1)
        'Finalmente abrimos la vista'
        DoCmd.OpenView "NombreDeMiVista", acViewNormal
    End If
End Function

Aquí la función Sleep(), aclaro que no es mía, álgún genio de la Web la creó, y yo la copié

Public Function Sleep(NumberOfSeconds As Variant)
On Error GoTo Err_Pause

    Dim PauseTime As Variant, start As Variant

    PauseTime = NumberOfSeconds
    start = Timer
    Do While Timer < start + PauseTime
    DoEvents
    Loop

Exit_Pause:
    Exit Function

Err_Pause:
    MsgBox Err.number & " - " & Err.description, vbCritical, "Pause()"
    Resume Exit_Pause

End Function

Copia todo esto a un módulo y lo podrás usar sin problemas, o hasta puedes crear un formulario. como el siguiente:

SQLVista

Espero te sirva. ¡Hasta la próxima!

Los medicamentos, absolutamente, van a cambiar tu vida. Si el problema persiste durante un perГ­odo mГЎs largo, se debe consultar a un mГ©dico. ВїTiene alguna pregunta sobre Kamagra y comprare cialis? Por supuesto que no es todo. ВїQuГ© medicamento es adecuado para la incapacidad para obtener o mantener una erecciГіn? Tal vez usted sabe sobre . Otra cuestión que tenemos que discutir es . Tener impotencia lata complicar el romance. Todo tipo de medicamentos, desde aquellos que se consideran «todos naturales» a los que se producen quГ­micamente en un laboratorio, pueden causar algunos efectos secundarios no deseados.

6 Trucos para aprovechar al máximo la caja de comandos en FactuKora

La caja de comandos responde a múltiples eventos y funciones. Hemos puesto especial empeño en dotarla de muchas funcionalidades para darle un diseño minimalista a la interfaz de ventas y reducir al mínimo el uso del mouse para agilizar el proceso de venta.

cajadecomandos-factukora

Si quieres sacarle el máximo provecho, lee cuidadosamente los 6 trucos que te harán la vida mas fácil al realizar una venta.

1. – Agregar un producto por su código 1 o código 2.

Ingresa el código 1 o 2 del producto y se agregará a la venta actual. Tambien funciona con el lector de codigo de barras.

2. – Indicar la cantidad del producto:

Teclea * seguido de la cantidad que quieras agregar. Ejemplo: *7 establecerá la cantidad en 7. Luego debes ingresar el código del producto, de esta manera estarás indicando que agregarás 7, del producto X.

3. – Aumentar o disminuir cantidad del último producto.

Si ya agregaste el producto y olvidaste indicarle la cantidad, o te cancelan un producto, presiona la tecla de SUMA o RESTA, y de esta manera la cantidad se modificará de 1 en 1, según la tecla que hayas presionado.

Esto mismo funciona en la caja de texto de Cantidad de la linea de un producto:

cantidad_producto_factukora

4. – Buscar un producto si no te sabes el código:

Escribe algo de la descripción del producto y te abrirá una ventana donde te arroje los productos coincidentes. Ahí puedes modificar la búsqueda o seleccionar directamente el producto y la cantidad.

Busqueda de productos en FactuKora

5. – Asignar un cliente usando su código:

Escribe @+Codigo del cliente, @0 para publico en general, o simplemente @ para abrir la caja de selección de cliente.

SeleccionaCliente

6. – Buscar una Nota, Factura o las ventas a un cliente:

#+NumeroDocumento: Busca la nota o factura con el numero indicado.

#@+CodigoCliente: Abre la ventana de busqueda mostrando las ventas a ese cliente

#: Abre la ventana de búsqueda donde podrás ver las últimas 10 ventas, o filtrarlas por Cliente o Numero de documento:

BuscarDocumento

Esta ventana también se abre, dando doble clic en la caja de NumeroDocumento

Puedes Descargar FactuKora Gratis, completamente funcional, con la excepción del timbrado de documentos CFDI.

También puedes consultar los Precios y Promociones de FactuKora

Los medicamentos, absolutamente, van a cambiar tu vida. Si el problema persiste durante un perГ­odo mГЎs largo, se debe consultar a un mГ©dico. ВїTiene cualquier pregunta sobre Kamagra y comprare cialis? Por supuesto que no es todo. ВїQuГ© medicamento es adecuado para incapacidad laboral para obtener o mantener una erecciГіn? Tal vez usted sabe sobre . Otra pregunta que tenemos que discutir es . Tener impotencia puede complicar el romance. Todo tipo de medicamentos, desde aquellos que se consideran «todos naturales» a los que se producen quГ­micamente en un laboratorio, pueden causar algunos efectos secundarios no deseados.

Criptografía en la biblia

No, este no es un post sobre el código secreto de la biblia, sino, criptografía real, empleada por los escritores bíblicos. ¿En qué año se empezó a usar? ¿Qué métodos? ¿Qué escritores bíblicos?

La historia de este post, comienza conmigo la semana pasada, leyendo un versículo del libro de Jeremías que se citó en curso intensivo al que tuve el privilegio de asistir. Al leer la nota al pié de página, me sorprendió bastante encontrar este rastro de criptografía. Empecemos…

La Criptografía es el arte de esconder un texto en otro de manera que aunque el mensajero se vea comprometido, el mensaje se mantenga secreto. Fué usado para comunicar campamentos de soldados establecidos, con otros, pero principalmente para recibir instrucciones de Capitán a Campamento o Rey a Capitán.

El versículo citado es Jeremías 25:26:

«y todos los reyes del norte que están cerca y lejos, uno tras otro, y todos los [demás] reinos de la tierra que están sobre la superficie del suelo; y el mismo rey de Sesac beberá después de ellos.»

Se menciona a Sesac, este nombre encriptado significa realmente Babel (Babilonia) y se repite en Jeremías 51:41. El método de encriptación usado, se llama: athbásch o simplemente Atbash, también conocido como método del espejo, pues hace justamente eso: invertir las letras como si de un espejo se tratase. Se usó obviamente en idioma Hebreo.

Esto significa entonces que la primera letra, se sustituye con la última, la segunda con la penúltima y así sucesivamente, como se muestra en la siguiente imagen:
Atbash-hebreoLo cual en español resultaria algo como: A=Z, B=Y, C=X… Y así sucesivamente.

Me recuerda un poco a la Charla entre David Becker y Susan Fletcher de la novela, La Fortaleza Digital, cuando se conocen y entre coqueteos, Susan le enseña a David, un método sencillo de Criptografía. A cada letra, reemplezarla con la anterior, siendo así: A=Z, B=A, C=B, D=C… en lo sucesivo…

¿En qué año escribió Jeremías?

Empezó a escribir en el cuarto año del Rey -de Judá- Jehoiaquim, cuando Jehová le ordena poner por escrito las profecías que le había dado tiempo antes. Lo sabemos por lo que dice Jeremías 36:1-2. Esto transcurre en el año 625 Antes de Cristo (o antes de la Era Común), por lo tanto significa que cuando menos, desde hace cerca de 2639 años, se empezó a usar la Criptografía.

Jeremías contaba con aproximadamente 25 años cuando fué nombrado profeta en 647 a. E. C. por lo que para el año 625 tendría unos 47 años, cuando se escribió el libro que lleva su nombre con la ayuda de su secretario Baruc. Eran tiempos turbulentos de amplia rivalidad entre Egipto, Babilonia y Asiria.

¿Por qué usó Jeremías criptografía?

El libro de Jeremías se escribió desde Judá y Egipto. En ese año (625 e.E.C.) Nabucodonosor, vence al Faraón Egipcio Nekó, tomando así el control de Judá, por lo que ahora Judá se encuentra bajo las ordenes de Jehoiaquin, Rey Asignado por Nabucodonosor, aunque Jehoiaquim fué derrocado tres años mas tarde al rebelarse.

Entendemos entonces que al momento de escribir la profecía sobre Sesac (Babilonia), el Rey Nabucodonosor, tenía dominio sobre Judá, y por lo tanto Jeremías se encontraba totalmente expuesto a los castigos de este Rey, si se llegaba a enterar de que Jeremías anunciaba su muerte. ¿Fué ese el motivo por lo cual encriptar el nombre de Babilonia dejándolo como Sesac? Esa es mi teoría, tendré que seguír investigando. Me quedan dudas al respecto, pues Jeremías se caracterizó por ser valiente como profeta. Aunque quizá Jehová le ordenó escribirlo así, para proteger su integridad. Esto desconcerta sin embargo, en el siguiente ejemplo.

¿Mas criptografía?

Jeremías vuelve a usar este método en el capítulo 51, versículo 1:

«Esto es lo que ha dicho Jehová: “Aquí voy a suscitar contra Babilonia y contra los habitantes de Leb-qamai un viento arruinador; «

Al parecer se trata de Caldea o Kas·dím, La Versión de los Setenta pone “los caldeos” en lugar de “Leb-qamai”, y los targumes dicen “la tierra de los caldeos”.

Conclusión:

Sea como fuera, por los motivos que sea, me encantó encontrar rastros de Criptografía en la Biblia. Este es un tema en el que me gustaría ahondar y aprender mucho mas.

¿Es entonces Jeremías el primer hombre sobre la tierra en usar Criptografía real? Eso parece, dado que los rastros de Criptografía que se encontraron en Egipto +mil años atrás, han llevado a la conclusión, de que como menciona la Wikipedia:

«No se piens[e] que sean intentos serios de comunicación secreta, sino intentos de conseguir misterio, intriga o incluso diversión para el espectador letrado»

 

Bibliografía:

Wikipedia: Alfabeto Hebreo

Wikipedia: Historia de la criptografía.

BIBLIOTECA EN LINEA Watchtower: Sesac

Los medicamentos, absolutamente, van a cambiar tu vida. Si el problema persiste durante un perГ­odo mГЎs largo, se debe consultar a un mГ©dico. ВїTiene alguna cuestión sobre Kamagra y comprare cialis? Por supuesto que no es todo. ВїQuГ© medicamento es adecuado para incapacidad laboral para obtener o mantener una erecciГіn? Tal vez usted sabe sobre . Otra pregunta que tenemos que discutir es . Tener impotencia puede complicar el romance. Todo tipo de medicamentos, desde aquellos que se consideran «todos naturales» a los que se producen quГ­micamente en un laboratorio, pueden causar algunos efectos secundarios no deseados.

Telegram… Una Alternativa a WhatsApp por seguridad

Es un hecho innegable la popularidad e utilidad de WhatsApp, tampoco negamos que sea una aplicación que rompió paradigmas en la comunicación por texto. Modificó por completo la forma de comunicarnos y redujo completamente los costos de envío de mensajes de texto.

De hecho, la historia del desarrollo de WhatsApp y su programador Jan Koum es bastante inspiradora. Un tipo que emigra en busca de mejores oportunidades para mejorar su vida y la de su familia, lucha, se esfuerza, busca empleo en Facebook, lo rechazan… Un par de año después le vende su aplicación por casi el 10% del total del valor de la misma que lo había rechazado. 😮 Ahora el tipo es multimillonario.

Y sin embargo, como un buen informático geek, por más que me guste la historia de WhastApp, estoy sumamente preocupado por la seguridad y tomo medidas para mejorarla. Tampoco es innegable la poca seguridad con la que cuenta WhatsApp, y he buscado alternativas.

Telegram, como si fuese Superman, llega a nuestro auxilio en este campo, es en apariencia idéntico a WhatsApp pero con esteroides y espinacas incluidos.

[clear]

Es superior en comparación con su principal competencia. Aquí una lista.

Ventajas:

  • La seguridad.
  • Multiplataforma (Linux, Web, Windows, iOS, Android, Chrome)
  • Los grupos.
  • Envía cualquier tipo de archivo.
  • Reproduce imágenes Gif.
  • Conversaciones secretas (no se guardan en ningun lado, y se borran en cuanto la cierras)
  • Completamente gratis.

Desventajas:

  • Pocos usuarios. Pero si te unes, seremos más.
  • No hay versión para Symbian 🙁

 

Sitio Web Oficial

Radeon HD 6520G Dual Monitor en Ubuntu

Para que funcione correctamente tu Ubuntu con doble Monitor, especificamente la tarjeta ATI RADEON HD6520G es necesario instalar el driver AMD Catalyst desde este enlace:

http://support.amd.com/en-us/download/desktop?os=Linux%20x86_64

Yo personalmente he descargado la versión 14.4 Beta.

Cómo instalarlo:

Cuando descargas el archivo en Zip, debes descomprimirlo, y desde la terminar navegar hasta la carpeta donde has descomprimido y luego ejecutar:

sudo ./amd-driver-installer-14.10-x86.x86_64.run

con eso, se ejecutará el asistente de instalación, y al finalizar debes reiniciar para que cargue completamente los drivers.

Detalles:

Yo lo he probado en Ubuntu 12.04, mi Distribución es ElementaryOS Luna. Ahora todo funciona perfectamente.