Páginas

Punto de Venta en Access 2010 | Pantallas de Inventarios | Entrega 4


Esta entrega hasta ahorita "Las Pantallas de Inventarios", quizás vaya a ser una de las que mas contenido haya que explicar. Por lo que tendré la necesidad de dividirlo en 2 partes La Funcional y la Lógica, para cada una de estas he preparado un vídeo por separado, para así comprender con mas claridad como funciona este Modulo de Inventarios.

La Parte FUNCIONAL: Pantalla de Inventarios

Empezare por explicar que hay 2 pantallas y 2 Tablas de Inventarios:
  1. INVENTARIOS               "Esta sera la lista Principal de Inventarios"
  2. ENTRADAS_INV            "Las Entradas Individuales de Inventario"

TABLA DE INVENTARIOS














En esta Tabla, ademas de los particular tendremos 2 campos calculados, (que ha sido una de las novedades incluidas en la versión 2010 de Access). Uno Bajo el nombre de CANT_DISPONIBLE que almacenara todas cantidades existentes (Cantidad de Exhibición + Cantidad de Localización 1 + Cantidad de Localización + Cantidad de Localización 3), El segundo campo Calculado sera BAJO_INVENTARIO este campo tiene una condición que evalúa si la Cantidad Disponible Total es Menor a la Cantidad Mínima estipulada para el producto, se colocara  un "SI" para indicarnos que el inventario es bajo para este producto y sera necesario adquirir mas, y un "NO" cuando nuestra cantidad disponible sea mayor a la cantidad mínima estipulada para el Producto.


PANTALLA DE INVENTARIOS












En esta Pantalla (de formato Dividido) mostrar la lista principal de Inventario y podremos ahí notar todos lo cambios realizados en las cantidades, así como también poder capturar nuevos productos a la lista.


TABLA DE ENTRADAS DE INVENTARIO








En esta Tabla  "Entradas de Producto", va a ser la tabla donde quedaran registradas cada una de las entradas de cada producto en particular, sera como una especie de Log de Entradas (o lo que es lo mismo Detalles de Registros de Entradas), Aquí quedaran registradas las nuevas cantidades que se ingresaran a la lista principal de inventarios (por ende actualizándolo)

PANTALLA DE ENTRADAS DE INVENTARIO





















Esta Pantalla de Entradas de Inventarios, sera la interfaz donde el usuario podrá capturar todos los productos , sus cantidades y localizaciones de asignación para cada producto en particular.




La Parte LÓGICA: Pantallas de Inventarios


  • Todos los Campos de Cantidades para las Tablas INVENTARIO e INVENTARIO_ENT seran de Tipo "Doble" eso para permitir cantidades y fracciones
  • La expresion del Campo Calculado : CANTIDAD_DISPONIBLE es la siguiente:

[CANT_LOC1]+[CANT_LOC2]+[CANT_LOC3]+[CANTIDAD_EN_EXHIBICION]

  • La expresión del Campo Calculado: BAJO_INVENTARIO es la siguiente:

SiInm([CANT_DISPONIBLE]<[CANTIDAD_MINIMA],"SI","NO")

  • EL CODIGO DEL BOTON [Guadar y Continuar] Nombre del Boton :CmdGuardarInv
Insertar este Código en en evento Clic

Descargar esta Entrega Aqui
(importa estos objetos a tu base de datos como se explica en este Video )


    
Private Sub CmdGuardarInv_Click()
On Error GoTo err:

'Variables de ejecucion
Dim idprod As Integer
Dim CantEnt As Double
Dim Loc As String
Dim CantActualInv As Double
Dim CantExhibicion As Double
Dim NvaCantExhibicion As Double
Dim CantLoc1 As Double
Dim NvaCantLoc1 As Double
Dim CantLoc2 As Double
Dim NvaCantLoc2 As Double
Dim Cantloc3 As Double
Dim NvaCantLoc3 As Double

'Anular valores nulos en la asignacion de valores
idprod = Nz(Me.FID_PRODUCTO.Value, 0)
CantEnt = Nz(Me.CANTIDAD_ENTRADA.Value, 0)
Loc = Nz(Me.ASIGNAR_LOCALIZACION.Value, "")

'Buscar datos en Lista de Inventarios
Dim Rst As DAO.Recordset
Dim sql As String

sql = "SELECT * FROM [INVENTARIOS] US WHERE US.[FID_PRODUCTO]=" & idprod
Set Rst = CurrentDb.OpenRecordset(sql)

