Bases de datos II

Grupos 601 y 602 Escuela Preparatoria Xicohtencatl Axayacatzin

viernes, 9 de abril de 2010

Inventario


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 continuación.
























El procedimiento anterior debes repetirlo para las 2 tablas restantes.



























































Creando la conexión con la base de datos y la tabla



1. Conectando los controles Data

a) 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 mostrarán en el formulario.



2. Conectando las cajas de texto

a) 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.



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.



Codificando

Códigos del formulario Productos:

Private Sub Form_Load()

For t = 0 To MSFlexGrid1.Cols - 1

MSFlexGrid1.FixedAlignment(t) = 4

Next t

MSFlexGrid1.ForeColor = &H40C0&

MSFlexGrid1.ColWidth(0) = 350

MSFlexGrid1.ColWidth(1) = 1100

MSFlexGrid1.ColWidth(2) = 1500

MSFlexGrid1.ColWidth(3) = 900

MSFlexGrid1.ColWidth(4) = 1500

Text1.Enabled = False

End 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()

Dim w As Integer

MSFlexGrid1.Row = 0

For w = MSFlexGrid1.FixedCols To MSFlexGrid1.Cols - 1

MSFlexGrid1.Col = w

MSFlexGrid1.CellFontBold = True

MSFlexGrid1.CellForeColor = vbBlue

Next w

MSFlexGrid1.Row = 1

MSFlexGrid1.Col = 0

End Sub



Para poner en negritas y color azul el título de las columnas del MSFlexGrid.



Código del menú Archivo, Volver al Menú:

Private Sub volveralmenu_Click()

frmproductos.Hide

frminicio.Show

End Sub



Para volver al menú principal



















Código del botón Agregar Producto:

Private Sub cmdagregarreg_Click()

Data2.RecordSource = "select max(nodeparte) as losproductos from productos"

Data2.Refresh

Data1.Recordset.AddNew

Text1 = Data2.Recordset!losproductos + 1

Text2.SetFocus

Text3 = ""

Text4 = ""

End Sub



Para mediante que el data2 obtener el número de registro o producto más alto y agregarle una unidad, de manera que este número de producto no se repita y se mostrará automáticamente, el usuario iniciará su captura de datos en la caja de texto2.



Código del botón Guardar Producto:

Private Sub cmdguardarreg_Click()

Dim z As Long

z = Text1

Data1.UpdateRecord

Data1.Refresh

MSFlexGrid1.Refresh

MsgBox "El Producto Número: " & z & " se Guardó en la Base de Datos", vbExclamation, "Agregando Productos"

End Sub



Para guardar el registro en la base de datos y notificar al usuario.



Código del botón Buscar Producto:

Private Sub cmdbuscarreg_Click()

Dim g As Integer

g = Val(InputBox("Introduce el Número del Producto que Buscas", "Búsqueda de Productos"))

Data1.Recordset.FindFirst "nodeparte=" & g

If Data1.Recordset.NoMatch Then

MsgBox "El Producto Número: " & g & " No está en la Base de Datos", vbExclamation, "Búsqueda de Productos"

End If

End Sub



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

















Código del botón Eliminar Producto:

Private Sub cmdeliminarreg_Click()

If MsgBox("¿Estás Seguro de Eliminar el Producto Número: " & Text1 & "?", vbCritical + vbYesNo, "Eliminación de Productos") = vbYes Then

Data1.Recordset.Delete

Data1.Refresh

MSFlexGrid1.Refresh

MsgBox "Muy Bien, Eliminaste el Producto", vbExclamation, "Eliminación de Productos"

Else

MsgBox "No se Eliminó el Producto Número: " & Text1, vbExclamation, "Eliminación de Productos"

End If

End Sub



Para eliminar registros y notificar al usuario.



Código de la caja de texto1 (Número de parte):

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Text2.SetFocus

End If

End Sub



Para avanzar con Enter a la siguiente caja de texto



Código de la caja de texto2 (Descripción):

Private Sub Text2_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii = 13 Then

Text3.SetFocus

End If

End Sub



Para introducir sólo mayúsculas y avanzar a la siguiente caja de texto con Enter.



Código de la caja de texto3 (Costo):

Private Sub Text3_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Text4.SetFocus

End If

End Sub



Para avanzar con Enter a la siguiente caja de texto













Formulario Entradas de los Productos

En el formulario coloca seis etiquetas, seis cajas de texto, dos controles Data, un MSFlexGrid y cuatro botones como se ve a continuación.






































1. Conectando los controles Data

a) 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 mostrarán en el formulario.



2. Conectando las cajas de texto

a) 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.



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.

















Codificando

Código del formulario Entradas:

Private Sub Form_Load()

MSFlexGrid1.ColWidth(0) = 350

MSFlexGrid1.ColWidth(1) = 1000

MSFlexGrid1.ColWidth(2) = 1100

MSFlexGrid1.ColWidth(3) = 1000

MSFlexGrid1.ColWidth(4) = 1550

MSFlexGrid1.ColWidth(5) = 800

MSFlexGrid1.ColWidth(6) = 800

