SlideShare une entreprise Scribd logo
1  sur  10
Formulario de Registro de Boleta de Venta




CODIFICACIÓN

En el espacio principal del formulario:

       Option Explicit
       Dim cn As ADODB.Connection
       Dim rsVentas As ADODB.Recordset
       Dim rsDetalle As ADODB.Recordset
       Dim rsArticulos As ADODB.Recordset
       Dim codigo As String
       Dim regreso As Integer


En el formulario mismo:

Private Sub Form_Load()
   Set cn = New ADODB.Connection
   Set rsVentas = New ADODB.Recordset
   With cn
       .Provider = "Microsoft.Jet.OLEDB.4.0"
       .ConnectionString = "Data Source=d:sisventasdataventas.mdb"
       .Open
   End With
   rsVentas.Open "select * from ventas", cn, adOpenStatic, adLockOptimistic
   If rsVentas.RecordCount >= 1 Then
       rsVentas.MoveLast
   End If
                          cNum_mov        =     Right(String(5,     "0")    &
   Trim(Str(Val(rsVentas.Fields("num_mov")) + 1)), 6)
   rsVentas.Close
   Dim cTip_doc As String
   cTip_doc = "B"
rsVentas.Open "select * from ventas Where tip_doc like'" + Trim(cTip_doc) &
  "%" & "' order by num_doc", cn, adOpenStatic, adLockOptimistic
  If rsVentas.RecordCount >= 1 Then
      rsVentas.MoveLast
  End If
  'genera automaticamente el codigo de la factura incrementando 1
  txtNum_bol = Right(String(5, "0") & Trim(Str(Val(rsVentas.Fields("num_doc"))
  + 1)), 6)
  'muestra automaticamente la factura actual
  txtFec_emi.Text = Date
  Exit Sub
End Sub



En el botón de Cmdcliente:



Private Sub cmdcliente_Click()
   frmVen_cli.Show
End Sub



En el botón Agregar:




Private Sub cmdAgregar_Click()
   frmVen_art.Show
End Sub




En el botón Quitar:




Private Sub cmdQuitar_Click()
Dim enc As Integer
Dim asub As Currency
enc = lvwVenta.SelectedItem.Index
Dim y, borrado As Integer
borrado = 0
'Guardar de nuevo los datos que no fueron borrados
For y = 1 To cont
If y = enc Then
       codigo = xCod_art(y)
       regreso = xCantidad(y)
       xCod_art(y) = xCod_art(y + 1)
       xDescripcion(y) = xDescripcion(y + 1)
       xCantidad(y) = xCantidad(y + 1)
       xPrecio(y) = xPrecio(y + 1)
       xSubtotal(y) = xSubtotal(y + 1)
       borrado = 1
   End If
   If borrado = 1 Then
       xCod_art(y) = xCod_art(y + 1)
       xDescripcion(y) = xDescripcion(y + 1)
       xCantidad(y) = xCantidad(y + 1)
       xPrecio(y) = xPrecio(y + 1)
       xSubtotal(y) = xSubtotal(y + 1)
   End If
Next y
cont = cont - 1
lvwVenta.ListItems.Clear
For y = 1 To cont
   Dim nuevo As ListItem
   Set nuevo = lvwVenta.ListItems.Add(, , xCod_art(y))
   nuevo.SubItems(1) = xDescripcion(y)
   MsgBox xDescripcion(y)
   nuevo.SubItems(2) = xCantidad(y)
   nuevo.SubItems(3) = xPrecio(y)
   nuevo.SubItems(4) = xSubtotal(y)
   asub = asub + xSubtotal(y)
Next y
   'Calcula el subtotal, IGV y total
   Static subt As Currency
   txtSubTotal.Text = asub
   txtIgv.Text = Val(txtSubTotal.Text) * 0.19
   txtTotal.Text = Val(txtSubTotal.Text) + Val(txtIgv.Text)

  'Ubicar con el posicion correspondiente para guardar el stock
  Set rsArticulos = New Recordset
  rsArticulos.Open "select * from articulos", cn, adOpenStatic,
adLockOptimistic
  rsArticulos.MoveFirst
  rsArticulos.Find "cod_art='" & codigo & " ' "
  rsArticulos.Fields("stock") = rsArticulos.Fields("stock") + regreso
  rsArticulos.Update
End Sub
En el botón Guardar:




