sistema inventario visualbasic

Upload: endrea-carvajal-lopez

Post on 30-Oct-2015

62 views

Category:

Documents


2 download

TRANSCRIPT

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    IntroduccinEl propsito de este tutorial es el de proveernos de las bases iniciales para elaborar un sencillo sistema de inventario el cual permitir realizar las transacciones que un sistema de inventario requiere, es decir procesar las entradas y las salidas de un producto determinado para poder saber en cualquier momento- con certeza cuntas unidades del producto tenemos en existencia. Este simple modelo podremos adecuarlo a nuestras necesidades particulares y hacerlo tan completo como sea necesario, de tal manera que podamos administrar y controlar nuestra valiossima coleccin de discos, libros, msica, pelculas, etc.

    Para este ejercicio crearemos una base de datos llamada Inventario y dentro de ella tendremos tres tablas llamadas: Productos, Entradas y Salidas. Con los tipos de datos que se muestran a continuacin.

    Tabla1: ProductosNombre del campo Tipo de datosNodeparte LongDescripcion TextoCosto CurrencyCantidadminima Long

    En el tutorial Cmo crear una base de datos en Access con Visual Basic publicado en la pgina: www.abcdatos.com/tutoriales/tutorial/z6124.html se las hallan instrucciones detalladas sobre cmo crear las tablas, sin embargo haremos un repaso breve.

    Inicio del Proyectoa) Crea una carpeta que ser exclusiva para el ejercicio que se llamar: inventario para guardar todos

    los componentes del proyecto.

    Inicio de Visual Basica) Haz clic en el botn Inicio, seala Todos los programas.b) Seala Microsoft Visual Studio 6.0, y haz clic en Microsoft Visual Basic 6.0.

    1 de 27

    Tabla2: EntradasNombre del campo Tipo de datosNodeentrada LongFecha Date/TimeNodeparte LongDescripcion TextCantidad LongCosto Currency

    Tabla3: SalidasNombre del campo Tipo de datosNodesalida LongFecha Date/TimeNodeparte LongDescripcion TextCantidad LongCosto Currency

  • Cmo crear un Sistema de Inventario en Access con Visual Basicc) Crea un proyecto EXE estndar y gurdalo como inventario en la carpeta del mismo nombre.d) Por el momento no haremos nada con el formulario inicial.

    Creacin de la base de datosa) Haz clic en el botn Complementos de la barra de herramientas.b) Haz clic en Administrador visual de datos

    c) Y se abrir el Administrador visual de datos (VisData (Visual Data Manager)).d) Haz clic en Archivo, Nuevo, Microsoft Access, MDB de la versin 7.0

    2 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    e) En la caja Seleccione la base de datos de Microsoft Access que desea crear, en Guardar en, busca y selecciona la misma carpeta creada anteriormente- en donde se guardar el proyecto, en Nombre: escribe un nombre que identifique la base de datos (usualmente el mismo nombre de la carpeta) y haz clic en el botn Guardar.

    3 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    f) Ahora aparece nuevamente el Administrador visual de datos listo para empezar a trabajar.

    4 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    Creacin de las tablas de la base de datos

    a) Para este ejercicio crearemos tres tablas (ver pgina 1). Haz clic con el botn derecho del ratn dentro de la Ventana de base de datos y haz clic en Nueva tabla.

    5 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    b) En la caja Estructura de tabla, Nombre de la tabla: escribe el nombre de la tabla, para el ejercicio la tabla se llamar productos, y haz clic en el botn Agregar campo.

    6 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    c) En la caja Agregar campo, Nombre: escribe el nombre del primer campo de la tabla que estamos creando, para el ejercicio agregaremos cuatro campos, a saber: nodeparte, descripcin, costo y cantidadminima.

    d) En Tipo: selecciona el tipo de datos que contendr el campo, en nuestro caso sern:- campo: nodeparte, tipo de datos: Long, tamao: 4- campo: descripcion, tipo de datos: Text, tamao: 50- campo: costo, tipo de datos: Currency, tamao: 8- campo: cantidadminima, tipo de datos: Long, tamao: 4

    e) En Tamao: selecciona la cantidad de caracteres (incluyendo espacios) que tendr el campo (ver arriba) y haz clic en Aceptar.

    f) Para agregar los otros campos de la tabla, nuevamente haz clic en el botn Agregar campo y repite los pasos desde el punto c) (Nombre, Tipo y Tamao) para cada campo que tendr la tabla.

    7 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    g) Al terminar de crear los campos, hacemos clic en el botn Agregar ndice y en la ventana Agregar ndice to productos agregaremos como ndice el campo nodeparte hacindole doble clic en la caja Campos disponibles y escribiendo en la caja de texto Nombre: nodeparteindice. Y haz clic en Aceptar. Como se ve abajo.

    h) Cuando hayas agregado los campos de la tabla haz clic en el botn Generar la tabla.

    8 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    i) Y la tabla la podrs ver en el Administrador visual de datos (VisData).

    i) Repite los pasos desde el punto a) para crear dos tablas ms con los siguientes campos:

    Tabla2: EntradasNombre del campo Tipo de datosNodeentrada LongFecha Date/TimeNodeparte LongDescripcion TextCantidad LongCosto Currency

    9 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    Haz doble clic en la tabla que acabas de crear (productos) para mostrar la ventana Dynaset: productos, haz clic en el botn Agregar para introducir el siguiente registro: Nmero de parte: 10, Descripcin pluma, Costo 12.50, Mnimo 20 y haz clic en Actualizar para agregarlo a la tabla productos de la base de datos inventario.

    Introduce ahora los registros: No de parte Descripcin Costo Mnimo20 LAPIZ 5.75 4030 BORRADOR 10.15 60

    10 de 27

    Tabla3: SalidasNombre del campo Tipo de datosNodesalida LongFecha Date/TimeNodeparte LongDescripcion TextCantidad LongCosto Currency

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    Creando los formularios

    Formulario de InicioCrearemos un formulario que nos servir de pantalla de inicio y contendr el men principal.

    As que entonces crea el formulario de inicio, que para iniciar en el centro de la pantalla debes modificar su propiedad StartUpPosition a 2-CenterScreen, modifica su propiedad Caption a Sistema de Inventario, crea el men con las opciones Productos, Entradas, Salidas, Inventario y Salir.

    Obviamente crearemos cinco formularios en total que llamaremos modificando su propiedad (Nombre): frminicio, frmproductos, frmentradas, frmsalidas y frminventario.

    El cdigo del men que nos permitir ir de un formulario a otro y salir del programa es:

    Private Sub productos_Click()frminicio.Hidefrmproductos.ShowEnd Sub

    11 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    Formulario Los ProductosEn el formulario coloca cuatro etiquetas, cuatro cajas de texto, dos controles Data, un MSFlexGrid y cuatro botones como se ve a continuacin.

    Creando la conexin con la base de datos y la tabla

    1. Conectando los controles Dataa) Selecciona cada uno de los controles Data y modifica sus propiedades como sigue:b) DatabaseName: localiza la carpeta del proyecto y selecciona la base de datos (inventario) en donde

    se halla la tabla que vamos a conectar.c) RecordSource: selecciona el nombre de la tabla (productos) cuyos campos se mostrarn en el

    formulario.

    2. Conectando las cajas de textoa) Selecciona una de las cajas de texto y modifica sus propiedades como sigue:

    12 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basicb) DataSource: selecciona Data1.c) DataField: selecciona el nombre del campo de la tabla que corresponda con la etiqueta - que se

    mostrar en la caja de texto.d) Repite los pasos con cada caja de texto del formulario.

    3. Conectando el MSFlexGrid.a) Selecciona el objeto MSFlexGrid, en su propiedad DataSource selecciona Data1, modifica su propiedad Cols a 5, cambia su propiedad Rows a 3.

    Corre el programa para comprobar que las conexiones se realizaron correctamente y que se pueden ver los registros en las cajas de texto correspondientes y en el MSFlexGrid.

    CodificandoCdigos del formulario Productos:Private Sub Form_Load()Me.Data1.RefreshFor t = 0 To MSFlexGrid1.Cols - 1MSFlexGrid1.FixedAlignment(t) = 4Next tMSFlexGrid1.ForeColor = &H40C0&MSFlexGrid1.ColWidth(0) = 350MSFlexGrid1.ColWidth(1) = 1100MSFlexGrid1.ColWidth(2) = 1500MSFlexGrid1.ColWidth(3) = 900MSFlexGrid1.ColWidth(4) = 1500Me.Text1.Enabled = FalseEnd Sub

    Para centrar el encabezado de las columnas, determinar la anchura de las columnas y usar texto caf en el MSFlexGrid, deshabilitar la caja de texto1 ya que este campo no ser capturado ni editable por el usuario.

    Private Sub Form_Activate()If Data1.Recordset.BOF And Data1.Recordset.EOF ThenIf MsgBox("No hay Registros en la Base de Datos" + Chr(13) + "Vamos a Introducir el Primer Registro", vbExclamation + vbOKOnly, "Aviso Importante") = vbOK ThenData2.RecordSource = "select max(nodeparte) as losproductos from productos"Data2.RefreshData1.Recordset.AddNewIf IsNull(Data2.Recordset!losproductos) ThenText1 = 1Text1.Enabled = FalseText2.SetFocusText3 = ""Text4 = ""ElseText1 = Data2.Recordset!losproductos + 1Text1.Enabled = FalseText2.SetFocus

    13 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicText3 = ""Text4 = ""MSFlexGrid1.Row = 1End IfEnd IfEnd IfDim w As IntegerMSFlexGrid1.Row = 0For w = MSFlexGrid1.FixedCols To MSFlexGrid1.Cols - 1MSFlexGrid1.Col = wMSFlexGrid1.CellFontBold = TrueMSFlexGrid1.CellForeColor = vbBlueNext wMSFlexGrid1.Row = 0MSFlexGrid1.Col = 0End SubPara poner en negritas y color azul el ttulo de las columnas del MSFlexGrid.

    Cdigo del men Archivo, Volver al Men:Private Sub volveralmenu_Click()frmproductos.Hidefrminicio.ShowEnd Sub

    Para volver al men principal

    Cdigo del botn Agregar Producto:Private Sub cmdagregarreg_Click()On Error GoTo Err_cmdagregarreg_ClickMe.Data1.RefreshMe.Data2.RecordSource = "select max(nodeparte) as losproductos from productos"Me.Data2.RefreshMe.Data1.Recordset.AddNewMe.MSFlexGrid1.Row = 0If IsNull(Data2.Recordset!losproductos) ThenMe.Text1 = 1Me.Text1.Enabled = FalseMe.Text2.SetFocusElseMe.Text1 = Data2.Recordset!losproductos + 1Me.Text1.Enabled = FalseMe.Text2.SetFocusEnd IfExit_cmdagregarreg_Click:Exit SubErr_cmdagregarreg_Click:MsgBox "Err.Description"Resume Exit_cmdagregarreg_Click

    14 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicEnd Sub

    Para mediante que el data2 obtener el nmero de registro o producto ms alto y agregarle una unidad, de manera que este nmero de producto no se repita y se mostrar automticamente, el usuario iniciar su captura de datos en la caja de texto2.

    Cdigo del botn Guardar Producto:Private Sub cmdguardarreg_Click()If Text2 = "" ThenMsgBox "Por favor Introduce la Descripcin", vbOKOnly, "Alta de Productos"Text2.SetFocusExit SubEnd IfIf Text3 = "" ThenMsgBox "Por favor Introduce el Costo", vbOKOnly, "Alta de Productos"Text3.SetFocusExit SubEnd IfIf Text4 = "" ThenMsgBox "Por favor Introduce la Cantidad Mnima", vbOKOnly, "Alta de Productos"Text4.SetFocusExit SubEnd IfDim z As Longz = Text1Data1.UpdateRecordData1.RefreshMSFlexGrid1.RefreshMsgBox "El Producto Nmero: " & z & Chr(13) + "Se Guard en la Base de Datos" + Chr(13) + "Con Todos los Datos Completos", vbInformation, "Alta de Productos"End Sub

    Para guardar el registro en la base de datos y notificar al usuario en caso de no completar un campo.

    Cdigo del botn Buscar Producto:Private Sub cmdbuscarreg_Click()Dim g As Integerg = Val(InputBox("Introduce el Nmero del Producto que Buscas", "Bsqueda de Productos"))Data1.Recordset.FindFirst "nodeparte=" & gIf Data1.Recordset.NoMatch ThenMsgBox "El Producto Nmero: " & g & " No est en la Base de Datos", vbExclamation, "Bsqueda de Productos"End IfEnd Sub

    Para realizar bsquedas de registros y notificar al usuario si no se halla en la base de datos.

    Cdigo del botn Eliminar Producto:

    15 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicPrivate Sub cmdeliminarreg_Click()If Data1.Recordset.EOF = False And Data1.Recordset.BOF = False ThenIf MsgBox("Ests Seguro de Eliminar el Producto Nmero: " & Text1 & "?", vbCritical + vbYesNo, "Eliminacin de Productos") = vbYes ThenData1.Recordset.DeleteData1.RefreshMSFlexGrid1.RefreshMsgBox "Muy Bien, Eliminaste el Producto", vbExclamation, "Eliminacin de Productos"ElseMsgBox "No se Elimin el Producto Nmero: " & Text1, vbExclamation, "Eliminacin de Productos"Text1 = ""Text2 = "'"Text3 = "'"Text4 = ""End IfEnd IfEnd SubPara eliminar registros y notificar al usuario.

    Cdigo de la caja de texto1 (Nmero de parte):Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenText2.SetFocusEnd IfEnd Sub

    Para avanzar con Enter a la siguiente caja de texto

    Cdigo de la caja de texto2 (Descripcin):Private Sub Text2_KeyPress(KeyAscii As Integer)KeyAscii = Asc(UCase(Chr(KeyAscii)))If KeyAscii = 13 ThenText3.SetFocusEnd IfEnd Sub

    Para introducir slo maysculas y avanzar a la siguiente caja de texto con Enter.

    Cdigo de la caja de texto3 (Costo):Private Sub Text3_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenText4.SetFocusEnd IfEnd Sub

    Para avanzar con Enter a la siguiente caja de texto

    Cdigo de la caja de texto4 (Cantidad Mnima):

    16 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicPrivate Sub Text4_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenMe.cmdguardarreg.SetFocusEnd IfEnd Sub

    Para avanzar con Enter al botn Guardar Producto.

    Formulario Entradas de los ProductosEn el formulario coloca seis etiquetas, seis cajas de texto, dos controles Data, un MSFlexGrid y cuatro botones como se ve a continuacin.

    1. Conectando los controles Dataa) Selecciona cada uno de los controles Data y modifica sus propiedades como sigue:b) DatabaseName: localiza la carpeta del proyecto y selecciona la base de datos (inventario) en donde

    se halla la tabla que vamos a conectar.c) RecordSource: selecciona el nombre de la tabla (entradas) cuyos campos se mostrarn en el

    formulario.

    2. Conectando las cajas de textoa) Selecciona una de las cajas de texto y modifica sus propiedades como sigue:b) DataSource: selecciona Data1.c) DataField: selecciona el nombre del campo de la tabla que corresponda con la etiqueta - que se

    mostrar en la caja de texto.d) Repite los pasos con cada caja de texto del formulario.

    17 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic3. Conectando el MSFlexGrid.

    a) Selecciona el objeto MSFlexGrid, en su propiedad DataSource selecciona Data1, modifica su propiedad Cols a 7, cambia su propiedad Rows a 3.

    CodificandoCdigo del formulario Entradas:Private Sub Form_Load()MSFlexGrid1.ColWidth(0) = 350MSFlexGrid1.ColWidth(1) = 1000MSFlexGrid1.ColWidth(2) = 1100MSFlexGrid1.ColWidth(3) = 1000MSFlexGrid1.ColWidth(4) = 1550MSFlexGrid1.ColWidth(5) = 800MSFlexGrid1.ColWidth(6) = 800Text1.Enabled = FalseEnd Sub

    Para determinar la anchura de las columnas del MSFlexGrid y deshabilitar la caja de texto1 ya que este campo no ser capturado ni editable por el usuario.

    Cdigo del men Archivo, Volver al Men:Private Sub volveralmenu_Click()frmentradas.Hidefrminicio.ShowEnd Sub

    Para volver al men principal

    Cdigo del botn Agregar Entrada:Private Sub Command1_Click()Data2.RecordSource = "select max(nodeentrada) as lasentradas from entradas"Data2.RefreshData1.Recordset.AddNewIf IsNull(Data2.Recordset!lasentradas) ThenText1 = 1ElseText1 = Data2.Recordset!lasentradas + 1End IfText1.Enabled = FalseText2.SetFocus

    18 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicText3 = ""Text4 = ""Text5 = ""Text6 = ""End Sub

    Para mediante el data2 obtener el nmero de registro o producto ms alto y agregarle una unidad, de manera que este nmero se mostrar automticamente, el usuario iniciar su captura de datos en la caja de texto2.

    Cdigo del botn Guardar Entrada:Private Sub Command2_Click()If Text2 = "" ThenMsgBox "Por Favor Introduce la Fecha", , "Aviso Importante"Text2.SetFocusExit SubEnd If

    If Text3 = "" ThenMsgBox "Por Favor Introduce el Nmero de Parte", , "Aviso Importante"Text3.SetFocusExit SubEnd If

    If Text4 = "" ThenMsgBox "Por Favor Introduce la Descripcin", , "Aviso Importante"Text4.SetFocusExit SubEnd If

    If Text5 = "" ThenMsgBox "Por Favor Introduce la Cantidad", , "Aviso Importante"Text5.SetFocusExit SubEnd If

    If Text6 = "" ThenMsgBox "Por Favor Introduce el Costo", , "Aviso Importante"Text6.SetFocusExit SubEnd If

    Dim x As Integerx = Val(Text3)frmproductos.Data1.Recordset.FindFirst "nodeparte=" & xIf frmproductos.Data1.Recordset.NoMatch Then

    19 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicMsgBox "El Producto Nmero: " & x & " No est en la Base de Datos", vbCritical, "Agregando Entradas"Text3.SetFocusExit SubEnd If

    Dim e As Longe = Val(Text1)Data1.UpdateRecordData1.RefreshMSFlexGrid1.RefreshMsgBox "La Entrada Nmero: " & e & " se Guard en la Base de Datos", vbExclamation, "Agregando Entradas"End Sub

    Para guardar el registro en la base de datos y notificar al usuario cuando un nmero de parte no se halle en la base de datos y cuando campo no sea llenado.

    Cdigo del botn Buscar Entrada:Private Sub Command3_Click()Dim j As Integerj = Val(InputBox("Introduce el Nmero de la Entrada que Buscas", "Bsqueda de Entradas"))Data1.Recordset.FindFirst "nodeentrada=" & jIf Data1.Recordset.NoMatch ThenMsgBox "La Entrada Nmero: " & j & " No est en la Base de Datos", vbExclamation, "Bsqueda de Entradas"End IfEnd Sub

    Para realizar bsquedas de registros y notificar al usuario si no se halla en la base de datos.

    Cdigo del botn Eliminar Entrada:Private Sub Command4_Click()If MsgBox("Ests Seguro de Eliminar la Entrada Nmero: " & Text1 & "?", vbCritical + vbYesNo, "Eliminacin de Entradas") = vbYes ThenData1.Recordset.DeleteData1.RefreshMSFlexGrid1.RefreshMsgBox "Muy Bien, Eliminaste la Entrada", vbExclamation, "Eliminacin de Entradas"ElseMsgBox "No se Elimin la Entrada Nmero: " & Text1, vbExclamation, "Eliminacin de Entradas"End If

    20 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicEnd Sub

    Para eliminar registros y notificar al usuario.

    Cdigo de la caja de texto4 (Descripcin):Private Sub Text4_KeyPress(KeyAscii As Integer)KeyAscii = Asc(UCase(Chr(KeyAscii)))If KeyAscii = 13 ThenText5.SetFocusEnd IfEnd Sub

    Para introducir slo maysculas y avanzar a la siguiente caja de texto con Enter.

    Formulario Salidas de los ProductosEn el formulario coloca seis etiquetas, seis cajas de texto, dos controles Data, un MSFlexGrid y cuatro botones como se ve a continuacin.

    1. Conectando los controles Dataa) Selecciona cada uno de los controles Data y modifica sus propiedades como sigue:b) DatabaseName: localiza la carpeta del proyecto y selecciona la base de datos (inventario) en donde

    se halla la tabla que vamos a conectar.c) RecordSource: selecciona el nombre de la tabla (salidas) cuyos campos se mostrarn en el

    formulario.

    2. Conectando las cajas de textoa) Selecciona una de las cajas de texto y modifica sus propiedades como sigue:b) DataSource: selecciona Data1.

    21 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basicc) DataField: selecciona el nombre del campo de la tabla que corresponda con la etiqueta - que se

    mostrar en la caja de texto.d) Repite los pasos con cada caja de texto del formulario.

    3. Conectando el MSFlexGrid.a) Selecciona el objeto MSFlexGrid, en su propiedad DataSource selecciona Data1, modifica su propiedad Cols a 7, cambia su propiedad Rows a 3.

    CodificandoCdigo del formulario Salidas:Private Sub Form_Load()MSFlexGrid1.ColWidth(0) = 350MSFlexGrid1.ColWidth(1) = 1000MSFlexGrid1.ColWidth(2) = 1100MSFlexGrid1.ColWidth(3) = 1000MSFlexGrid1.ColWidth(4) = 1550MSFlexGrid1.ColWidth(5) = 800MSFlexGrid1.ColWidth(6) = 800Text1.Enabled = FalseEnd Sub

    Para determinar la anchura de las columnas del MSFlexGrid y deshabilitar la caja de texto1 ya que este campo no ser capturado ni editable por el usuario.

    Cdigo del men Archivo, Volver al Men:Private Sub volveralmenu_Click()frmsalidas.Hidefrminicio.ShowEnd Sub

    Para volver al men principal

    Cdigo del botn Agregar Salida:Private Sub Command1_Click()Data2.RecordSource = "select max(nodesalida) as lassalidas from salidas"Data2.RefreshData1.Recordset.AddNewIf IsNull(Data2.Recordset!lassalidas) ThenText1 = 1ElseText1 = Data2.Recordset!lassalidas + 1End IfText1.Enabled = False

    22 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicText2.SetFocusText3 = ""Text4 = ""Text5 = ""Text6 = ""End Sub

    Para mediante el data2 obtener el nmero de registro o producto ms alto y agregarle una unidad, de manera que este nmero se mostrar automticamente, el usuario iniciar su captura de datos en la caja de texto2.

    Cdigo del botn Guardar Salida:Private Sub Command2_Click()If Text2 = "" ThenMsgBox "Por Favor Introduce la Fecha", , "Aviso Importante"Text2.SetFocusExit SubEnd If

    If Text3 = "" ThenMsgBox "Por Favor Introduce el Nmero de Parte", , "Aviso Importante"Text3.SetFocusExit SubEnd If

    If Text4 = "" ThenMsgBox "Por Favor Introduce la Descripcin", , "Aviso Importante"Text4.SetFocusExit SubEnd If

    If Text5 = "" ThenMsgBox "Por Favor Introduce la Cantidad", , "Aviso Importante"Text5.SetFocusExit SubEnd If

    If Text6 = "" ThenMsgBox "Por Favor Introduce el Costo", , "Aviso Importante"Text6.SetFocusExit SubEnd If

    Dim w As Longw = Val(Text1)Data1.UpdateRecord

    23 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicData1.RefreshMSFlexGrid1.RefreshMsgBox "La Salida Nmero: " & w & " se Guard en la Base de Datos", vbExclamation, "Agregando Salidas"End Sub

    Para guardar el registro en la base de datos y notificar al usuario cuando un campo no sea llenado.

    Cdigo del botn Buscar Salida:Private Sub Command3_Click()Dim c As Integerc = Val(InputBox("Introduce el Nmero de la Salida que Buscas", "Bsqueda de Salidas"))Data1.Recordset.FindFirst "nodesalida=" & cIf Data1.Recordset.NoMatch ThenMsgBox "La Salida Nmero: " & c & " No est en la Base de Datos", vbExclamation, "Bsqueda de Salidas"End IfEnd Sub

    Para realizar bsquedas de registros y notificar al usuario si no se halla en la base de datos.

    Cdigo del botn Eliminar Salida:Private Sub Command4_Click()If MsgBox("Ests Seguro de Eliminar la Salida Nmero: " & Text1 & "?", vbCritical + vbYesNo, "Eliminacin de Salidas") = vbYes ThenData1.Recordset.DeleteData1.RefreshMSFlexGrid1.RefreshMsgBox "Muy Bien, Eliminaste la Salida", vbExclamation, "Eliminacin de Salidas"ElseMsgBox "No se Elimin la Salida Nmero: " & Text1, vbExclamation, "Eliminacin de Salidas"End IfEnd Sub

    Para eliminar registros y notificar al usuario.

    Cdigo de la caja de texto4 (Descripcin):Private Sub Text4_KeyPress(KeyAscii As Integer)KeyAscii = Asc(UCase(Chr(KeyAscii)))If KeyAscii = 13 ThenText5.SetFocusEnd IfEnd Sub

    24 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual Basic

    Para introducir slo maysculas y avanzar a la siguiente caja de texto con Enter.

    Formulario Inventario de los ProductosEn el formulario coloca seis etiquetas, seis cajas de texto, tres controles Data y un botn como se ve a continuacin.

    1. Conectando los controles Dataa) Selecciona cada uno de los controles Data y modifica sus propiedades como sigue:b) DatabaseName: localiza la carpeta del proyecto y selecciona la base de datos (inventario) en donde

    se halla la tabla que vamos a conectar.c) RecordSource: cada control data se conectar a una tabla diferente, selecciona el nombre de la

    tabla (productos, entradas y salidas). d) Modifica la propiedad Visible de los controles data a False.

    2. Conectando las cajas de textoa) Selecciona una de las cajas de texto y modifica sus propiedades como sigue:b) DataSource: selecciona Data1.c) DataField: selecciona el nombre del campo de la tabla que corresponda con la etiqueta - que se

    mostrar en la caja de texto.d) nicamente se conectarn las tres primeras cajas de texto al control Data1 .

    25 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicCodificandoCdigo del formulario Inventario de los Productos:Private Sub Form_Load()Text1.Enabled = FalseText2.Enabled = FalseText3.Enabled = FalseText4.Enabled = FalseText5.Enabled = FalseText6.Enabled = FalseEnd Sub

    Para deshabilitar las cajas de texto ya que los campos sern slo para consulta.

    Cdigo del men Archivo, Volver al Men:Private Sub volveralmenu_Click()frminventario.Hidefrminicio.ShowEnd Sub

    Para volver al men principal

    Cdigo del botn Buscar Producto:Private Sub Command1_Click()Dim t As Integert = Val(InputBox("Introduce el Nmero del Producto que Buscas", "Bsqueda de Productos"))Data1.Recordset.FindFirst "nodeparte=" & tData2.RecordSource = "select sum(cantidad) as totalentradas from entradas where nodeparte=" & Text1Data2.RefreshIf IsNull(Data2.Recordset!totalentradas) ThenMsgBox "El Producto Nmero: " & t & " No Tiene Entradas", vbCritical, "Aviso Importante"Text4 = ""Exit SubElseText4 = Data2.Recordset!totalentradasEnd IfData3.RecordSource = "select sum(cantidad) as totalsalidas from salidas where nodeparte=" & Text1Data3.RefreshIf IsNull(Data3.Recordset!totalsalidas) ThenMsgBox "El Producto Nmero: " & t & " No Tiene Salidas", vbCritical, "Aviso Importante"Text5 = ""Exit SubElseText5 = Data3.Recordset!totalsalidasEnd IfText6 = Text4 - Text5If Data1.Recordset.NoMatch ThenMsgBox "El Producto Nmero: " & t & " No est en la Base de Datos", vbExclamation, "Bsqueda de Productos"

    26 de 27

  • Cmo crear un Sistema de Inventario en Access con Visual BasicEnd IfEnd Sub

    El control data1 mostrar los datos del registro en las cajas de texto uno a tres, el control data2 mostrar la suma de las entradas en la caja de texto cuatro, el control data3 mostrar la suma de las salidas en la caja de texto cinco y la caja de texto 6 mostrar el inventario.

    En el tutorial Cmo crear una base de datos en Access con Visual Basic publicado en la pgina: www.abcdatos.com/tutoriales/tutorial/z6124.html se hallan instrucciones detalladas sobre cmo crear los reportes que sean necesarios. Espero que este tutorial sea de inters y ayuda para muchos.

    Tutorial creado por: Lic. Jorge Alvarez [email protected]

    27 de 27