Text1.Enabled = False

End 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.



Código del menú Archivo, Volver al Menú:

Private Sub volveralmenu_Click()

frmentradas.Hide

frminicio.Show

End Sub



Para volver al menú principal



Código del botón Agregar Entrada:

Private Sub Command1_Click()

Data2.RecordSource = "select max(nodeentrada) as lasentradas from entradas"

Data2.Refresh

Data1.Recordset.AddNew

If IsNull(Data2.Recordset!lasentradas) Then

Text1 = 1

Else

Text1 = Data2.Recordset!lasentradas + 1

End If

Text1.Enabled = False

Text2.SetFocus

Text3 = ""

Text4 = ""

Text5 = ""

Text6 = ""

End Sub



Para mediante el data2 obtener el número de registro o producto más alto y agregarle una unidad, de manera que este número se mostrará automáticamente, el usuario iniciará su captura de datos en la caja de texto2.









Código del botón Guardar Entrada:

Private Sub Command2_Click()

If Text2 = "" Then

MsgBox "Por Favor Introduce la Fecha", , "Aviso Importante"

Text2.SetFocus

Exit Sub

End If



If Text3 = "" Then

MsgBox "Por Favor Introduce el Número de Parte", , "Aviso Importante"

Text3.SetFocus

Exit Sub

End If



If Text4 = "" Then

MsgBox "Por Favor Introduce la Descripción", , "Aviso Importante"

Text4.SetFocus

Exit Sub

End If



If Text5 = "" Then

MsgBox "Por Favor Introduce la Cantidad", , "Aviso Importante"

Text5.SetFocus

Exit Sub

End If



If Text6 = "" Then

MsgBox "Por Favor Introduce el Costo", , "Aviso Importante"

Text6.SetFocus

Exit Sub

End If



Dim x As Integer

x = Val(Text3)

frmproductos.Data1.Recordset.FindFirst "nodeparte=" & x

If frmproductos.Data1.Recordset.NoMatch Then

MsgBox "El Producto Número: " & x & " No está en la Base de Datos", vbCritical, "Agregando Entradas"

Text3.SetFocus

Exit Sub

End If

















Dim e As Long

e = Val(Text1)

Data1.UpdateRecord

Data1.Refresh

MSFlexGrid1.Refresh

MsgBox "La Entrada Número: " & 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 número de parte no se halle en la base de datos y cuando campo no sea llenado.



Código del botón Buscar Entrada:

Private Sub Command3_Click()

Dim j As Integer

j = Val(InputBox("Introduce el Número de la Entrada que Buscas", "Búsqueda de Entradas"))

Data1.Recordset.FindFirst "nodeentrada=" & j

If Data1.Recordset.NoMatch Then

MsgBox "La Entrada Número: " & j & " No está en la Base de Datos", vbExclamation, "Búsqueda de Entradas"

End If

End Sub



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



Código del botón Eliminar Entrada:

Private Sub Command4_Click()

If MsgBox("¿Estás Seguro de Eliminar la Entrada Número: " & Text1 & "?", vbCritical + vbYesNo, "Eliminación de Entradas") = vbYes Then

Data1.Recordset.Delete

Data1.Refresh

MSFlexGrid1.Refresh

MsgBox "Muy Bien, Eliminaste la Entrada", vbExclamation, "Eliminación de Entradas"

Else

MsgBox "No se Eliminó la Entrada Número: " & Text1, vbExclamation, "Eliminación de Entradas"

End If

End Sub



Para eliminar registros y notificar al usuario.



Código de la caja de texto4 (Descripción):

Private Sub Text4_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii = 13 Then

Text5.SetFocus

End If

End Sub



Para introducir sólo mayúsculas y avanzar a la siguiente caja de texto con Enter.



Formulario Salidas de los Productos

En el formulario coloca seis etiquetas, seis cajas de texto, dos controles Data, un MSFlexGrid y cuatro botones como se ve a continuación.












1. Conectando los controles Data

a) 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 mostrarán en el formulario.



2. Conectando las cajas de texto

a) 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.





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.











Codificando

Código del formulario Salidas:

Private Sub Form_Load()

MSFlexGrid1.ColWidth(0) = 350

MSFlexGrid1.ColWidth(1) = 1000

MSFlexGrid1.ColWidth(2) = 1100

MSFlexGrid1.ColWidth(3) = 1000

MSFlexGrid1.ColWidth(4) = 1550

MSFlexGrid1.ColWidth(5) = 800

MSFlexGrid1.ColWidth(6) = 800

Text1.Enabled = False

End 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.



Código del menú Archivo, Volver al Menú:

Private Sub volveralmenu_Click()

frmsalidas.Hide

frminicio.Show

End Sub



Para volver al menú principal



Código del botón Agregar Salida:

Private Sub Command1_Click()

Data2.RecordSource = "select max(nodesalida) as lassalidas from salidas"

Data2.Refresh

Data1.Recordset.AddNew

If IsNull(Data2.Recordset!lassalidas) Then

Text1 = 1

Else

Text1 = Data2.Recordset!lassalidas + 1

