ESTA ES MI CONEX
Option Explicit
Public Declare Sub InitCommonControls Lib "comctl32" ()
' variables para la conexión y el recordset
''''''''''''''''''''''''''''''''''''''''''''
Public CNN As New ADODB.Connection
Public rs As New ADODB.Recordset
Public ObjItem As ListItem
Sub Main()
On Error Resume Next
Call InitCommonControls
Err.Clear
FrmPrincipalClau.Show
End Sub
Public Sub IniciarConexion()
With CNN
.CursorLocation = adUseClient
.Open "Provider=SQLOLEDB.1;Password=qweqwe;Persist Security Info=True;User ID=omar;Initial Catalog=BASEFINAL;Data Source=SERVIDOR"
End With
End Sub
Public Sub CargarListView(LV As ListView, rs As ADODB.Recordset)
On Error GoTo ErrorSub
Dim i As Integer
'limpia el LV
LV.ListItems.Clear
' si hay registros
If rs.RecordCount > 0 Then
' recorre el recordset
While Not rs.EOF
' añade los datos
Set ObjItem = LV.ListItems.Add(, , rs(0))
ObjItem.SubItems(14) = rs!voucher
ObjItem.SubItems(1) = rs!dia
ObjItem.SubItems(3) = rs!contacto
ObjItem.SubItems(4) = rs!razonsocial
ObjItem.SubItems(7) = rs!nºderuc
ObjItem.SubItems(8) = rs!direccion
ObjItem.SubItems(5) = rs!inspector
ObjItem.SubItems(6) = rs!tipodecertificado
ObjItem.SubItems(9) = rs!cantidad
ObjItem.SubItems(10) = rs!precio
ObjItem.SubItems(11) = rs!total
ObjItem.SubItems(12) = rs!codigodebarra
ObjItem.SubItems(13) = rs!cit
ObjItem.SubItems(2) = rs!nºdeplaca
ObjItem.SubItems(15) = rs!nºdemotor
ObjItem.SubItems(16) = rs!nºdeserieochasis
ObjItem.SubItems(17) = rs!nºdecertificado
ObjItem.SubItems(18) = rs!totalvoucher
ObjItem.SubItems(19) = rs!boletaofactura
ObjItem.SubItems(20) = rs!mes
ObjItem.SubItems(21) = rs!lista
ObjItem.SubItems(22) = rs!asignacion
ObjItem.SubItems(23) = rs!observacion
' siguiente registro
rs.MoveNext
Wend
End If
Call ForeColorColumn(&H8000&, 0, FrmPrincipalClau.LV)
'Call ForeColorColumn(vbRed, 6, FrmPrincipalcarmen.LV)
Exit Sub
ErrorSub:
If Err.Number = 94 Then Resume Next
End Sub
' cierra
Sub Desconectar()
On Local Error Resume Next
rs.Close
Set rs = Nothing
CNN.Close
Set CNN = Nothing
End Sub
con este veo mi tabla listview y la puedo editar
Option Explicit
' Botones de opción
''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub cmdOpciones_Click(Index As Integer)
Select Case Index
Case 0: Call Agregar
Case 1: Call Editar
Case 2: Call Eliminar
Case 3: Unload Me
Case 4: frmFilter.Show , Me
Case 5: Call mnuImprimir_Click
Case 6: FrmCIT.Show , Me
End Select
End Sub
'Abre el formulario para Editar el registro seleccionado en el ListView
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Private Sub Editar()
Dim i As Integer
' verifica que hay datos en el ListView y que hay uno seleccionado
If (LV.ListItems.Count = 0) Then
MsgBox "No hay ningún regisro para editar", vbInformation
Exit Sub
End If
If (LV.SelectedItem Is Nothing) Then
MsgBox "Debe seleccionar previamente un registro para poder editarlo", vbInformation
Exit Sub
End If
With FrmEditClau
' obtiene el elemento seleccionado
.lblID = LV.SelectedItem.Text
For i = 1 To 18
.Text1(i).Text = LV.SelectedItem.ListSubItems(i).Text
Next
.lblFecha = LV.SelectedItem.ListSubItems(1).Text
.IdRegistro = LV.SelectedItem.Text
.ACCION = editar_registro
.Show
End With
End Sub
' Elimina el registro actual seleccionado
'''''''''''''''''''''''''''''''''''''''''''''
Private Sub Eliminar()
If (LV.ListItems.Count = 0) Then
MsgBox "No hay ningún registro para eliminar", vbInformation
Exit Sub
End If
' verifica que hay datos en el ListView y que hay uno seleccionado
If (LV.SelectedItem Is Nothing) Then
MsgBox "No hay registro seleccionado para eliminar", vbInformation
Exit Sub
End If
With LV.SelectedItem
' pregunta
If MsgBox("Se va a eliminar el registro : " & vbNewLine & _
String(50, "-") & vbNewLine & _
"cod: " & .Text & vbNewLine & _
"voucher " & .ListSubItems(1).Text & vbNewLine & _
"mes: " & .ListSubItems(2).Text, _
vbExclamation + vbYesNo, "Eliminar") = vbYes Then
' Elimina
CNN.Execute "delete from Clientes where cod = " & .Text & ""
' refresca el recordset
rs.Requery 1
' vuelve a cargar los datos en el ListView
Call CargarListView(LV, rs)
End If
End With
End Sub
Sub Agregar()
' Acción
FrmEditClau.ACCION = AGREGAR_REGISTRO
FrmEditClau.lblFecha = Format(Date, "mm/dd/yyyy")
' Abre el Form
FrmEditClau.Show 1
End Sub
Sub Salir()
Call Desconectar
Unload Me
End
End Sub
Private Sub Form_Load()
' Abre la conexión
Call IniciarConexion
' carga el Recorset con todos los datos
rs.Open "select * from Clientes", CNN, adOpenStatic, adLockOptimistic
' llena el ListView
Call CargarListView(LV, rs)
End Sub
Private Sub LV_DblClick()
Call Editar
End Sub
Private Sub LV_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim Item As ListItem
Set Item = LV.HitTest(x, y)
If Not Item Is Nothing And Button = vbRightButton Then
Item.Selected = True
Me.PopupMenu mnuEdicion
End If
End Sub
' menues
'''''''''''''''''''''''''''''
Private Sub mnuAgregar_Click()
Call Agregar
End Sub
Private Sub mnuEditarRegistro_Click()
Call Editar
End Sub
Private Sub mnuEliminarReg_Click()
Call Eliminar
End Sub
Private Sub mnuImprimir_Click()
Set DataReport1.DataSource = rs
DataReport1.Show 1
End Sub
' salir
''''''''''''''''''''''''
Private Sub mnuSalir_Click()
Call Salir
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim ret As VbMsgBoxResult
ret = MsgBox("¿ Salir ?", vbInformation + vbYesNo)
If ret = vbNo Then
Cancel = True
Else
Call Salir
End If
End Sub
con este es el cuadro donde edito los datos
Option Explicit
Enum EACCION
AGREGAR_REGISTRO = 0
editar_registro = 1
End Enum
Public IdRegistro
Public ACCION As EACCION
Private Sub ChameleonBtn1_Click()
frmImpresionCIT3.Show
frmImpresionCIT3.Text1(0) = Text1(4)
frmImpresionCIT3.Text1(1) = Text1(8)
frmImpresionCIT3.Text1(2) = Text1(2)
frmImpresionCIT3.Text1(18) = Text1(15)
frmImpresionCIT3.Text1(19) = Text1(16)
frmImpresionCIT3.Text1(27) = Text1(17)
End Sub
Private Sub ChameleonBtn2_Click()
frmImpresionCIT7.Show
frmImpresionCIT7.Text1(0) = Text1(2)
frmImpresionCIT7.Text1(5) = Text1(16)
frmImpresionCIT7.Text1(6) = Text1(15)
frmImpresionCIT7.Text1(31) = Text1(17)
End Sub
Private Sub ChameleonBtn3_Click()
frmImpresionCIT4.Show
frmImpresionCIT4.Text1(0) = Text1(4)
frmImpresionCIT4.Text1(1) = Text1(8)
frmImpresionCIT4.Text1(2) = Text1(2)
frmImpresionCIT4.Text1(18) = Text1(15)
frmImpresionCIT4.Text1(19) = Text1(16)
frmImpresionCIT4.Text1(27) = Text1(17)
frmImpresionCIT4.Text1(26) = Text1(13)
End Sub
Private Sub ChameleonBtn4_Click()
frmImpresionCIT8.Show
End Sub
Private Sub ChameleonBtn5_Click()
frmImpresionCIT6.Show
End Sub
Private Sub ChameleonBtn6_Click()
frmImpresionCIT9.Show
End Sub
Private Sub ChameleonBtn7_Click()
frmImpresionCIT10.Show
End Sub
Private Sub ChameleonBtn8_Click()
frmImpresionCIT11.Show
End Sub
Private Sub ChameleonBtn9_Click()
frmImpresionCIT12.Show
End Sub
Private Sub cmdGuardar_Click()
Text1(11).Text = ((Val(Text1(9).Text) * Val(Text1(10).Text)))
Text1(22).Text = ((Val(Text1(11).Text * 0.3) / 1.19))
Dim sqlDate As String
sqlDate = Format(Date, "YYYY/MM/DD")
On Error GoTo ErrorSub
' Valida el codigo de barra que no este vacio
'''''''''''''''''''''''''''''''''''''''''''''
If Trim(Text1(12)) = "" Then
MsgBox "El Nº de Codigo de Barra no puede estar vacio", vbCritical, "Datos incompletos"
Text1(12).SetFocus
Exit Sub
' Valida el cit
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(13)) = "" Then
MsgBox "El Nº CIT no puede estar vacio", vbCritical, "Datos incompletos"
Text1(13).SetFocus
Exit Sub
' Valida la placa
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(2)) = "" Then
MsgBox "No se ha indicado el Nº de Placa", vbCritical, "Datos incompletos"
Text1(14).SetFocus
Exit Sub
' Valida el nº de motor
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(15)) = "" Then
MsgBox "No se ha indicado el Nº de Motor", vbCritical, "Datos incompletos"
Text1(15).SetFocus
Exit Sub
' Valida el nº de serie o chasis
'''''''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(16)) = "" Then
MsgBox "No se ha indicado el Nº de Serie o Chasis", vbCritical, "Datos incompletos"
Text1(16).SetFocus
Exit Sub
' Valida el nº de certificado
'''''''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(17)) = "" Then
MsgBox "No se ha indicado el Nº de Certificado", vbCritical, "Datos incompletos"
Text1(17).SetFocus
Exit Sub
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Select Case ACCION
Case editar_registro
CNN.Execute "UPDATE Clientes set voucher = '" & Text1(14) & _
"', contacto = '" & Text1(3) & _
"', razonsocial = '" & Text1(4) & _
"', nºderuc = '" & Text1(7) & _
"', direccion = '" & Text1(8) & _
"', inspector = '" & Text1(5) & _
"', tipodecertificado = '" & Text1(6) & _
"', cantidad = '" & Text1(9) & _
"', precio = '" & Text1(10) & _
"', total= '" & Text1(11) & _
"', codigodebarra = '" & Text1(12) & _
"', cit = '" & Text1(13) & _
"', nºdeplaca = '" & Text1(2) & _
"', nºdemotor = '" & Text1(15) & _
"', nºdeserieochasis = '" & Text1(16) & _
"', nºdecertificado = '" & Text1(17) & _
"', totalvoucher = '" & Text1(18) & _
"', boletaofactura = '" & Text1(19) & _
"', mes = '" & Text1(20) & _
"', lista = '" & Text1(21) & _
"', asignacion = '" & Text1(22) & _
"', observacion = '" & Text1(23) & _
"' where Cod = " & IdRegistro & ""
Case AGREGAR_REGISTRO
CNN.Execute "INSERT INTO Clientes (voucher, dia, contacto, razonsocial, nºderuc, direccion, inspector, tipodecertificado, cantidad, precio, total, codigodebarra, cit, nºdeplaca, nºdemotor, nºdeserieochasis, nºdecertificado, totalvoucher, boletaofactura, mes, lista, asignacion, observacion) VALUES('" & Text1(14) & "','" & sqlDate & "','" & Text1(3) & "','" & Text1(4) & "','" & Text1(7) & "','" & Text1(8) & "','" & Text1(5) & "','" & Text1(6) & "','" & Text1(9) & "','" & Text1(10) & "','" & Text1(11) & "','" & Text1(12) & "','" & Text1(13) & "','" & Text1(2) & "','" & Text1(15) & "','" & Text1(16) & "','" & Text1(17) & "','" & Text1(18) & "','" & Text1(19) & "','" & Text1(20) & "','" & Text1(21) & "','" & Text1(22) & "','" & Text1(23) & "')"
End Select
rs.Requery 1
Call CargarListView(FrmPrincipalClau.LV, rs)
DoEvents
Unload Me
Set FrmEditClau = Nothing
Exit Sub
ErrorSub:
MsgBox Err.Description
End Sub
Private Sub cmdCancelar_Click()
Unload Me
End Sub
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
If KeyCode = vbKeyEscape Then
Unload Me
End If
End Sub
Private Sub Text1_Change(Index As Integer)
Text1(22) = Format(Text1(22), "#0.00")
Text1(11) = Format(Text1(11), "#0.00")
Text1(18) = Format(Text1(18), "#0.00")
End Sub
Private Sub Timer1_Timer()
If FrmEditClau.Caption = "[ Editar registro - Claudia ] [ INSTITUTO DE TRANSPORTES UNAC ]" Then
FrmEditClau.Caption = "[ INSTITUTO DE TRANSPORTES UNAC ]"
Else: FrmEditClau.Caption = "[ Editar registro - Claudia ] [ INSTITUTO DE TRANSPORTES UNAC ]"
End If
End Sub