If Rst.BOF And Rst.EOF Then
        MsgBox "Producto No Encontrado en la Lista de Inventario"
    Else
        'Accion al Encontrar el producto en lista de inventario
        'Actualizar Cantidad de Inventario segun la localizacion Seleccoionada
        Select Case Loc
        Case "EXHIBICION"
            CantExhibicion = Rst![CANTIDAD_EN_EXHIBICION]
            NvaCantExhibicion = CantExhibicion + CantEnt
            Rst.Edit
            Rst![CANTIDAD_EN_EXHIBICION] = NvaCantExhibicion
            Rst.Update
        Case "LOCALIZACION_1"
            CantLoc1 = Rst![CANT_LOC1]
            NvaCantLoc1 = CantLoc1 + CantEnt
            Rst.Edit
            Rst![CANT_LOC1] = NvaCantLoc1
            Rst.Update
        Case "LOCALIZACION_2"
            CantLoc2 = Rst![CANT_LOC2]
            NvaCantLoc2 = CantLoc2 + CantEnt
            Rst.Edit
            Rst![CANT_LOC2] = NvaCantLoc2
            Rst.Update
        Case "LOCALIZACION_3"
            Cantloc3 = Rst![CANT_LOC3]
            NvaCantLoc3 = Cantloc3 + CantEnt
            Rst.Edit
            Rst![CANT_LOC3] = NvaCantLoc3
            Rst.Update
        End Select
        
Rst.Close
Set Rst = Nothing
End If

DoCmd.GoToRecord , , acNext

Exit Sub
err:
MsgBox err.Description
End Sub


  PANTALLA DE INVENTARIOS

  ENTRADAS DE INVENTARIOS




INDICE      ANTERIOR     SIGUIENTE

