You are on page 1of 6

Desarrolle Aplicaciones Cliente Servidor

Tablas del Sistema


La Tienda Compra Feliz desea automatizar su sistema de facturacin e inventario, para ello requiere registrar la informacin de sus clientes, productos, vendedores, entradas y salidas. En la tienda, clasifica a sus clientes (Cliente A, Cliente B, Cliente C, etc), y registra los siguientes datos Nombres, Apellido, Direccin, Telfono. De los vendedores se necesita: Nombres, Apellidos, Direccin y Telfono. La informacin de los productos a almacenar es: Cdigo, Descripcin, Precio y Existencia.

Tipo Idtipo Tipo Cliente Idcliente Idtipo Nombcliente Ape1cliente Ape2cliente Dircliente Telfcliente Vendedor Idvende Nombvende Ape1vende Ape2vende Dirvende Telfvende Producto Idproducto Desproducto Precioproducto Existencia Factura Numfact Fechafact Idcliente Idvende Char 3 Char 30 clave principal

Char 5 Char 3 Char 30 Char 30 Char 30 Char 60 Char 8

clave principal

Permitir null

Char 3 Char 30 Char 30 Char 30 Char 60 Char 8

clave principal

Permitir null

Char 8 Char 30 numeric Int 4

clave principal Precisin 6 Escala: 2

Char 8 Datetime 8 Char 5 Char 3

clave principal

Prof. Frank Esteban Bez Sequeira. frankbaezsequeira@gmail.com

Desarrolle Aplicaciones Cliente Servidor


DetalleFactura Numfact Char 8 Idproducto Char 8 Preciofact numeric Cantidad Integer

clave principal clave principal Precisin 6 Escala: 2 4

Tiposal Tiposal Dessal Tipoent Tipoent Desent Char 3 Char 30 clave principal

Char 3 Char 30

clave principal

Entradas Identrada Char 8 Fechaent Date / Time Tipoent Char 3 Detent Identrada Idproducto Cantent Precent

clave principal

Char 8 Char 8 Int 4 Numeric

clave principal Clave principal Precisin 6 Escala: 2

Salidas Idsalida Fechasal Tiposal Detsal Idsalida Idproducto Cantsal Precsal

Char 8 Date / Time Char 3

clave principal

Char 8 Char 8 Int 4 Numeric

clave principal Clave principal Precisin 6 Escala: 2

Nota: Explicar: Integridad Referencial (hijo sin padre) Actualizacion y eliminacin en Cascada Diagrama Entidad Relacin Propiedades: Tamao, tipo de datos, Precisin y Escala, Permitir null. Restricciones Check.

Prof. Frank Esteban Bez Sequeira. frankbaezsequeira@gmail.com

Desarrolle Aplicaciones Cliente Servidor


Moddeclara Option Explicit 'En este modulo estandar se declararan todas _ las variables globales a la aplicacion _ que se pueden usar en cualquier formulario 'Las variables declaradas en un modulo estandar _ su ambito es toda la aplicacion 'Como vamos a usar OLE DB para conectarnos a _ la base de datos (sin control ADO), debemos _ agregar la Biblioteca (Microsoft Activex Data _ Object 2.7 Library. Para esto: _ 1. Seleccione del Menu principal Proyecto, Referencias _ 2. Seleccione Microsoft Activex Data _ Object 2.7 Library y presione clic en Aceptar Public conexionsql As ADODB.Connection 'esta variable representara al objeto conexion 'Declaracion de un tipo para la enumeracion, hago esto _ para usar valores mas comprensibles al espaol 'Enum declara un tipo para una enumeracion definida por el usuario 'tipo de bloque Enum tipobloqueo optimista = adLockOptimistic pesimista = adLockPessimistic End Enum 'ubicacion del recordset Enum rslocation servidor = adUseServer cliente = adUseClient End Enum 'estado de registro Enum estadoregistro nuevo = 1 existente = 2 End Enum

Prof. Frank Esteban Bez Sequeira. frankbaezsequeira@gmail.com

Desarrolle Aplicaciones Cliente Servidor


