Sie sind auf Seite 1von 18

ModuleDeclare

''' variables de BD y Tables


Global Base As New ADODB.Connection
Global RsUsuarios As New ADODB.Recordset
Global RsClientes As New ADODB.Recordset
Global RsDistritos As New ADODB.Recordset
Global RsProductos As New ADODB.Recordset
Global RsFactura As New ADODB.Recordset
Global Rsdetallefactura As New ADODB.Recordset
Global Rstemporalfactura As New ADODB.Recordset
'' Variables de uso
Global Modi As Boolean
Global codigoclientes As Integer
Global NombresClientes As String
Global codigoDistrito As Integer
Global codigoProductos As Integer
Global SubTotal As Double
Private Sub Form_Load()
Usuarios
End Sub
ModuleSentences
Sub main()
With Base
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\aprendeviendo.mdb;Persist Security Info=False"
'LoginForm.Show
PrincipalForm.Show
End With
End Sub
''' tabla usuario
Sub Usuarios()
With RsUsuarios
If .State = 1 Then .Close
.Open "select * from UsuariosTable", Base, adOpenStatic, adLockOptimistic
End With
End Sub
'''tabla clientes
Sub Clientes()
With RsClientes
If .State = 1 Then .Close
.Open "select * from ClientesTable", Base, adOpenStatic, adLockOptimistic
End With
End Sub
'''tabla distritos
Sub Distritos()
With RsDistritos
If .State = 1 Then .Close
.Open "select * from DistritosTable", Base, adOpenStatic, adLockOptimistic
End With
End Sub
'''tabla productos
Sub Productos()

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

If MsgBox("Desea eliminar el registro " & GrillaClientes.Columns(1).Text,


vbInformation + vbYesNo) = vbYes Then
.Delete
.Requery
codigoclientes = 0
End If
End If
End With
End If
End Sub
Private Sub CmdGrabar_Click()
'' validar
If TxtNombres.Text = "" Then MsgBox "El campo Nombres esta vacio",
vbInformation, "Aviso": TxtNombres.SetFocus: Exit Sub
If TxtApellidos.Text = "" Then MsgBox "El campo Apellidos esta vacio",
vbInformation, "Aviso": TxtApellidos.SetFocus: Exit Sub
If TxtDireccion.Text = "" Then MsgBox "El campo Direccion esta vacio",
vbInformation, "Aviso": TxtDireccion.SetFocus: Exit Sub
If TxtTelefono.Text = "" Then MsgBox "El campo Telefono esta vacio",
vbInformation, "Aviso": TxtTelefono.SetFocus: Exit Sub
If TxtCorreo.Text = "" Then MsgBox "El campo E-mail esta vacio",
vbInformation, "Aviso": TxtCorreo.SetFocus: Exit Sub
If DTCDistrito.Text = "" Then MsgBox "El campo Distrito esta vacio",
vbInformation, "Aviso": DTCDistrito.SetFocus: Exit Sub
'' preguntar si es un nuevo registro MODI=FALSE
If Modi = False Then '''CREAR NUEVO REGISTRO
With RsClientes
.Requery
.AddNew
!nombres = TxtNombres.Text
!apellidos = TxtApellidos.Text
!direccion = TxtDireccion.Text
!telefono = TxtTelefono.Text
!mail = TxtCorreo.Text
'''cambiar el nombre del distrito por su codigo
Dim codigoDistrito
With RsDistritos
.Requery
.Find "distrito='" & Trim(DTCDistrito.Text) & "'"
codigoDistrito = !codigo
End With
!distrito = codigoDistrito
.Update
.Requery
End With
Else '''''''''''''''EL MODI=TRUE -------> MODIFICAR LOS DATOS DE UN
REGISTRO EXISTENTE

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