42 comentarios:

  1. Hey muchas gracias por esta entrega estare al pendiente del curso y en lo q pueda colaborare, mil gracias nuevamente....

    ResponderBorrar
  2. saludos me interesa mucho el tutorial, saben estoy interesando en como facturar en el formato de facturacion electronica del sat.

    ResponderBorrar
  3. Buenas, hoy he terminado de armar este "taller" el cual es muy bueno y me ha demostrado de que se puede hacer muy buenas cosas con ello, muchas gracias y esperando la próxima entrega que espero sea pronto. Un abrazo

    ResponderBorrar
  4. hola me llamo carlos!! muy interesante tu tutorial muy claro!!
    Pero me gustaria saber cuando serán las proximas entregas?? Saludoz

    ResponderBorrar
  5. QUISIERA SABER COMO INSERTASTE LOS BOTONES DE GUARDAR SALIR CERRAR.
    RESPONDEN POR FAVOR

    ResponderBorrar
    Respuestas
    1. Los botones se insertan de la siguiente manera:

      -primero pones tu formulario en vista de diseño
      -Vas a la ficha de menu "Diseño"
      -Seleccionas del cuadro de herramientas el objeto boton
      -haces click sobre el formulario para posicionar el boton
      -automaticamente se iniciara el asistente de botones
      -Seleccionas la opcion "operacion con registros"
      -asi para cada boton

      Borrar
  6. muy bueno. espero con ansias la proxima entrega..
    muchas gracias

    ResponderBorrar
  7. hola me llamo miguel y soy aficionado a la programacion en access pero soy novato y me propuse hacer una base de datos para un Tintoreria me podrias ayudar.

    ResponderBorrar
    Respuestas
    1. Hola Miguel, entiendo tu necesidad pero no dispongo de tiempo libre para asesorarte con esto. lo que si puedo hacer es asignarte a algunos de mis colaboradores para que te pongas en contacto con él, en cuanto al desarrollo de tu sistema y sus honorarios.

      Borrar
  8. Hola ¿como estas?. me gustaria me ayudaras al responder mi inquietud.
    al al abrir las entradas de inventario me vuelve a ingreasar todas las entradas
    nuevamente. ¿como hacer para que al abrir la pantalla me ingrese solo la entada
    actual? sin repetir lo ingresado anteriormente. Saludos.

    ResponderBorrar
    Respuestas
    1. Necesito un poco mas de detalles para poder ayudarte... no entiendo bien lo que dices respecto a ..."me vuelve a ingreasar todas las entradas
      nuevamente"

      saludos!

      Borrar
  9. Buenas noches maestro Arturo, mi inquietud es la siguent: en la pantalla de entadas de inventario, e ingresado unos productos, y sierro la base.
    al dia siguiente cuando la buelvo a abrir, me aparece en la pantalla el producto que ingrese el dia anterior, le doy guardar y continuar y me ingresa de nuevo todos los productos ya ingresados sumandolos hasta que me aparece de nuevo la pantalla en blanco lista para ingresar de nuevo los productos.
    Quisiera saber como Hacer para que la pantalla me aparezca vacia lista para ingresar productos. gracias por la atención prestada.Salusdos

    ResponderBorrar
    Respuestas
    1. Asegurate de lo siguiente,,

      El formulario ENTRADAS_INV tiene un evento AL ABRIR ahi debe tener esta macro colocada

      https://dl.dropbox.com/u/60558202/web/alabrir_ENTINV.JPG

      asi el macro hara el trabajo cada vez que abra el formulario, ira a un registro nuevo.

      Borrar
    2. Buenas tardes profesor.Le agradezco su ayuda.
      Coloque la macro y funciono.
      que dios lo bendiga gracias por todo.
      Un saludo afectuoso.

      Borrar
  10. Hola ARTURO... soy JOAQUIN... he estado siguiendo este Tutorial y me resultó un error al capturar los datos del ejemplo en la "Pantalla de Entradas de Inventario" doy clic en el botón "Guardar y Continuar" y aparece un cuadro de mensaje que dice "Pocos parametros, se esperaba 1" y no me deja guardar los datos y si cierro el formulario y lo abro nuevamente en lugar de aparecer los campos en blanco... traen los datos que capturé ........ solicito tu ayuda Gracias !!!.... Saludos !!!

    ResponderBorrar
    Respuestas
    1. Hola Joaquin,,, te puedo dar un par de recomendaciones:

      1.- Asegurate que el codigo Visual Basic que esta en el boton GUARDAR Y CONTINUAR este exactamente al ejemplo mostrado,,, si es asi y quieres descubrir donde tienes el error,,coloca un punto de interrupcion en en codigo solo haciento un click en la barra izquierta, justo donde empieza el procedimiento quedaria asi...

      https://dl.dropbox.com/u/60558202/web/punto_de_interrupcion_EntradasdeInv.JPG

      vas nuevamente a tu formulario lo llenas y le das click al boton guardar y continuar y te va a aparecer la primer linea de codigo marcada en amarillo (significa que esta detenida la ejecucion) para avanzar solo presiona F8 para avanzar de linea en linea y asi descubriras donde tienes el error.

      2.- El formulario ENTRADAS_INV tiene un evento AL ABRIR ahi debe tener esta macro colocada

      https://dl.dropbox.com/u/60558202/web/alabrir_ENTINV.JPG

      asi el macro hara el trabajo cada vez que abra el formulario, ira a un registro nuevo.

      Borrar
    2. Hola Arturo... Quedó solucionado, Muchas Gracias !!! ... y te FELICITO por ser un Excelente Maestro !!! ...... Saludos !!! ...... Joaquín

      Borrar
  11. Hola Arturo soy tu Alumno Virtual Joaquín.... ya he terminado los tutoriales hasta la entrega No. 6 ..... quisiera saber los temas y fechas de las próximas entregas ??? .... Saludos !!!

    ResponderBorrar
  12. Excelente tu ayudo, voy siguendo tus videos y hasta ahorita va todo bien y sobre todo estoy aprendiendo mucho.

    saludos

    ResponderBorrar
  13. Excelente curso virtual, profesor Arturo.
    Felicitaciones.

    ResponderBorrar
  14. Hola amigo gracias por su material es bueno

    Tengo un problema, estoy tratando de hacer entrada de datos y me sale error de desbordamiento, podrías ayudarme a entender porque sale ese error?.

    Saludos

    ResponderBorrar
    Respuestas
    1. Frecuentemente los desbordamientos se deben a los datos numericos que revasan la capacidad segun el tipo numerico. por ejemplo

      para tipo byte solo acepta rangos de (0 a 255)
      para tipo Entero acepta rangos desde (-32,768 a 32767)
      para entero largo acepta rangos desde(-2,147,483,648 a 2,147,483,647)

      Borrar
  15. Buenas tardes, profe

    Estoy trabajando en mi base de datos en un mac, con una aplicación parallels desktop,
    para utilizar access, en el escritorio remoto funciona bien, pero cuando utilizo el mismo archivo en otro computador, no me abre la base de datos y me presenta el siguiente error: No se reconoce el formato de bases de datos ".....".accdb.

    Sabria usted como se puede resolver.

    Muchas gracias

    ResponderBorrar
    Respuestas
    1. Hola Francisco, este error siempre aparece cuando intentas abrir una base de datos de access en una version de access distinta con la que fue creada, por ejemplo si yo creo una base de datos en access 2010 y luego deseo abrirla con otra computadora donde tengo access 2007, me daria este tipo de error. Verificate que tus versiones de access sean iguales en ambas computadoras.

      Borrar
  16. PROFESOR ARTURO CHAPA SIGO SU CURSO Y ME ESTA SIENDO DE MUCHA AYUDA PERO TENGO UN PEQUEÑO PROBLEMA AL INTODUCIR LA FORMULA EN EL CAMPO CALCULADO DE BAJO INVENTARIO NI AUN COPIANDOLO DEL CODIGO SiInm([CANT_DISPONIBLE<[CANTIDAD_MINIMA],"SI","NO")
    SIEMPRE ME DA ERROR DE FALTA

    ResponderBorrar
    Respuestas
    1. Hola Juan Jose, efectivamente tienes un error "fijate bien"

      Asi lo tienes
      SiInm([CANT_DISPONIBLE<[CANTIDAD_MINIMA],"SI","NO")

      Asi debe ser
      SiInm([CANT_DISPONIBLE]<[CANTIDAD_MINIMA],"SI","NO")


      te falta cerrar el corchete de [CANT_DISPONIBLE] <<--

      Saludos

      Borrar
  17. Ante Todo gracias por atenderme Efectivamente el error es al hacerle el comentario que lo escribi a falta del corchete aunque lo e copiado tal como lo a expuesto Silnm([CANT_DISPONIBLE]<[CANTIDAD_MINIMA],"SI","NO") me sigue dando el error y despues de probar e dado con la tecla no es coma si no punto y coma y funciona perfectamente gracias por atenderme tan pronto

    ResponderBorrar
  18. hola muy buenas noches tengo un problema en esta entrada que es la numero cuatro el detalle es que en el formulario entradas_inv, en cantidad a entrar no puedo agregar datos cuando abro el formulario y selecciono el produto tiene una sumatoria en de cantidad a entrar que cada vez que voy a utilizarlo le agrega uno

    ResponderBorrar
    Respuestas
    1. Jaime, podrias decirme en quen tipo de movimiento te pasa eso? ya sea cuando agregas una cantidad a EXHIBICION o LOCACION 1,2 o 3

      Borrar
  19. Hola arturo el mejor dia:

    sucede que mi campo codigo de producto es texto cuando le doy clic en guardar me da error en la siguiente linea Set Rst = CurrentDb.OpenRecordset(sql)y dice no coinciden los tipos de datos en la expresion de criterio, no se como corregirlo, favor ayudame.

    ResponderBorrar
    Respuestas
    1. verifica que tengas exactamente los mismos campos, nombres y tipos en la tabla, ya que si has cambiado de aquin se puede originar tu error.

      Borrar
  20. HOLA GRACIAS POR LO DEL CODIGO DE BARRAS MUY BUENO. MIRA EL NUEVO PROBLEMA ES QUE CUANDO VOY A INGRESAR AL INVENTARIO ME SALE "DESBORDAMIENTO" Y YA MIRE LO DE TAMAÑO DE CAMPO PERO NO SE CUAL ES EL DEBIDO A COLOCAR ME PUEDES A YUDAR

    ResponderBorrar
    Respuestas
    1. necesito saber en que parte del codigo ocurre el desbordamiento, mandame una imagen de cuando pasa el error y la base de datos a mi correo achapa03@gmail.com

      Borrar
    2. he verificado tu base,y tu error es que has cambiado en la tabla de productos el ID_PRODUCTO de la tabla de productos de tipo autonumerico a numero,,, el codigo de barras que tu colocas supera por valor el rango del tipo de campo long,, sigue la pracita con los mismos campos y tipos de datos.

      Borrar
    3. siii yo lo cambie para poder colocar el codigo de barras de los productos pero no hay alguna forma para que acepte esa longitud ...gracias

      Borrar
    4. en las entregas de la 7 en adelante, se integra el codigo de barras de forma funcional, solo sigue las entregas y podras integrar el codigo de barras sin problemas.

      Borrar
    5. muchas gracias bueno lo voy a arreglar... gracias por tu a yuda

      Borrar
  21. Buen Día maestro Arturo soy Ulises tengo el siguiente problema cuando doy clic en Guardar y continuar del formulario Entradas Inventario me aparece el siguiente mensaje "No coinciden los tipo de datos en la expresión de criterios." De antemano gracias por su ayuda.

    ResponderBorrar
    Respuestas
    1. Ulises, descargate de nuevo los objetos de esta entrega,, ya estan disponibles.

      Borrar
    2. hola arturo. tengo office 2007 y en la tabla de inventarios que le pongo para remplazar calculado?? por que no lo tengo.
      saludos

      Borrar
    3. Juan, este campo no va ha hacer el unico inconveniente que vas a tener por usar version 2007,, vas a necesitar cambiar a la version 2010

      Borrar
    4. oka, ya migre y ahi estomos encaminando. muchas gracias. muy bueno los videos, la verdad que te pasaste. un genioooooo

      Borrar