Private Sub cmdGrabar_Click()
   'Guardar los datos en la tabla Ventas
   rsVentas.AddNew
   rsVentas.Fields("num_mov") = cNum_mov
   rsVentas.Fields("tip_mov") = "S"
   rsVentas.Fields("tip_doc") = "B"
   rsVentas.Fields("num_doc") = txtNum_bol.Text
   rsVentas.Fields("cod_cli") = txtCod_cli.Text
   rsVentas.Fields("fec_emi") = txtFec_emi.Text
   rsVentas.Fields("cod_ven") = txtCod_ven.Text
   rsVentas.Update
   'Guardar los datos en la tabla detalle
   Set rsDetalle = New Recordset
   rsDetalle.Open "select * from detalle", cn, adOpenStatic, adLockOptimistic
   Dim x As Integer
   For x = 1 To cont
     With rsDetalle
        .AddNew
        .Fields("num_mov") = txtNum_bol.Text
        .Fields("cod_art") = xCod_art(x)
        .Fields("cantidad") = xCantidad(x)
        .Fields("precio") = xPrecio(x)
        .Update
     End With
   Next x
   cmdGrabar.Enabled = False
   cmdQuitar.Enabled = False
   cmdAgregar.Enabled = False
   cont = 0
   Unload Me
   Exit Sub
End Sub
En el botón Cmdvendedor:




Private Sub cmdVendedor_Click()
   frmVen_ven.Show
End Sub


En el botón Cerrar:




Private Sub Command1_Click()
   End
End Sub


Formulario de Mantenimiento de Clientes




CODIFICACIÓN

En el espacio principal de formulario

       Public nNew As Integer
       Option Explicit
       Dim cn As ADODB.Connection
       Dim rsClientes As ADODB.Recordset
En el formulario mismo

Private Sub Form_Load()
   Set cn = New ADODB.Connection
   Set rsClientes = New ADODB.Recordset
   With cn
      .Provider = "Microsoft.Jet.OLEDB.4.0"
      .ConnectionString = "Data Source=d:sisventasdataventas.mdb"
      .Open
   End With
   rsClientes.ActiveConnection = cn
   rsClientes.Open "Select * from clientes", cn, adOpenStatic, adLockOptimistic
   llenacontroles
   llenalista
   nNew = 1
End Sub


En el botón nuevo




Private Sub cmdNuevo_Click()
   frmMan_cli.Width = 9210
   limpia
   desactivaBotones
   activatext
   If rsClientes.RecordCount = 0 Then
       txtCod_cli = "C0001"
   Else
       rsClientes.MoveLast
                              txtCod_cli.Text    =     "C"     &     Right("0000"   &
        Trim(Str(Val(Right(rsClientes.Fields("cod_cli"), 4)) + 1)), 4)
   End If
   txtApe_cli.SetFocus
   nNew = 1
End Sub

En el botón modificar




Private Sub cmdModificar_Click()
   Dim cCod_cli As String
   cCod_cli = ListView1.SelectedItem.Text
   rsClientes.MoveFirst
   rsClientes.Find "cod_cli='" + Trim(cCod_cli) + "'"
   desactivaBotones
activatext
  llenacontroles
  txtApe_cli.SetFocus
  nNew = 2
  frmMan_cli.Width = 9210
End Sub

En el botón Eliminar




Private Sub cmdEliminar_Click()
   Dim cCod_cli As String
   cCod_cli = ListView1.SelectedItem.Text
   rsClientes.MoveFirst
   rsClientes.Find "cod_cli='" + Trim(cCod_cli) + "'"
   Dim res As String
          res = MsgBox("Está seguro de eliminar al cliente:" + Chr(13) +
   rsClientes.Fields("ape_cli") & ", " & rsClientes.Fields("nom_cli"), vbQuestion
   + vbYesNo + vbDefaultButton2, "Eliminación del Cliente")
   If res = 6 Then
       rsClientes.Delete
       rsClientes.MoveFirst
       llenalista
   End If
End Sub


En el botón Salir




Private Sub cmdCerrar_Click()
   Unload Me
End Sub

Otros dentro de la codificación

Private Sub limpia()
   txtApe_cli.Text = ""
   txtNom_cli.Text = ""
   txtDni.Text = ""
   txtTelefono.Text = ""
   txtDireccion.Text = ""
   txtMail.Text = ""
End Sub
Private Sub desactivaBotones()
   cmdNuevo.Enabled = False
   cmdModificar.Enabled = False
   cmdEliminar.Enabled = False
   cmdCerrar.Enabled = False
   cmdGuardar.Enabled = True
   cmdCancelar.Enabled = True
End Sub

