VBA Sistema Facturación #3

PorFernando M.Blas

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

50 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?

Deja un comentario