VBA Sistema Facturación #3

VBA Sistema Facturación #3

Aprende a elaborar tu Propio Sistema de Facturación desde 0 y crea tus propias Aplicaciones para tu negocio

Este módulo de clase realiza la conexión a acces y también la ejecución de sus consultas INSERT, SELECT, UPDATE, DELETE, WHERE, COUNT.

Consulta de datos

Ahora nos vamos a centrar  recuperar la información que nos interesa dentro de una base de datos, usando para ello el lenguaje de consulta o SQL.  Ya nos preocuparemos luego de cómo llegamos a introducir los datos primeramente.

Para realizar consultas sobre las tablas de las bases de datos disponemos de la instrucción SELECT. Con ella podemos consultar una o varias tablas. Es sin duda el comando más versátil del lenguaje SQL.

Existen muchas cláusulas asociadas a la sentencia SELECT (GROUP BY, ORDER, HAVING, UNION). También es una de las instrucciones en la que con más frecuencia los motores de bases de datos incorporan cláusulas adicionales al estándar, que es el que veremos aquí.

A continuación analizaremos cada una de las partes de la consulta para entenderla mejor.
SELECT

Permite seleccionar las columnas que se van a mostrar y en el orden en que lo van a hacer. Simplemente es la instrucción que la base de datos interpreta como que vamos a solicitar información.
ALL / DISTINCT

ALL es el valor predeterminado, especifica que el conjunto de resultados puede incluir filas duplicadas. Por regla general nunca se utiliza.

DISTINCT especifica que el conjunto de resultados sólo puede incluir filas únicas. Es decir, si al realizar una consulta hay registros exactamente iguales que aparecen más de una vez, éstos se eliminan. Muy útil en muchas ocasiones.
Nombres de campos

Se debe especificar una lista de nombres de campos de la tabla que nos interesan y que por tanto queremos devolver. Normalmente habrá más de uno, en cuyo caso separamos cada nombre de los demás mediante comas.

Se puede anteponer el nombre de la tabla al nombre de las columnas, utilizando el formato Tabla.Columna. Además de nombres de columnas, en esta lista se pueden poner constantes, expresiones aritméticas, y funciones, para obtener campos calculados de manera dinámica.

Si queremos que nos devuelva todos los campos de la tabla utilizamos el comodín “*” (asterisco).

Los nombres indicados deben coincidir exactamente con los nombre de los campos de la tabla, pero si queremos que en nuestra tabla lógica de resultados tengan un nombre diferente podemos utilizar:
AS

Permite renombrar columnas si lo utilizamos en la cláusula SELECT, o renombrar tablas si lo utilizamos en la cláusula FROM. Es opcional. Con ello podremos crear diversos alias de columnas y tablas. Enseguida veremos un ejemplo.
FROM

Esta cláusula permite indicar las tablas o vistas de las cuales vamos a obtener la información. De momento veremos ejemplos para obtener información de una sola tabla.

Como se ha indicado anteriormente, también se pueden renombrar las tablas usando la instrucción “AS”.
WHERE

Especifica la condición de filtro de las filas devueltas. Se utiliza cuando no se desea que se devuelvan todas las filas de una tabla, sino sólo las que cumplen ciertas condiciones. Lo habitual es utilizar esta cláusula en la mayoría de las consultas.
Condiciones

Son expresiones lógicas a comprobar para la condición de filtro, que tras su resolución devuelven para cada fila TRUE o FALSE, en función de que se cumplan o no. Se puede utilizar cualquier expresión lógica y en ella utilizar diversos operadores como:

Esta herramienta ha sido estructurada para que no tengas muchas complicaciones en la conexión a acces y también te familiarices con este entorno de forma amigable.

También te menciono que a este módulo de clase le llamaremos clsconexion, y será nuestra dll en un futuro Elaborada por Excelservicios.com así es que no olvides comentar los Créditos al copiar el Código.

Inserta un Módulo de Clase en tu Libro de Excel y descarga el Código de Abajo

NOTA SE CAMBIO EL MODULO DE CLASE ES SOLO PARA EXPLICAR COMO FUNCIONA SU PROCESO LO CUAL LO TRABAJAREMOS CON LA DLLADO QUE lo pueden descargar de los Videos 5, 6 y 7

MODIFICACIONES EN LA CONEXIÓN ACTUALIZADO 02/05/2016