Private Sub activaBotones()
   cmdNuevo.Enabled = True
   cmdModificar.Enabled = True
   cmdEliminar.Enabled = True
   cmdCerrar.Enabled = True
   cmdGuardar.Enabled = False
   cmdCancelar.Enabled = False
End Sub

Private Sub activatext()
   txtApe_cli.Locked = False
   txtNom_cli.Locked = False
   txtDni.Locked = False
   txtTelefono.Locked = False
   txtDireccion.Locked = False
   txtMail.Locked = False
End Sub


Private Sub desactivatext()
   txtApe_cli.Locked = True
   txtNom_cli.Locked = True
   txtDni.Locked = True
   txtTelefono.Locked = True
   txtDireccion.Locked = True
   txtMail.Locked = True
End Sub

Private Sub cmdCancelar_Click()
   activaBotones
   desactivatext
   frmMan_cli.Width = 5850
End Sub

Private Sub llenacontroles()
   If rsClientes.EOF Then
       Exit Sub
   End If
   If rsClientes.BOF Then Exit Sub
   If IsNull(rsClientes("cod_cli")) Then
       txtCod_cli.Text = ""
Else
      txtCod_cli.Text = rsClientes.Fields("cod_cli")
  End If
  If IsNull(rsClientes("ape_cli")) Then
      txtApe_cli.Text = ""
  Else
      txtApe_cli.Text = rsClientes.Fields("ape_cli")
  End If
  If IsNull(rsClientes("nom_cli")) Then
      txtNom_cli.Text = ""
  Else
      txtNom_cli.Text = rsClientes.Fields("nom_cli")
  End If
  If IsNull(rsClientes("telefono")) Then
      txtTelefono.Text = ""
  Else
      txtTelefono.Text = rsClientes.Fields("telefono")
  End If
  If IsNull(rsClientes("dni")) Then
      txtDni.Text = ""
  Else
      txtDni.Text = rsClientes.Fields("dni")
  End If
  If IsNull(rsClientes("direccion")) Then
      txtDireccion.Text = ""
  Else
      txtDireccion.Text = rsClientes.Fields("direccion")
  End If
  If IsNull(rsClientes("mail")) Then
      txtMail.Text = ""
  Else
      txtMail.Text = rsClientes.Fields("mail")
  End If
End Sub


Public Sub SoloNumeros(KeyAscii As Integer)
  Select Case KeyAscii
  Case 8, 46
  Case Is < 48, Is > 57
     KeyAscii = 0
  End Select
End Sub

Private Sub txtApe_cli_LostFocus()
   txtApe_cli.Text = UCase(txtApe_cli)
End Sub
Private Sub txtnom_cli_LostFocus()
   txtNom_cli.Text = UCase(txtNom_cli)
End Sub

Private Sub txtdni_KeyPress(KeyAscii As Integer)
   Call SoloNumeros(KeyAscii)
End Sub

Private Sub txtTelefono_KeyPress(KeyAscii As Integer)
   Call SoloNumeros(KeyAscii)
End Sub

Private Sub llenalista()
   ListView1.ListItems.Clear
   Dim nuevo As ListItem
   Dim i As Integer
   For i = 1 To rsClientes.RecordCount
                      Set nuevo = frmMan_cli.ListView1.ListItems.Add(, ,
    rsClientes.Fields("cod_cli"))
                 nuevo.SubItems(1) = rsClientes.Fields("ape_cli") & ", " &
    rsClientes.Fields("nom_cli")
      nuevo.SubItems(2) = rsClientes.Fields("dni")
      rsClientes.Move (1)
   Next i
End Sub

Private Sub txtBus_Change()
   Dim cBus As String
   cBus = txtBus.Text
   Set rsClientes = New Recordset
     rsClientes.Open "select * from clientes where ape_cli like'" + Trim(cBus) &
   "%" & "'", cn, adOpenStatic, adLockOptimistic
   llenalista
End Sub

Contenu connexe

Tendances

Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasJosé Antonio Sandoval Acosta
 
Formulario Para Los Vendedores
Formulario Para Los VendedoresFormulario Para Los Vendedores
Formulario Para Los Vendedoresjameszx
 
codigos de algunas pantallas
codigos de algunas pantallas codigos de algunas pantallas
codigos de algunas pantallas Dania Archaga
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2xjordi
 
Creación de correo electrónico mediante C#
Creación de correo electrónico mediante C#Creación de correo electrónico mediante C#
Creación de correo electrónico mediante C#José Mora Torres
 