If MsgBox("Esta seguro de eliminar: " & GrillaProductos.Columns(1).Text,


vbInformation + vbYesNo) = vbYes Then
With RsProductos
.Requery
.Find "codigo='" & Val(GrillaProductos.Columns(0).Text) & "'"
.Delete
.Requery
limpiar
End With
Label6.Caption = ""
End If
End Sub
Private Sub CmdGrabar_Click()
''grabar
If TxtProducto.Text = "" Then MsgBox "Ingrese el nombre del producto",
vbInformation: TxtProducto.SetFocus: Exit Sub
If TxtDescripcion.Text = "" Then MsgBox "Ingrese la descripcion del
producto", vbInformation: TxtDescripcion.SetFocus: Exit Sub
If TxtPrecio.Text = "" Then MsgBox "Ingrese el precio de este producto",
vbInformation: TxtPrecio.SetFocus: Exit Sub
If TxtStock.Text = "" Then MsgBox "Ingrese el stock del producto",
vbInformation: TxtStock.SetFocus: Exit Sub
''' metodo de grabar
If Modi = False Then '' quiere decir que es NUEVO
With RsProductos
.Requery
.AddNew
!nombre_producto = TxtProducto.Text
!descripcion = TxtDescripcion.Text
!cantidad = TxtStock.Text
!precio = TxtPrecio.Text
.Update
.Requery
End With
Else ''' quiere decir que va a modificar
With RsProductos
.Requery
.Find "codigo='" & Trim(GrillaProductos.Columns(0).Text) & "'"
'' como yo se que si existe
!nombre_producto = TxtProducto.Text
!descripcion = TxtDescripcion.Text
!cantidad = TxtStock.Text
!precio = TxtPrecio.Text
.UpdateBatch
.Requery
End With
End If

''luego de grabar nuevo o modificar algun existente