Aquí el Tipo de Variables.

‘————————————————————-

‘Cadena de Conexión de Excel A Acces

‘————————————————————-

Function Servidor()

With cadena

.Ruta = ThisWorkbook.Path & “\Base\” ‘Carpeta de Intalación

.Base = “BFactura.accdb” ‘ Base de Datos

.Clave = “” ‘ Contraseña

.Tipo = 1 ‘ 0=mdb y 1=accdb

End With

End Function

Descargar Biblioteca

 

Acerca del autor

Fernando M.Blas administrator

    53 comments so far

    divoarturoPublicado en2:14 pm - Sep 30, 2015

    Excelente excelente gracias por compartir tus valiosos conocimientos

    infocontawmPublicado en9:15 pm - Oct 2, 2015

    fERNANDO ERES UN CAPO EN PROGRAMACION GRACIAS POR TUS CONOCIMIENTOS Q DIOS TE SIGA DANDO BENDICIONES

    cfarfanmPublicado en4:58 am - Oct 5, 2015

    Muy buenos Los videos.

    jfgarcia95Publicado en12:15 am - Oct 21, 2015

    Fantástico, Lo felicito muchas personas necesitamos esto Gracias.

    beto.montoya.cuenPublicado en11:02 am - Oct 24, 2015

    Muchisimas gracias por compartir tus conocimientos. Muchas Gracias.

    garciafrancisco47Publicado en2:17 am - Nov 7, 2015

    Fernando eres un genio felicitaciones por su vocación de enseñar y compartir tus conocimientos. Gracias, que El Señor Dios te bendiga.

    RobertoPublicado en2:29 am - Ene 24, 2016

    Hola Fernando, vi tu video #3 muy interesante y felicitaciones, pero no sé de donde bajar la información adicional al módulo de clase.

    ErwinPublicado en5:36 pm - Abr 23, 2016

    Buen día Fernando, estoy siguiendo este tutorial pero no encuentro el archivo con el código del modulo de clase que comentas en el vídeo. Porfa indica como lo ubico.

    angelescalona3904Publicado en3:34 pm - May 2, 2016

    Buen dia, de antemano le felicito por los modulos educacionales. Este en General creo que me servirá de mucho.

    TENGO UN PROBLEMA: » Es que no consigo el archivo para copiar la información que hay que colocar en un modulo de clase como usted lo explica…

    Si usted o alguno de los participantes en este modulo pudiera ayudarme, le agradeceria. Mi correo es angelescalona3904@yahoo.es

    Saludos,

      Asesor Fernando Excelservicios.comPublicado en7:19 pm - May 2, 2016

      Hola cual es tu Problema puedes Explicarme

        AlanPublicado en12:34 am - Jun 19, 2016

        Es el mismo problema que yo tengo, ya que ELIMINASTE el código del módulo de clase que indicas en el video numero 3. Entiendo que a través del tiempo has hecho cambios a la programación, e incluso dejaste una dll para descargar y que sea todo más rápido, pero creo que es importante dejar el historial de lo que vas haciendo, y que la descarga de la dll sea opcional NO hacerla obligatoria, pues en tus videos explicas una cosa, y para llegar al punto donde explicas lo de la dll me imagino que nos harán falta un par de videos más por ver, entonces se pierde la continuidad de los tutoriales que has dejado a la comunidad que va comenzando en este mundo del vba.

          Asesor Fernando Excelservicios.comPublicado en5:23 pm - Jun 21, 2016

          En realidad no necesitas la Clase solo la Dll porq no estoy enseñando a hacer una clase si no Tomar las funciones de la clase que puede estar en el proyecto o en una dll, al Final solo usaras el código que enseño en los videos

    Humberto CarrilloPublicado en1:41 am - Jun 5, 2016

    Excelente todo tu trabajo, muchas gracias!!!!

    Humberto CarrilloPublicado en2:06 am - Jun 5, 2016

    tengo una duda, esta libreria debo instalarla en los equipos que valla a utilizar esta aplicacion? es que aun no me queda claro para que sirve, y no se cuanto me pueda limitar al correrlo en otros equipos.

    PEDRO MAMANIPublicado en3:03 pm - Jun 16, 2016

    hola Fernando, primeramente felicitarte por tus tutoriales son muy buenos, queria aprovechar esta para pedirte si me podrias indicar como puedo instalar el archivo DSIGADO-V.1 de ya te agradesco por tu desprendimiento deseandote exito y bendiciones.

    AlanPublicado en12:31 am - Jun 19, 2016

    Hola, que tal, estaba siguiendo el tutorial, pero me imagino que a través del tiempo has realizado cambios al programa de facturación, sin embargo, como sugerencia te digo que si en tus videos explicas una cosa, y a través del tiempo realizas modificaciones, SIEMPRE debes dejar un historial de lo que vayas haciendo, ya que sino se pierde el sentido de los videos. Por ejemplo, voy en el módulo 3, y ahí dices, copien y peguen el siguiente código, pues no lo explicas ni nada, pero ahora que vengo a buscar el código, resulta que lo has ELIMINADO, entonces se pierde la gracia de los tutoriales, pues no permites la continuidad de los videos que explicas.

    carlosPublicado en2:48 pm - Jul 6, 2016

    hola Fernando buenos días de nuevo quiero felicitarte por tan excelentes vídeos y quiero pedirte un favor que me despejes la duda de como hago para no insertar la cadena que conecta el modo de clase con el procedimiento si no tengo modo de clase ya que lo quitaste porque ya no es necesario ahí me perdí me puedes ayudar por favor

      carlosPublicado en3:14 pm - Jul 6, 2016

      hola fernando de nuevo mira el error que me aparece como lo puedo arreglar por favor.

      Se ha producido el error ‘424’ en tiempo de ejecución:
      se requiere objeto

        Asesor Fernando Excelservicios.comPublicado en4:03 pm - Jul 6, 2016

        Te Falta Registrar la Librería Puede Estar en Cualquiera de las 2 Rutas o en todo Caso Agrega la Referencia
        C:\Windows\SysWOW64\DllAdo.dll
        C:\Windows\System32\DllAdo.dll

        Si Quieres Registrar Manualmente Usa un Bloc de Notas y Lo Copias en la Misma Carpeta de Arriba y lo Ejecutas como Administrador
        @System 64
        regsvr32 %SYSTEMROOT%\SysWOW64\DllAdo.dll

        @System 32
        regsvr32 DllAdo.dll

        Ejemplo del Archivo: registrar.bat

      Asesor Fernando Excelservicios.comPublicado en3:53 pm - Jul 6, 2016

      Solo inserta la Cadena de Conexión en el Módulo 1

    carlosPublicado en9:19 pm - Jul 6, 2016

    Mira yo ejecute el archivo que nos dejaste, pero lo ejecute en otracarpeta y lo movi a la carpeta C:\Windows\SysWOW64 y ya borre la cadena de conexion que nos habias dado y no quiere funcionar

    carlosPublicado en9:29 pm - Jul 6, 2016

    Mira asi tengo el codigo me puedes colaborar por favor…
    »»»»»» DLL ADO »»»»»»’
    Public cadena As New ClsAdo

    Sub Cargar_mercancia()
    Me.Cmbmercancia.Style = fmStyleDropDownList
    Me.Cmbmercancia.Clear
    With cadena
    .ListaTabla («SELECT * FROM Mercancia»)

    Do While Not .rst.EOF()
    Me.Cmbmercancia.AddItem .rst(«detallemercancia»).Value
    Me.Cmbmercancia.List(Me.Cmbmercancia.ListCount – 1, 1) = .rst(«idmercancia»).Value
    .rstMoveNext
    Loop
    End With

    End Sub

    Public Sub Cargar_unidades()

    End Sub

    Public Sub Cargar_categorias()

    End Sub

    Private Sub UserForm_Activate()
    Me.Cargar_mercancia

    End Sub

      Asesor Fernando Excelservicios.comPublicado en10:33 pm - Jul 6, 2016

      Ojo No estas Creando la Conexión a Acces
      ‘————————————————————-

      ‘Cadena de Conexión de Excel A Acces – Copialo en un Módulo

      ‘————————————————————-
      Public cadena As New ClsAdo
      Function Servidor()

      With cadena

      .Ruta = ThisWorkbook.Path & “\Base\” ‘Carpeta de Intalación

      .Base = “BFactura.accdb” ‘ Base de Datos

      .Clave = “” ‘ Contraseña

      .Tipo = 1 ‘ 0=mdb y 1=accdb

      End With

      End Function

      Después de Ello en el evento Activate
      Coloca: Call Servidor

      Ojo El Código Reemplaza a la Clase

        YolbertPublicado en9:43 pm - Mar 25, 2018

        Hola fernando Saludos, Mil gracias por este tutorial.. tengo un problema relacionado con lo que colocas aca, y es que al momento de ejecutar me lanza un error «Error en tiempo de ejecucion» Al depurar me sale
        Me.cargar_mercaderia y eso que ya cree la conexion en un modulo y llame con «call» al servidor en el evento activate: COMO SOLUCIONAR ESTE PROBLEMA! mi codigo aca!!

        Dim cadena As New ClsAdo
        Sub cargar_mercaderia()
        Me.cmbmercaderia.Style = fmStyleDropDownList
        Me.cmbmercaderia.Clear
        With cadena
        .ListaTabla («SELECT * FROM Mercaderia»)
        Do While Not .rst.EOF()
        Me.cmbmercaderia.AddItem .rst(«detallemercaderia»).Value
        Me.cmbmercaderia.List(Me.cmbmercaderia.ListCount – 1, 1) = .rst(«idmercaderia»).Value
        .rst.MoveNext
        Loop
        End With
        End Sub

        Public Sub cargar_unidades()

        End Sub

        Public Sub cargar_categorias()

        End Sub

        Private Sub UserForm_Activate()
        Call Servidor
        Me.cargar_mercaderia
        End Sub

    JesusPublicado en8:39 pm - Sep 27, 2016

    hola de verdad muchas gracias por este tutorial es excelente y de gran ayuda..! pero tengo una pregunta

    ya instale el archivo que dices y lo que vi es que me creo una carpeta llamada «dllado» y dentro de ella un archivo llamado «Proyecto Factura».

    Mi pregunta es la siguiente:

    Sigo usando el mismo libro que ya yo estaba editando o tengo que agarrar el de la descarga??

    espero tu pronta respuesta saludos.

      Asesor Fernando Excelservicios.comPublicado en8:43 pm - Sep 27, 2016

      Si deseas Agregar a tu Libro de Trabajo lo puedes Hacer solo tienes que agregar la Referencia a la Biblioteca dllado,dll
      Aunque Hay Otra Versión en el video 0 .
      Al Final Puedes Trabajar con cualquiera de los 2 Dll.}

    JesusPublicado en2:29 pm - Sep 28, 2016

    ok entonces seguire editando el mismo libro con el que empece pero vuelvo y te pregunto.

    a este libro (creado desde cero por mi) no tengo que agregarle ningún tipo de código adicional a los módulos los dejo tal cual como lo habías indicado hasta el video N° 2 y sigo con el siguiente paso que era crear el otro userform??

    disculpa la pregunta lo que pasa es que quede un poco confundido.! Saludos y muchisimas gracias

    Jose luisPublicado en4:00 am - Mar 4, 2017

    Fernando que importante es que puedas facilitar el código que inicialmente mencionas en el modulo de clase, para analizarlo y aprender de este.

    ademas en los vídeos haces mension a ese modulo

    Jose ManuelPublicado en4:49 pm - Abr 12, 2017

    Buenos días Fernando.
    Estoy teniendo problemas con el programa. Al momento de ejecutarlo me envía un código de error 429 en tiempo de ejecución.
    UserDocumentos.Show
    Gracias….

    Jose ManuelPublicado en8:40 pm - Abr 12, 2017

    Gracias por información

    DiegoPublicado en6:39 pm - May 31, 2017

    Y donde está el módulo de clase?

    Magali Díaz EspinoPublicado en6:49 pm - Jun 11, 2019

    me marca error run time 2147024770(8007007e) error automatico, no permite que ingrese el DsigExpressAcces.dll, que debo hacer???

    MiguelPublicado en12:57 am - Jun 18, 2019

    Hola que tal gracias por los tutorial.
    Tengo un problema me salta un error.
    Se ha producido el error ‘429’ en tiempo de ejecución:
    El componente ActiveX no puede crear el objeto.
    al apretar depurara me resalta en la funcion Servidor en la parte
    With cadena.

    Gracias

    DennisPublicado en10:06 pm - Ago 18, 2019

    no puedo ver el codigo del modulo de clase

    Deja un comentario

    whatsapp