End If

Text1.Enabled = False

Text2.SetFocus

Text3 = ""

Text4 = ""

Text5 = ""

Text6 = ""End Sub



Para mediante el data2 obtener el número de registro o producto más alto y agregarle una unidad, de manera que este número se mostrará automáticamente, el usuario iniciará su captura de datos en la caja de texto2.











Código del botón Guardar Salida:

Private Sub Command2_Click()

If Text2 = "" Then

MsgBox "Por Favor Introduce la Fecha", , "Aviso Importante"

Text2.SetFocus

Exit Sub

End If



If Text3 = "" Then

MsgBox "Por Favor Introduce el Número de Parte", , "Aviso Importante"

Text3.SetFocus

Exit Sub

End If



If Text4 = "" Then

MsgBox "Por Favor Introduce la Descripción", , "Aviso Importante"

Text4.SetFocus

Exit Sub

End If



If Text5 = "" Then

MsgBox "Por Favor Introduce la Cantidad", , "Aviso Importante"

Text5.SetFocus

Exit Sub

End If



If Text6 = "" Then

MsgBox "Por Favor Introduce el Costo", , "Aviso Importante"

Text6.SetFocus

Exit Sub

End If



Dim w As Long

w = Val(Text1)

Data1.UpdateRecord

Data1.Refresh

MSFlexGrid1.Refresh

MsgBox "La Salida Número: " & 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.













Código del botón Buscar Salida:

Private Sub Command3_Click()

Dim c As Integer

c = Val(InputBox("Introduce el Número de la Salida que Buscas", "Búsqueda de Salidas"))

Data1.Recordset.FindFirst "nodesalida=" & c

If Data1.Recordset.NoMatch Then

MsgBox "La Salida Número: " & c & " No está en la Base de Datos", vbExclamation, "Búsqueda de Salidas"

End If

End Sub



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



Código del botón Eliminar Salida:

Private Sub Command4_Click()

If MsgBox("¿Estás Seguro de Eliminar la Salida Número: " & Text1 & "?", vbCritical + vbYesNo, "Eliminación de Salidas") = vbYes Then

Data1.Recordset.Delete

Data1.Refresh

MSFlexGrid1.Refresh

MsgBox "Muy Bien, Eliminaste la Salida", vbExclamation, "Eliminación de Salidas"

Else

MsgBox "No se Eliminó la Salida Número: " & Text1, vbExclamation, "Eliminación de Salidas"

End If

End Sub



Para eliminar registros y notificar al usuario.



Código de la caja de texto4 (Descripción):

Private Sub Text4_KeyPress(KeyAscii As Integer)

KeyAscii = Asc(UCase(Chr(KeyAscii)))

If KeyAscii = 13 Then

Text5.SetFocus

End If

End Sub



Para introducir sólo mayúsculas y avanzar a la siguiente caja de texto con Enter.























Formulario Inventario de los Productos

En el formulario coloca seis etiquetas, seis cajas de texto, tres controles Data y un botón como se ve a continuación.








1. Conectando los controles Data

a) 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 texto

a) 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 conectarán las tres primeras cajas de texto al control Data1.



Codificando

Código del formulario Inventario de los Productos:

Private Sub Form_Load()

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = False

Text5.Enabled = False

Text6.Enabled = False

End Sub



Para deshabilitar las cajas de texto ya que los campos serán sólo para consulta.



Código del menú Archivo, Volver al Menú:

Private Sub volveralmenu_Click()

frminventario.Hide

frminicio.Show

End Sub



Para volver al menú principal



Código del botón Buscar Producto:

Private Sub Command1_Click()

Dim t As Integer

t = Val(InputBox("Introduce el Número del Producto que Buscas", "Búsqueda de Productos"))

Data1.Recordset.FindFirst "nodeparte=" & t

Data2.RecordSource = "select sum(cantidad) as totalentradas from entradas where nodeparte=" & Text1

Data2.Refresh

If IsNull(Data2.Recordset!totalentradas) Then

MsgBox "El Producto Número: " & t & " No Tiene Entradas", vbCritical, "Aviso Importante"

Text4 = ""

Exit Sub

Else

Text4 = Data2.Recordset!totalentradas

End If

Data3.RecordSource = "select sum(cantidad) as totalsalidas from salidas where nodeparte=" & Text1

Data3.Refresh

If IsNull(Data3.Recordset!totalsalidas) Then

MsgBox "El Producto Número: " & t & " No Tiene Salidas", vbCritical, "Aviso Importante"

Text5 = ""

Exit Sub

Else

Text5 = Data3.Recordset!totalsalidas

End If

Text6 = Text4 - Text5

If Data1.Recordset.NoMatch Then

MsgBox "El Producto Número: " & t & " No está en la Base de Datos", vbExclamation, "Búsqueda de Productos"

End 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.

jueves, 8 de abril de 2010

Ejemplos de codigos para su proyecto


















































código para verificar contraseña





































código para el botón que llama a un formulario















Código para el boton salir




A continuación les dejo un link para aquellos que estan diseñando su proyecto "Inventario"