botones True, False
limpiar
Label6.Caption = ""
End Sub
Private Sub CmdModificar_Click()
botones False, True
TxtProducto.SetFocus
Modi = True
End Sub
Private Sub CmdNuevo_Click()
botones False, True
limpiar
TxtProducto.SetFocus
Modi = False
Label6.Caption = ""
End Sub
Private Sub CmdSalir_Click()
Unload Me
End Sub
Private Sub Form_Load()
Productos
'' para grilla
Set GrillaProductos.DataSource = RsProductos
'' botones
botones True, False
End Sub
Sub limpiar()
TxtProducto.Text = ""
TxtDescripcion.Text = ""
TxtPrecio.Text = ""
TxtStock.Text = ""
End Sub
Private Sub GrillaProductos_Click()
''' que sucede si eligo algo y la tabla esta vacia
''' no deberia llenar nada y me saldria error
''' para evitar esto
With RsProductos
If .EOF Or .BOF Then Exit Sub
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 With
End Sub
PrincipalForm

Private Sub MDIForm_Load()


Usuarios
End Sub
Private Sub MnuBuscarUsuario_Click()
buscar = InputBox("Ingrese el ID del usuario que desea buscar", "Buscar",
"Ingrese ID de usuario")
If buscar = "" Then
MsgBox "No se ingreso ningun id de usuario", vbInformation, "Aviso"
Exit Sub
Else
With RsUsuarios
.Requery
.Find "Id='" & Trim(buscar) & "'"
If .EOF Then
MsgBox "No se encontro ningun usuario con el Id:" & buscar
Exit Sub
Else
MsgBox "!!!!Usuario Encontrado" & vbNewLine & "Id=" & Trim(!id) &
vbNewLine & "Propietario=" & Trim(!nombres) & " " & Trim(!apellidos) &
vbNewLine & "Telefono=" & Trim(!telefono) & vbNewLine & "Fecha de
Registro:" & Trim(!fecha), vbInformation, "Usuario Encontrado"
End If
End With
End If
End Sub
Private Sub MnuClientes_Click()
ClientesForm.Show vbModal
End Sub
Private Sub MnuCrearUsuario_Click()
CrearUsuariosForm.Show
End Sub
Private Sub MnuEliminarUsuario_Click()
'' obtenido el nombre de usuario
nombreUsuario = InputBox("Ingrese el Nombre del Usuario que Desee
Eliminar", "Eliminar", "Ingrese Usuario")
'' buscar el usuario en nuestra tabla
If nombreUsuario = "" Then
MsgBox "Debe ingresar un nombre de Usuario", vbInformation, "Aviso"
Exit Sub
Else
With RsUsuarios
'.Requery
.Find "Id='" & Trim(nombreUsuario) & "'"
'si no encuentra el usuario
If .EOF Then
MsgBox "No se encontro ningun usuario con ese nombre", vbInformation,
"Aviso"

.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

If Val(TxtCantidadProducto.Text) > Val(TxtCantidad.Text) Then MsgBox "No


tenemos esa cantidad de este producto", vbInformation, "Aviso":
TxtCantidadProducto.SetFocus: Exit Sub
''' validar que el producto no se encuentre ya en el detalle
With Rstemporalfactura
.Requery
.Find "codproducto='" & Val(LblCodigoProducto.Caption) & "'"
If .EOF Then Else MsgBox "Este producto ya ha sido agregado a esta
compra", vbInformation, "Aviso": Exit Sub
End With
FormatoGrillaTemporal
''grabar el temporal
With Rstemporalfactura
.Requery
.AddNew
!factura = Val(TxtFactura.Text)
!codproducto = Val(LblCodigoProducto.Caption)
!producto = TxtProducto.Text
!cantidad = Val(TxtCantidadProducto.Text)
!precio = CDbl(TxtPrecio.Text)
!importe = Val(TxtCantidadProducto.Text) * CDbl(TxtPrecio.Text)
.Update
End With
FormatoGrillaTemporal
'''Calcular los totales
SubTotal = SubTotal + (Val(TxtCantidadProducto.Text) * CDbl(TxtPrecio.Text))
TxtSubTotal.Text = SubTotal
TxtIGV.Text = SubTotal * 0.19
TxtTotal.Text = SubTotal + (SubTotal * 0.19)
End Sub
Private Sub CmdFacturar_Click()
''Validar que se elgio un cliente
If LblCodigoCliente.Caption = "" Then MsgBox "Debe elgir un cliente de la
lista", vbInformation, "Aviso": Exit Sub
'' Validar es que el detalle-temporal tenga por lo menos un producto
With Rstemporalfactura
.Requery
If .BOF Or .EOF Then MsgBox "No se ha agregado ningun producto al
detalle", vbInformation, "Aviso": FormatoGrillaTemporal: Exit Sub Else
FormatoGrillaTemporal
End With
''Agregar factura
With RsFactura
.Requery
.AddNew
!numerofactura = TxtFactura.Text
!fecha = Date

!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

Global Base As New ADODB.Connection


Global RsUsuarios As New ADODB.Recordset
Sub main()
With Base
.CursorLocation = adUseClient
.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path &
"\NWIND.MDB;Persist Security Info=False"
LoginForm.Show
End With
End Sub
Sub usuarios()
With RsUsuarios
If .State = 1 Then .Close
.Open "select * from Usuarios", Base, adOpenStatic, adLockOptimistic
End With
End Sub
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 'actualizar tabla


.Find "id='" & Trim(txtuser.Text) & "'" 'busqueda comparando ID con txtuser
If .EOF Then ' si no encuentro nada
MsgBox " usuario incorrecto", vbInformation, "aviso" ' mensaje de error
txtuser.Text = ""
Exit Sub ' dejo de ejecutar este sub
Else ''caso contrario
If !clave = Trim(txtpass.Text) Then ' pregunto si la clave es correcta
newuserform.Show ' muestro el siguiente formulario
Unload Me
Else ' caso contrario
MsgBox "clave incorrecta", vbInformation, "aviso" ' mensaje de error
txtpass.Text = ""
Exit Sub ' dejo de ejecutar este sub
End If
End If
End With
End Sub
Private Sub Form_Load()
Usuarios
End Sub

Das könnte Ihnen auch gefallen