Modprocedimento Option Explicit 'En este modulo estandar se declararan todos _ los procedimientos globales a la aplicacion 'procedimento global que sirve para conectarse a la BAse de Datos Public Sub conectar() 'inicializa la variable de objeto conexionsql Set conexionsql = New ADODB.Connection conexionsql.Provider = "SQLOLEDB.1" conexionsql.ConnectionString = "Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Dacltes;Data Source=Director" 'Initial Catalog es el nombre de la Base de Datos 'Data Source es el nombre del Servidor SQL SERVER conexionsql.Open abro la conexion End Sub 'se debe establecer como objeto inicial sub main Sub main() conectar frmtipo.Show End Sub Public Function GetRecord(SQL As String, lado As rslocation, bloqueo As tipobloqueo) As ADODB.Recordset Dim rstmp As ADODB.Recordset Set rstmp = New ADODB.Recordset rstmp.ActiveConnection = conexionsql rstmp.CursorType = adOpenKeyset rstmp.CursorLocation = lado rstmp.LockType = bloqueo rstmp.Open (SQL) Set GetRecord = rstmp Set rstmp = Nothing End Function Public Function buscar(Rs As ADODB.Recordset, campobusca As String, valorbusca As String) As estadoregistro If Rs.RecordCount > 0 Then Rs.MoveFirst Rs.Find campobusca & "='" & valorbusca & "'" If Rs.EOF Then buscar = nuevo Else buscar = existente End If Else buscar = nuevo End If End Function

Prof. Frank Esteban Bez Sequeira. frankbaezsequeira@gmail.com

Desarrolle Aplicaciones Cliente Servidor


Codigo del Formulario Tipo Option Explicit Dim rstipo As ADODB.Recordset 'Un recordset representa un conjunto de registros Dim bandera As estadoregistro Private Sub cmdeliminar_Click() If MsgBox("Desea Eliminar el registro", vbYesNo + vbCritical, "Catalogo Tipo Cliente") = vbYes Then rstipo.Delete ' Delete para borrar registro actual rstipo.Requery ' Ejecuta de nuevo la consulta del Recordset If rstipo.RecordCount > 0 Then 'Recordcount cuenta cuantos registros hay en el recordset rstipo.Update 'Actualizar End If txtidtipo = "" txttipo = "" txtidtipo.SetFocus cmdeliminar.Enabled = False Else cmdguardar.SetFocus End If End Sub Private Sub cmdguardar_Click() If txtidtipo = "" Then MsgBox "No puede quedar vacio Idtipo", vbInformation, "Validacion" txtidtipo.SetFocus Exit Sub ElseIf txttipo = "" Then MsgBox "No puede quedar vacio Tipo", vbInformation, "Validacion" txttipo.SetFocus Exit Sub End If If bandera = nuevo Then rstipo.AddNew 'AddNew Agregar un nuevo registro rstipo!idtipo = Trim(txtidtipo) 'Trim elimina espacios en blanco a la izq y derecha End If rstipo!Tipo = Trim(txttipo) rstipo.Update rstipo.Requery txtidtipo = "" txttipo = "" cmdeliminar.Enabled = False cmdguardar.Enabled = False txtidtipo.SetFocus End Sub

Prof. Frank Esteban Bez Sequeira. frankbaezsequeira@gmail.com

Desarrolle Aplicaciones Cliente Servidor


Private Sub cmdsalir_Click() Unload Me conexionsql.Close Set conexionsql = Nothing Set frmtipo = Nothing End Sub Private Sub Form_Activate() txtidtipo.SetFocus End Sub Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then Unload Me End If End Sub Private Sub Form_Load() 'selecciona todos los record de la tabla Tipo y se lo asignan a la variable 'rstipo, un recordset es un objeto de acceso a datos que representa una tabla Set rstipo = GetRecord("Select * from Tipo", servidor, optimista) bandera = nuevo End Sub Private Sub Form_Unload(Cancel As Integer) Unload Me End Sub Private Sub txtidtipo_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdguardar.Enabled = True bandera = buscar(rstipo, "idtipo", Trim(txtidtipo)) If bandera = existente Then txttipo.Text = Trim(rstipo!Tipo) cmdeliminar.Enabled = True Else txttipo = "" cmdeliminar.Enabled = False End If txttipo.SetFocus End If End Sub Private Sub txttipo_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then cmdguardar.SetFocus End If End Sub

Prof. Frank Esteban Bez Sequeira. frankbaezsequeira@gmail.com

You might also like