Formularios en Excel
Formularios en ExcelFormularios en Excel
Formularios en Excelbatryjclr
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrenteedgar muñoz
 
Proyecto Poogame Blackjack
Proyecto Poogame BlackjackProyecto Poogame Blackjack
Proyecto Poogame BlackjackEPN
 
Unidad iii ajax
Unidad iii ajaxUnidad iii ajax
Unidad iii ajaxpared1616
 
Ejercicios de c++
Ejercicios de c++Ejercicios de c++
Ejercicios de c++fernandomch
 

Tendances (19)

Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenasTap u2-componentes y librerias-programa para cifrar y descifrar cadenas
Tap u2-componentes y librerias-programa para cifrar y descifrar cadenas
 
Formulario Para Los Vendedores
Formulario Para Los VendedoresFormulario Para Los Vendedores
Formulario Para Los Vendedores
 
Ejemplo de aplicación cliente-servidor en C#
Ejemplo de aplicación cliente-servidor  en C#Ejemplo de aplicación cliente-servidor  en C#
Ejemplo de aplicación cliente-servidor en C#
 
codigos de algunas pantallas
codigos de algunas pantallas codigos de algunas pantallas
codigos de algunas pantallas
 
Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2Introducción a la Progamación en Javascript. Classe 2
Introducción a la Progamación en Javascript. Classe 2
 
Creación de correo electrónico mediante C#
Creación de correo electrónico mediante C#Creación de correo electrónico mediante C#
Creación de correo electrónico mediante C#
 
calculadora en c sharp
calculadora en c sharpcalculadora en c sharp
calculadora en c sharp
 
Programacion ii
Programacion iiProgramacion ii
Programacion ii
 
Ejemploc de caso
Ejemploc de casoEjemploc de caso
Ejemploc de caso
 
Formularios en Excel
Formularios en ExcelFormularios en Excel
Formularios en Excel
 
Agencia de viaje
Agencia de viajeAgencia de viaje
Agencia de viaje
 
Ejercicios de programacion concurrente
Ejercicios de programacion concurrenteEjercicios de programacion concurrente
Ejercicios de programacion concurrente
 
Proyecto Poogame Blackjack
Proyecto Poogame BlackjackProyecto Poogame Blackjack
Proyecto Poogame Blackjack
 
Unidad iii ajax
Unidad iii ajaxUnidad iii ajax
Unidad iii ajax
 
Hechos en clase
Hechos en claseHechos en clase
Hechos en clase
 
Programas en netbeans
Programas en netbeansProgramas en netbeans
Programas en netbeans
 
Ejercicios de c++
Ejercicios de c++Ejercicios de c++
Ejercicios de c++
 
Interpolaion c++
Interpolaion c++Interpolaion c++
Interpolaion c++
 
Cesar lenguaje c_
Cesar lenguaje c_Cesar lenguaje c_
Cesar lenguaje c_
 

En vedette

En vedette (7)

Slides para o Dia mundial de oração
Slides para o Dia mundial de oraçãoSlides para o Dia mundial de oração
Slides para o Dia mundial de oração
 
In Out Ads
In Out AdsIn Out Ads
In Out Ads
 
Totos
TotosTotos
Totos
 
Sm Ster Manual
Sm Ster ManualSm Ster Manual
Sm Ster Manual
 
Dia mundial de oração 2016
Dia mundial de oração 2016Dia mundial de oração 2016
Dia mundial de oração 2016
 
Memoriabetulo2011
Memoriabetulo2011Memoriabetulo2011
Memoriabetulo2011
 
Physical appearance
Physical appearancePhysical appearance
Physical appearance
 

Similaire à Registro de ventas

Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer  Formulario Con Su CodificacióNCrear El Proyecto Y El Primer  Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer Formulario Con Su CodificacióNjameszx
 
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer  Formulario Con Su CodificacióNCrear El Proyecto Y El Primer  Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer Formulario Con Su CodificacióNjameszx
 
Trabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.NetTrabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.NetAlberto Navarro Sorolla
 
Conexion mysql y usos
Conexion mysql y usosConexion mysql y usos
Conexion mysql y usoscompunelson
 
Proyecto de un formulario de facturacion
Proyecto de un formulario de facturacionProyecto de un formulario de facturacion
Proyecto de un formulario de facturacionRoyer Tuesta Salas
 
consultas de visual estudio sistema de ventas
 consultas de visual estudio  sistema de  ventas consultas de visual estudio  sistema de  ventas
