Beruflich Dokumente
Kultur Dokumente
With RsProductos
If .State = 1 Then .Close
.Open "Select * from Productos", Base, adOpenStatic, adLockOptimistic
End With
End Sub
'''tabla factura
Sub factura()
With RsFactura
If .State = 1 Then .Close
.Open "Select * from factura", Base, adOpenStatic, adLockOptimistic
End With
End Sub
'''tabla detallefactura
Sub detallefactura()
With Rsdetallefactura
If .State = 1 Then .Close
.Open "Select * from detallefactura", Base, adOpenStatic, adLockOptimistic
End With
End Sub
'''tabla temporalfactura
Sub temporalfactura()
With Rstemporalfactura
If .State = 1 Then .Close
.Open "Select * from temporalfactura", Base, adOpenStatic,
adLockOptimistic
End With
End Sub
LoginForm
Private Sub CmdCerrar_Click()
Unload Me
End Sub
Private Sub cmdok_Click()
If txtuser.Text = "" Then MsgBox "Ingrese nombre de Usuario",
vbInformation, "Aviso": txtuser.SetFocus: Exit Sub
If txtpass.Text = "" Then MsgBox "Ingrese clave de Usuario", vbInformation,
"Aviso": txtpass.SetFocus: Exit Sub
With RsUsuarios
.Requery
.Find "id='" & Trim(txtuser.Text) & "'"
If .EOF Then
MsgBox " usuario incorrecto", vbInformation, "aviso"
txtuser.Text = ""
Exit Sub
Else
If !clave = Trim(txtpass.Text) Then
PrincipalForm.Show
Unload Me
Else
MsgBox "clave incorrecta", vbInformation, "aviso"
txtpass.Text = ""
Exit Sub
End If
End If
End With
End Sub
Private Sub Form_Load()
Usuarios
End Sub
CrearUsuariosForm
Private Sub CmdCrear_Click()
If TXTID.Text = "" Then MsgBox "el campo ID no puede ser vacio",
vbInformation, "Aviso": TXTID.SetFocus: Exit Sub
If TXTCLAVE.Text = "" Then MsgBox "el campo CLAVE no puede ser vacio",
vbInformation, "Aviso": TXTCLAVE.SetFocus: Exit Sub
If TXTNOMBRE.Text = "" Then MsgBox "el campo NOMBRE no puede ser
vacio", vbInformation, "Aviso": TXTNOMBRE.SetFocus: Exit Sub
If TXTAPELLIDOS.Text = "" Then MsgBox "el campo APELLIDOS no puede ser
vacio", vbInformation, "Aviso": TXTAPELLIDOS.SetFocus: Exit Sub
If TXTDIRECCION.Text = "" Then MsgBox "el campo DIRECCION no puede ser
vacio", vbInformation, "Aviso": TXTDIRECCION.SetFocus: Exit Sub
If TXTTELEFONO.Text = "" Then MsgBox "el campo TELEFONO no puede ser
vacio", vbInformation, "Aviso": TXTTELEFONO.SetFocus: Exit Sub
With RsUsuarios
.Requery
.AddNew
!id = TXTID.Text
!clave = TXTCLAVE.Text
!nombres = TXTNOMBRE.Text
!apellidos = TXTAPELLIDOS.Text
!direccion = TXTDIRECCION.Text
!telefono = TXTTELEFONO.Text
!fecha = DTPFECHA.Value
.Update
.Requery
limpiar
End With
End Sub
Private Sub Form_Load()
Usuarios
Set GrillaUsuarios.DataSource = RsUsuarios
End Sub
Sub limpiar()
TXTID.Text = ""
TXTCLAVE.Text = ""
TXTNOMBRE.Text = ""
TXTAPELLIDOS.Text = ""
TXTDIRECCION.Text = ""
TXTTELEFONO.Text = ""
DTPFECHA.Value = Date
TXTID.SetFocus
End Sub
ClientesForm
Private Sub CmdBuscar_Click()
NombresClientes = InputBox("Ingrese nombre que desee buscar",
"Busqueda", "Ingrese nombre")
If NombresClientes = "" Then
MsgBox "No se ingreso ningun texto", vbInformation
Exit Sub
Else
''' si se ingreso texto
With RsClientes
.Requery
.Find "nombres='" & Trim(NombresClientes) & "'"
If .EOF Then
MsgBox "No se encontro nigun registro", vbInformation
Exit Sub
Else
''' llenar los datos encontrados en las cajas de texto
TxtNombres.Text = !nombres
TxtApellidos.Text = !apellidos
TxtDireccion.Text = !direccion
TxtTelefono.Text = !telefono
TxtCorreo.Text = !mail
Dim vari
vari = !distrito
'''cambiar el nombre del distrito por su codigo
Dim Distrito123
With RsDistritos
.Requery
.Find "codigo='" & Trim(vari) & "'"
Distrito123 = !distrito
End With
DTCDistrito = Distrito123
End If
End With
End If
End Sub
Private Sub CmdCancelar_Click()
habilitarbotones True, False
Habilitarcajas True
limpiar
End Sub
Private Sub CmdEliminar_Click()
If codigoclientes = 0 Then
MsgBox "elija un registro de la grilla", vbInformation
Exit Sub
Else
With RsClientes
.Find "codigo='" & Trim(codigoclientes) & "'"
If .EOF Then '''sino encontro el registro
MsgBox "No se encontro registro", vbInformation
Exit Sub
Else
With RsClientes
.Requery
.Find "codigo='" & Trim(codigoclientes) & "'"
!nombres = TxtNombres.Text
!apellidos = TxtApellidos.Text
!direccion = TxtDireccion.Text
!telefono = TxtTelefono.Text
!mail = TxtCorreo.Text
'''cambiar el nombre del distrito por su codigo
Dim codigoDistrito2
With RsDistritos
.Requery
.Find "distrito='" & Trim(DTCDistrito.Text) & "'"
codigoDistrito2 = !codigo
End With
!distrito = codigoDistrito2
.UpdateBatch
.Requery
End With
End If
Habilitarcajas True
habilitarbotones True, False
cerrargrilla
End Sub
Private Sub CmdModificar_Click()
Habilitarcajas False
Modi = True
habilitarbotones False, True
End Sub
Private Sub CmdNuevo_Click()
Habilitarcajas False
limpiar
Modi = False
habilitarbotones False, True
End Sub
Private Sub CmdSalir_Click()
Unload Me
End Sub
Private Sub Form_Load()
Clientes
Distritos
''' Agregar los distritos al Datacombo
Set DTCDistrito.RowSource = RsDistritos
DTCDistrito.BoundColumn = "Distrito"
DTCDistrito.ListField = "Distrito"
'' llenar grilla de clientes
Set GrillaClientes.DataSource = RsClientes
cerrargrilla
Habilitarcajas True
habilitarbotones True, False
End Sub
Sub cerrargrilla()
GrillaClientes.Columns(0).Locked = True
GrillaClientes.Columns(1).Locked = True
GrillaClientes.Columns(2).Locked = True
GrillaClientes.Columns(3).Locked = True
GrillaClientes.Columns(4).Locked = True
GrillaClientes.Columns(5).Locked = True
GrillaClientes.Columns(6).Locked = True
GrillaClientes.Columns(0).Width = 0
End Sub
Public Sub Habilitarcajas(estado As Boolean)
TxtNombres.Locked = estado
TxtApellidos.Locked = estado
TxtDireccion.Locked = estado
TxtTelefono.Locked = estado
TxtCorreo.Locked = estado
DTCDistrito.Locked = estado
End Sub
Sub limpiar()
TxtNombres.Text = ""
TxtApellidos.Text = ""
TxtDireccion.Text = ""
TxtTelefono.Text = ""
TxtCorreo.Text = ""
DTCDistrito.Text = ""
TxtNombres.SetFocus
End Sub
Public Sub habilitarbotones(estado1 As Boolean, estado2 As Boolean)
CmdNuevo.Enabled = estado1
CmdGrabar.Enabled = estado2
CmdCancelar.Enabled = estado2
CmdModificar.Enabled = estado1
CmdEliminar.Enabled = estado1
CmdBuscar.Enabled = estado1
End Sub
Private Sub GrillaClientes_Click()
With RsClientes
If .BOF Or .EOF Then Exit Sub
codigoclientes = GrillaClientes.Columns(0).Text
End With
End Sub
ModificarUsuariosForm
Private Sub CmdCerrar_Click()
Unload Me
End Sub
Private Sub CmdCrear_Click()
If TXTID.Text = "" Then MsgBox "el campo ID no puede ser vacio",
vbInformation, "Aviso": TXTID.SetFocus: Exit Sub
If TXTCLAVE.Text = "" Then MsgBox "el campo CLAVE no puede ser vacio",
vbInformation, "Aviso": TXTCLAVE.SetFocus: Exit Sub
If TXTNOMBRE.Text = "" Then MsgBox "el campo NOMBRE no puede ser
vacio", vbInformation, "Aviso": TXTNOMBRE.SetFocus: Exit Sub
If TXTAPELLIDOS.Text = "" Then MsgBox "el campo APELLIDOS no puede ser
vacio", vbInformation, "Aviso": TXTAPELLIDOS.SetFocus: Exit Sub
If TXTDIRECCION.Text = "" Then MsgBox "el campo DIRECCION no puede ser
vacio", vbInformation, "Aviso": TXTDIRECCION.SetFocus: Exit Sub
If TXTTELEFONO.Text = "" Then MsgBox "el campo TELEFONO no puede ser
vacio", vbInformation, "Aviso": TXTTELEFONO.SetFocus: Exit Sub
With RsUsuarios
.Requery
.Find "codigo='" & Val(Lblcodigo.Caption) & "'"
!id = TXTID.Text
!clave = TXTCLAVE.Text
!nombres = TXTNOMBRE.Text
!apellidos = TXTAPELLIDOS.Text
!direccion = TXTDIRECCION.Text
!telefono = TXTTELEFONO.Text
!fecha = DTPFECHA.Value
.UpdateBatch
.Requery
limpiar
End With
End Sub
Sub limpiar()
TXTID.Text = ""
TXTCLAVE.Text = ""
TXTNOMBRE.Text = ""
TXTAPELLIDOS.Text = ""
TXTDIRECCION.Text = ""
TXTTELEFONO.Text = ""
DTPFECHA.Value = Date
End Sub
Private Sub Form_Load()
Usuarios
Set GrillaUsuarios.DataSource = RsUsuarios
End Sub
Private Sub GrillaUsuarios_Click()
With RsUsuarios
If .BOF Or .EOF Then Exit Sub
.Find "codigo='" & Val(GrillaUsuarios.Columns(0).Text) & "'"
Lblcodigo.Caption = !codigo
TXTID.Text = !id
TXTCLAVE.Text = !clave
TXTNOMBRE.Text = !nombres
TXTAPELLIDOS.Text = !apellidos
TXTDIRECCION.Text = !direccion
TXTTELEFONO.Text = !telefono
DTPFECHA.Value = !fecha
End With
End Sub
FrmProductos
Sub botones(v1 As Boolean, v2 As Boolean)
CmdNuevo.Enabled = v1
CmdGrabar.Enabled = v2
CmdModificar.Enabled = v1
CmdEliminar.Enabled = v1
CmdCancelar.Enabled = v2
CmdBuscar.Enabled = v1
End Sub
Private Sub CmdBuscar_Click()
busca = InputBox("Ingrese el nombre del producto que desea buscar",
"Buscar")
If busca = "" Then Exit Sub
With RsProductos
.Requery
.Find "nombre_producto='" & Trim(busca) & "'"
If .EOF Then
MsgBox "No se encontro ningun producto con este nombre"
Exit Sub
Else
TxtProducto.Text = GrillaProductos.Columns(1).Text
TxtDescripcion.Text = GrillaProductos.Columns(2).Text
TxtPrecio.Text = GrillaProductos.Columns(3).Text
TxtStock.Text = GrillaProductos.Columns(4).Text
Label6.Caption = GrillaProductos.Columns(0).Text
End If
End With
End Sub
Private Sub CmdCancelar_Click()
botones True, False
limpiar
Label6.Caption = ""
End Sub
Private Sub CmdEliminar_Click()
If Label6.Caption = "" Then MsgBox "Debe elegir un registro de la lista para
poder eliminarlo", vbInformation, "Aviso": Exit Sub
.Requery
Exit Sub
Else
'' si encontro usuario
If MsgBox("Desea Eliminar a:" & nombreUsuario, vbInformation + vbYesNo,
"Eliminar") = vbYes Then
.Delete
.Requery
Else
.Requery
End If
End If
End With
End If
End Sub
Private Sub MnuFactura_Click()
FrmFactura.Show
End Sub
Private Sub MnuModificarUsuario_Click()
ModificarUsuariosForm.Show
End Sub
Private Sub MnuProductos_Click()
FrmProductos.Show
End Sub
Private Sub MnuSalir_Click()
If MsgBox("Desea Salir del Sistema", vbInformation + vbYesNo, "aviso") =
vbYes Then
Unload Me
End If
End Sub
FrmFactura
Private Sub CmdAgregarProducto_Click()
''validar numero de factura
If Val(TxtFactura.Text) = 0 Then
MsgBox "Ingrese el numero de factura", vbInformation, "Aviso"
TxtFactura.SetFocus
Exit Sub
End If
''validar la cantidad a comprar
If Val(TxtCantidadProducto.Text) = 0 Then MsgBox "Ingrese la cantidad del
producto", vbInformation, "Aviso": TxtCantidadProducto.SetFocus: Exit Sub
''' validar que realmente se ha elegido un producto de la lista
If LblCodigoProducto.Caption = "" Then MsgBox "Debe elegir un producto",
vbInformation, "Aviso": Exit Sub
''' validar que la cantidad a comprar sea menor a la cantidad en stock del
producto
!codcliente = Val(LblCodigoCliente.Caption)
!SubTotal = SubTotal
!igv = SubTotal * 0.19
!total = SubTotal + (SubTotal * 0.19)
.Update
End With
'' agregar detalle
Dim Registros As Integer
Registros = Rstemporalfactura.RecordCount
Rstemporalfactura.Requery
Rstemporalfactura.MoveFirst
For x = 1 To Registros
With Rsdetallefactura
.Requery
.AddNew
!factura = GrillaDetalleFactura.Columns(1).Text
!codproducto = GrillaDetalleFactura.Columns(2).Text
!cantidad = GrillaDetalleFactura.Columns(4).Text
!precio = GrillaDetalleFactura.Columns(5).Text
!importe = GrillaDetalleFactura.Columns(6).Text
.Update
End With
If x = Registros Then Else Rstemporalfactura.MoveNext
Next
'' enviar un mensaje de confirmacion: se facturo correctamente
MsgBox "La factura fue creada correctamente", vbInformation, "Aviso"
'' borrar el temporal
BorrarTemporal
''salir
Unload Me
End Sub
Sub BorrarTemporal()
With Rstemporalfactura
.Requery
If .BOF Or .EOF Then Exit Sub
For x = 1 To .RecordCount
.Delete
If .BOF Or .EOF Then Exit Sub
.MoveNext
Next
End With
End Sub
Private Sub DcboNombreCliente_Change()
With RsClientes
.Requery
.Find "Nombres='" & Trim(DcboNombreCliente.Text) & "'"
TxtDni.Text = !Dni
TXTDIRECCION.Text = !direccion
TXTTELEFONO.Text = !telefono
LblCodigoCliente.Caption = !distrito
''' para distrito
Distritos
With RsDistritos
.Requery
.Find "codigo='" & Trim(LblCodigoCliente.Caption) & "'"
TxtDistrito.Text = !distrito
End With
End With
End Sub
Private Sub Form_Load()
''' Abrir conexion a las tablas involucradas en la facturacion
factura
detallefactura
temporalfactura
Productos
Clientes
'' cargar datos del cliente en el combo
Set DcboNombreCliente.RowSource = RsClientes
DcboNombreCliente.BoundColumn = "Nombres"
DcboNombreCliente.ListField = "Nombres"
'' cargar detalle de factura
'' cargara temporal ya que es la tabla que contendra los productos que se
estaran vendiendo actualmente
''en este proceso de facturacion
Set GrillaDetalleFactura.DataSource = Rstemporalfactura
FormatoGrillaTemporal
'' para productos
Set GrillaProductos.DataSource = RsProductos
FormatoGrillaProductos
'' borrar temporal
BorrarTemporal
End Sub
Sub FormatoGrillaProductos()
With RsProductos
GrillaProductos.Columns(0).Width = 0
GrillaProductos.Columns(1).Width = 3000
GrillaProductos.Columns(2).Width = 2000
GrillaProductos.Columns(3).Width = 1000
GrillaProductos.Columns(4).Width = 1000
End With
End Sub
Sub FormatoGrillaTemporal()
With Rstemporalfactura
'If .BOF Or .EOF Then Exit Sub
GrillaDetalleFactura.Columns(0).Width = 0
GrillaDetalleFactura.Columns(1).Width = 0
GrillaDetalleFactura.Columns(2).Width = 0
GrillaDetalleFactura.Columns(3).Width = 4000
GrillaDetalleFactura.Columns(4).Width = 1000
GrillaDetalleFactura.Columns(5).Width = 1000
GrillaDetalleFactura.Columns(6).Width = 1000
End With
End Sub
Private Sub GrillaProductos_Click()
With RsProductos
If .BOF Or .EOF Then Exit Sub
LblCodigoProducto.Caption = GrillaProductos.Columns(0).Text
TxtProducto.Text = GrillaProductos.Columns(1).Text
TxtDescripcion.Text = GrillaProductos.Columns(2).Text
TxtCantidad.Text = GrillaProductos.Columns(3).Text
TxtPrecio.Text = GrillaProductos.Columns(4).Text
End With
End Sub