consultas de visual estudio sistema de ventasGroup Lliuya
 
Formulario De Ventas Con Los MenúS Y Un Reporte
Formulario De Ventas Con Los MenúS   Y Un ReporteFormulario De Ventas Con Los MenúS   Y Un Reporte
Formulario De Ventas Con Los MenúS Y Un Reportejameszx
 

Similaire à Registro de ventas (20)

Codigo proceso
Codigo procesoCodigo proceso
Codigo proceso
 
Codigo tarea deposito
Codigo tarea depositoCodigo tarea deposito
Codigo tarea deposito
 
Codigo tarea deposito
Codigo tarea depositoCodigo tarea deposito
Codigo tarea deposito
 
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer  Formulario Con Su CodificacióNCrear El Proyecto Y El Primer  Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
 
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer  Formulario Con Su CodificacióNCrear El Proyecto Y El Primer  Formulario Con Su CodificacióN
Crear El Proyecto Y El Primer Formulario Con Su CodificacióN
 
Trabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.NetTrabajando con Procedimientos Almacenados y VB.Net
Trabajando con Procedimientos Almacenados y VB.Net
 
Guia no2 ado.net
Guia no2 ado.netGuia no2 ado.net
Guia no2 ado.net
 
Conexion mysql y usos
Conexion mysql y usosConexion mysql y usos
Conexion mysql y usos
 
Proyecto de un formulario de facturacion
Proyecto de un formulario de facturacionProyecto de un formulario de facturacion
Proyecto de un formulario de facturacion
 
CodigoFelizLombriz
CodigoFelizLombrizCodigoFelizLombriz
CodigoFelizLombriz
 
Separata de vb 2015
Separata de vb 2015Separata de vb 2015
Separata de vb 2015
 
Acmar trucos de visual basic(2)
Acmar   trucos de visual basic(2)Acmar   trucos de visual basic(2)
Acmar trucos de visual basic(2)
 
Eventos-en-visual-basic-60
Eventos-en-visual-basic-60Eventos-en-visual-basic-60
Eventos-en-visual-basic-60
 
Manual tecnico
Manual tecnicoManual tecnico
Manual tecnico
 
consultas de visual estudio sistema de ventas
 consultas de visual estudio  sistema de  ventas consultas de visual estudio  sistema de  ventas
consultas de visual estudio sistema de ventas
 
Clase nro2 vb net 2010 rivera & g
Clase nro2 vb net 2010 rivera & gClase nro2 vb net 2010 rivera & g
Clase nro2 vb net 2010 rivera & g
 
Formulario De Ventas Con Los MenúS Y Un Reporte
Formulario De Ventas Con Los MenúS   Y Un ReporteFormulario De Ventas Con Los MenúS   Y Un Reporte
Formulario De Ventas Con Los MenúS Y Un Reporte
 
Ejercicios vb
Ejercicios vbEjercicios vb
Ejercicios vb
 
Cristinagananparedes
CristinagananparedesCristinagananparedes
Cristinagananparedes
 
Guia n5 tam 2009 1
Guia n5 tam 2009 1Guia n5 tam 2009 1
Guia n5 tam 2009 1
 

Plus de jameszx

EvaluacióN Preguntas 4to D
EvaluacióN Preguntas 4to DEvaluacióN Preguntas 4to D
EvaluacióN Preguntas 4to Djameszx
 
Control Listbox
Control ListboxControl Listbox
Control Listboxjameszx
 
Control Listbox
Control ListboxControl Listbox
Control Listboxjameszx
 
Visual Basic
Visual BasicVisual Basic
Visual Basicjameszx
 
Formulario De Registro De Boleta De Ventay Mantenimiento De Cliente
Formulario De Registro De Boleta De Ventay Mantenimiento De ClienteFormulario De Registro De Boleta De Ventay Mantenimiento De Cliente
Formulario De Registro De Boleta De Ventay Mantenimiento De Clientejameszx
 
Los Iconos Que Se Utilizaron Son Los Siguientes
Los Iconos Que Se Utilizaron Son Los SiguientesLos Iconos Que Se Utilizaron Son Los Siguientes
Los Iconos Que Se Utilizaron Son Los Siguientesjameszx
 
Creancdo Proyecto Y Formularios
Creancdo Proyecto Y FormulariosCreancdo Proyecto Y Formularios
Creancdo Proyecto Y Formulariosjameszx
 
Creación De Un Sistema En Visual Basic Con Base De Datos
Creación De Un  Sistema En  Visual  Basic Con  Base De  DatosCreación De Un  Sistema En  Visual  Basic Con  Base De  Datos
Creación De Un Sistema En Visual Basic Con Base De Datosjameszx
 
Creando Tablas
Creando TablasCreando Tablas
Creando Tablasjameszx
 
los pasos
los pasoslos pasos
los pasosjameszx
 

Plus de jameszx (13)

EvaluacióN Preguntas 4to D
EvaluacióN Preguntas 4to DEvaluacióN Preguntas 4to D
EvaluacióN Preguntas 4to D
 
Control Listbox
Control ListboxControl Listbox
Control Listbox
 
Control Listbox
Control ListboxControl Listbox
Control Listbox
 
Visual Basic
Visual BasicVisual Basic
Visual Basic
 
Formulario De Registro De Boleta De Ventay Mantenimiento De Cliente
Formulario De Registro De Boleta De Ventay Mantenimiento De ClienteFormulario De Registro De Boleta De Ventay Mantenimiento De Cliente
Formulario De Registro De Boleta De Ventay Mantenimiento De Cliente
 
Tablas
TablasTablas
Tablas
 
Tablas
TablasTablas
Tablas
 
Los Iconos Que Se Utilizaron Son Los Siguientes
Los Iconos Que Se Utilizaron Son Los SiguientesLos Iconos Que Se Utilizaron Son Los Siguientes
Los Iconos Que Se Utilizaron Son Los Siguientes
 
Creancdo Proyecto Y Formularios
Creancdo Proyecto Y FormulariosCreancdo Proyecto Y Formularios
Creancdo Proyecto Y Formularios
 
Creación De Un Sistema En Visual Basic Con Base De Datos
Creación De Un  Sistema En  Visual  Basic Con  Base De  DatosCreación De Un  Sistema En  Visual  Basic Con  Base De  Datos
Creación De Un Sistema En Visual Basic Con Base De Datos
 
Creando Tablas
Creando TablasCreando Tablas
Creando Tablas
 
los pasos
los pasoslos pasos
los pasos
 
tt
tttt
tt
 

Registro de ventas

  • 1. Formulario de Registro de Boleta de Venta CODIFICACIÓN En el espacio principal del formulario: Option Explicit Dim cn As ADODB.Connection Dim rsVentas As ADODB.Recordset Dim rsDetalle As ADODB.Recordset Dim rsArticulos As ADODB.Recordset Dim codigo As String Dim regreso As Integer En el formulario mismo: Private Sub Form_Load() Set cn = New ADODB.Connection Set rsVentas = New ADODB.Recordset With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=d:sisventasdataventas.mdb" .Open End With rsVentas.Open "select * from ventas", cn, adOpenStatic, adLockOptimistic If rsVentas.RecordCount >= 1 Then rsVentas.MoveLast End If cNum_mov = Right(String(5, "0") & Trim(Str(Val(rsVentas.Fields("num_mov")) + 1)), 6) rsVentas.Close Dim cTip_doc As String cTip_doc = "B"
  • 2. rsVentas.Open "select * from ventas Where tip_doc like'" + Trim(cTip_doc) & "%" & "' order by num_doc", cn, adOpenStatic, adLockOptimistic If rsVentas.RecordCount >= 1 Then rsVentas.MoveLast End If 'genera automaticamente el codigo de la factura incrementando 1 txtNum_bol = Right(String(5, "0") & Trim(Str(Val(rsVentas.Fields("num_doc")) + 1)), 6) 'muestra automaticamente la factura actual txtFec_emi.Text = Date Exit Sub End Sub En el botón de Cmdcliente: Private Sub cmdcliente_Click() frmVen_cli.Show End Sub En el botón Agregar: Private Sub cmdAgregar_Click() frmVen_art.Show End Sub En el botón Quitar: Private Sub cmdQuitar_Click() Dim enc As Integer Dim asub As Currency enc = lvwVenta.SelectedItem.Index Dim y, borrado As Integer borrado = 0 'Guardar de nuevo los datos que no fueron borrados For y = 1 To cont
  • 3. If y = enc Then codigo = xCod_art(y) regreso = xCantidad(y) xCod_art(y) = xCod_art(y + 1) xDescripcion(y) = xDescripcion(y + 1) xCantidad(y) = xCantidad(y + 1) xPrecio(y) = xPrecio(y + 1) xSubtotal(y) = xSubtotal(y + 1) borrado = 1 End If If borrado = 1 Then xCod_art(y) = xCod_art(y + 1) xDescripcion(y) = xDescripcion(y + 1) xCantidad(y) = xCantidad(y + 1) xPrecio(y) = xPrecio(y + 1) xSubtotal(y) = xSubtotal(y + 1) End If Next y cont = cont - 1 lvwVenta.ListItems.Clear For y = 1 To cont Dim nuevo As ListItem Set nuevo = lvwVenta.ListItems.Add(, , xCod_art(y)) nuevo.SubItems(1) = xDescripcion(y) MsgBox xDescripcion(y) nuevo.SubItems(2) = xCantidad(y) nuevo.SubItems(3) = xPrecio(y) nuevo.SubItems(4) = xSubtotal(y) asub = asub + xSubtotal(y) Next y 'Calcula el subtotal, IGV y total Static subt As Currency txtSubTotal.Text = asub txtIgv.Text = Val(txtSubTotal.Text) * 0.19 txtTotal.Text = Val(txtSubTotal.Text) + Val(txtIgv.Text) 'Ubicar con el posicion correspondiente para guardar el stock Set rsArticulos = New Recordset rsArticulos.Open "select * from articulos", cn, adOpenStatic, adLockOptimistic rsArticulos.MoveFirst rsArticulos.Find "cod_art='" & codigo & " ' " rsArticulos.Fields("stock") = rsArticulos.Fields("stock") + regreso rsArticulos.Update End Sub
  • 4. En el botón Guardar: Private Sub cmdGrabar_Click() 'Guardar los datos en la tabla Ventas rsVentas.AddNew rsVentas.Fields("num_mov") = cNum_mov rsVentas.Fields("tip_mov") = "S" rsVentas.Fields("tip_doc") = "B" rsVentas.Fields("num_doc") = txtNum_bol.Text rsVentas.Fields("cod_cli") = txtCod_cli.Text rsVentas.Fields("fec_emi") = txtFec_emi.Text rsVentas.Fields("cod_ven") = txtCod_ven.Text rsVentas.Update 'Guardar los datos en la tabla detalle Set rsDetalle = New Recordset rsDetalle.Open "select * from detalle", cn, adOpenStatic, adLockOptimistic Dim x As Integer For x = 1 To cont With rsDetalle .AddNew .Fields("num_mov") = txtNum_bol.Text .Fields("cod_art") = xCod_art(x) .Fields("cantidad") = xCantidad(x) .Fields("precio") = xPrecio(x) .Update End With Next x cmdGrabar.Enabled = False cmdQuitar.Enabled = False cmdAgregar.Enabled = False cont = 0 Unload Me Exit Sub End Sub
  • 5. En el botón Cmdvendedor: Private Sub cmdVendedor_Click() frmVen_ven.Show End Sub En el botón Cerrar: Private Sub Command1_Click() End End Sub Formulario de Mantenimiento de Clientes CODIFICACIÓN En el espacio principal de formulario Public nNew As Integer Option Explicit Dim cn As ADODB.Connection Dim rsClientes As ADODB.Recordset
  • 6. En el formulario mismo Private Sub Form_Load() Set cn = New ADODB.Connection Set rsClientes = New ADODB.Recordset With cn .Provider = "Microsoft.Jet.OLEDB.4.0" .ConnectionString = "Data Source=d:sisventasdataventas.mdb" .Open End With rsClientes.ActiveConnection = cn rsClientes.Open "Select * from clientes", cn, adOpenStatic, adLockOptimistic llenacontroles llenalista nNew = 1 End Sub En el botón nuevo Private Sub cmdNuevo_Click() frmMan_cli.Width = 9210 limpia desactivaBotones activatext If rsClientes.RecordCount = 0 Then txtCod_cli = "C0001" Else rsClientes.MoveLast txtCod_cli.Text = "C" & Right("0000" & Trim(Str(Val(Right(rsClientes.Fields("cod_cli"), 4)) + 1)), 4) End If txtApe_cli.SetFocus nNew = 1 End Sub En el botón modificar Private Sub cmdModificar_Click() Dim cCod_cli As String cCod_cli = ListView1.SelectedItem.Text rsClientes.MoveFirst rsClientes.Find "cod_cli='" + Trim(cCod_cli) + "'" desactivaBotones
  • 7. activatext llenacontroles txtApe_cli.SetFocus nNew = 2 frmMan_cli.Width = 9210 End Sub En el botón Eliminar Private Sub cmdEliminar_Click() Dim cCod_cli As String cCod_cli = ListView1.SelectedItem.Text rsClientes.MoveFirst rsClientes.Find "cod_cli='" + Trim(cCod_cli) + "'" Dim res As String res = MsgBox("Está seguro de eliminar al cliente:" + Chr(13) + rsClientes.Fields("ape_cli") & ", " & rsClientes.Fields("nom_cli"), vbQuestion + vbYesNo + vbDefaultButton2, "Eliminación del Cliente") If res = 6 Then rsClientes.Delete rsClientes.MoveFirst llenalista End If End Sub En el botón Salir Private Sub cmdCerrar_Click() Unload Me End Sub Otros dentro de la codificación Private Sub limpia() txtApe_cli.Text = "" txtNom_cli.Text = "" txtDni.Text = "" txtTelefono.Text = "" txtDireccion.Text = "" txtMail.Text = "" End Sub
  • 8. Private Sub desactivaBotones() cmdNuevo.Enabled = False cmdModificar.Enabled = False cmdEliminar.Enabled = False cmdCerrar.Enabled = False cmdGuardar.Enabled = True cmdCancelar.Enabled = True End Sub Private Sub activaBotones() cmdNuevo.Enabled = True cmdModificar.Enabled = True cmdEliminar.Enabled = True cmdCerrar.Enabled = True cmdGuardar.Enabled = False cmdCancelar.Enabled = False End Sub Private Sub activatext() txtApe_cli.Locked = False txtNom_cli.Locked = False txtDni.Locked = False txtTelefono.Locked = False txtDireccion.Locked = False txtMail.Locked = False End Sub Private Sub desactivatext() txtApe_cli.Locked = True txtNom_cli.Locked = True txtDni.Locked = True txtTelefono.Locked = True txtDireccion.Locked = True txtMail.Locked = True End Sub Private Sub cmdCancelar_Click() activaBotones desactivatext frmMan_cli.Width = 5850 End Sub Private Sub llenacontroles() If rsClientes.EOF Then Exit Sub End If If rsClientes.BOF Then Exit Sub If IsNull(rsClientes("cod_cli")) Then txtCod_cli.Text = ""
  • 9. Else txtCod_cli.Text = rsClientes.Fields("cod_cli") End If If IsNull(rsClientes("ape_cli")) Then txtApe_cli.Text = "" Else txtApe_cli.Text = rsClientes.Fields("ape_cli") End If If IsNull(rsClientes("nom_cli")) Then txtNom_cli.Text = "" Else txtNom_cli.Text = rsClientes.Fields("nom_cli") End If If IsNull(rsClientes("telefono")) Then txtTelefono.Text = "" Else txtTelefono.Text = rsClientes.Fields("telefono") End If If IsNull(rsClientes("dni")) Then txtDni.Text = "" Else txtDni.Text = rsClientes.Fields("dni") End If If IsNull(rsClientes("direccion")) Then txtDireccion.Text = "" Else txtDireccion.Text = rsClientes.Fields("direccion") End If If IsNull(rsClientes("mail")) Then txtMail.Text = "" Else txtMail.Text = rsClientes.Fields("mail") End If End Sub Public Sub SoloNumeros(KeyAscii As Integer) Select Case KeyAscii Case 8, 46 Case Is < 48, Is > 57 KeyAscii = 0 End Select End Sub Private Sub txtApe_cli_LostFocus() txtApe_cli.Text = UCase(txtApe_cli) End Sub
  • 10. Private Sub txtnom_cli_LostFocus() txtNom_cli.Text = UCase(txtNom_cli) End Sub Private Sub txtdni_KeyPress(KeyAscii As Integer) Call SoloNumeros(KeyAscii) End Sub Private Sub txtTelefono_KeyPress(KeyAscii As Integer) Call SoloNumeros(KeyAscii) End Sub Private Sub llenalista() ListView1.ListItems.Clear Dim nuevo As ListItem Dim i As Integer For i = 1 To rsClientes.RecordCount Set nuevo = frmMan_cli.ListView1.ListItems.Add(, , rsClientes.Fields("cod_cli")) nuevo.SubItems(1) = rsClientes.Fields("ape_cli") & ", " & rsClientes.Fields("nom_cli") nuevo.SubItems(2) = rsClientes.Fields("dni") rsClientes.Move (1) Next i End Sub Private Sub txtBus_Change() Dim cBus As String cBus = txtBus.Text Set rsClientes = New Recordset rsClientes.Open "select * from clientes where ape_cli like'" + Trim(cBus) & "%" & "'", cn, adOpenStatic, adLockOptimistic llenalista End Sub