Ayuda con el Listview de VB6
Disculpe tengo un problema... Tengo una base de datos en access y la cargo en un listview en VB6, tengo en mi bd una tabla llamada Equipos y un Id de tipo numérico llamado NoDeInventario...
Mi problema es al querer guardar desde mi programa en VB6... Cuando oprimo el botón guardar, todos los campos en mi listview (solo en el listview no en mi BD) se borran y solo aparece el nuevo Id que se ingresó...
El Id lo genero automáticamente cada vez que se ingresa un nuevo registro, pero no lo uso de tipo autonumérico debido a que si se borra uno continuaría con el consecutivo, por tal manera lo genero en el código...
Este es mi Código del formulario para guardar...
Option Explicit
Enum EACCION
ENTRAR_EQUIPO = 0
EDITAR_EQUIPO = 1
End Enum
Public IdRegistro
Public ACCION As EACCION
Private Sub cmdGuardar_Click()
On Error GoTo ErrorSub
Dim sql As String
' Valida que la descripción no este vacio
''''''''''''''''''''''''''''''''
If Trim(Text1(1)) = "" Then
MsgBox "La Descripción del equipo no puede estar vacio", vbCritical, "Datos incompletos"
Text1(1).SetFocus
Exit Sub
' Valida la categoria
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(2)) = "" Then
MsgBox "La Categoría no puede estar vacia", vbCritical, "Datos incompletos"
Text1(2).SetFocus
Exit Sub
' Valida la marca
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(3)) = "" Then
MsgBox "La Marca no puede estar vacia", vbCritical, "Datos incompletos"
Text1(3).SetFocus
Exit Sub
' Valida el modelo
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(4)) = "" Then
MsgBox "El Modelo no puede estar vacio", vbCritical, "Datos incompletos"
Text1(4).SetFocus
Exit Sub
' Valida el numero de serie
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(5)) = "" Then
MsgBox "El Numero de Serie no puede estar vacio", vbCritical, "Datos incompletos"
Text1(5).SetFocus
Exit Sub
Else
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Select Case ACCION
Case EDITAR_EQUIPO
cnn.Execute "UPDATE Equipos set Descripcion = '" & Text1(1) & _
"', Categoria = '" & Text1(2) & _
"', Marca = '" & Text1(3) & _
"', Modelo = '" & Text1(4) & _
"', NoDeSerie = '" & Text1(5) & _
"', Observaciones = '" & Text1(6) & _
"' where NoDeInventario = " & IdRegistro & ""
Case ENTRAR_EQUIPO
If rs.State = adStateOpen Then
rs.Close
End If
sql = "Select MAX(NoDeInventario) As MaxNum from Equipos"
rs.Open sql, cnn, adOpenDynamic, adLockOptimistic
If IsNull(rs!MaxNum) Then
IdRegistro = 1
Else
IdRegistro = rs!MaxNum + 1
End If
If IsNull(IdRegistro) Then
IdRegistro = 1
Else
IdRegistro = IdRegistro + 1
End If
cnn.Execute "INSERT INTO Equipos " & "(NoDeInventario, Descripcion,Categoria,Marca,Modelo,NodeSerie,Observaciones,FechaDeAlta) VALUES( '" & IdRegistro & "' ,'" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(4) & "','" & _
Text1(5) & "','" &...
Mi problema es al querer guardar desde mi programa en VB6... Cuando oprimo el botón guardar, todos los campos en mi listview (solo en el listview no en mi BD) se borran y solo aparece el nuevo Id que se ingresó...
El Id lo genero automáticamente cada vez que se ingresa un nuevo registro, pero no lo uso de tipo autonumérico debido a que si se borra uno continuaría con el consecutivo, por tal manera lo genero en el código...
Este es mi Código del formulario para guardar...
Option Explicit
Enum EACCION
ENTRAR_EQUIPO = 0
EDITAR_EQUIPO = 1
End Enum
Public IdRegistro
Public ACCION As EACCION
Private Sub cmdGuardar_Click()
On Error GoTo ErrorSub
Dim sql As String
' Valida que la descripción no este vacio
''''''''''''''''''''''''''''''''
If Trim(Text1(1)) = "" Then
MsgBox "La Descripción del equipo no puede estar vacio", vbCritical, "Datos incompletos"
Text1(1).SetFocus
Exit Sub
' Valida la categoria
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(2)) = "" Then
MsgBox "La Categoría no puede estar vacia", vbCritical, "Datos incompletos"
Text1(2).SetFocus
Exit Sub
' Valida la marca
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(3)) = "" Then
MsgBox "La Marca no puede estar vacia", vbCritical, "Datos incompletos"
Text1(3).SetFocus
Exit Sub
' Valida el modelo
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(4)) = "" Then
MsgBox "El Modelo no puede estar vacio", vbCritical, "Datos incompletos"
Text1(4).SetFocus
Exit Sub
' Valida el numero de serie
''''''''''''''''''''''''''''''''
ElseIf Trim(Text1(5)) = "" Then
MsgBox "El Numero de Serie no puede estar vacio", vbCritical, "Datos incompletos"
Text1(5).SetFocus
Exit Sub
Else
End If
'Agrega el registro
'''''''''''''''''''''''''''''''
Select Case ACCION
Case EDITAR_EQUIPO
cnn.Execute "UPDATE Equipos set Descripcion = '" & Text1(1) & _
"', Categoria = '" & Text1(2) & _
"', Marca = '" & Text1(3) & _
"', Modelo = '" & Text1(4) & _
"', NoDeSerie = '" & Text1(5) & _
"', Observaciones = '" & Text1(6) & _
"' where NoDeInventario = " & IdRegistro & ""
Case ENTRAR_EQUIPO
If rs.State = adStateOpen Then
rs.Close
End If
sql = "Select MAX(NoDeInventario) As MaxNum from Equipos"
rs.Open sql, cnn, adOpenDynamic, adLockOptimistic
If IsNull(rs!MaxNum) Then
IdRegistro = 1
Else
IdRegistro = rs!MaxNum + 1
End If
If IsNull(IdRegistro) Then
IdRegistro = 1
Else
IdRegistro = IdRegistro + 1
End If
cnn.Execute "INSERT INTO Equipos " & "(NoDeInventario, Descripcion,Categoria,Marca,Modelo,NodeSerie,Observaciones,FechaDeAlta) VALUES( '" & IdRegistro & "' ,'" & _
Text1(1) & "','" & _
Text1(2) & "','" & _
Text1(3) & "','" & _
Text1(4) & "','" & _
Text1(5) & "','" &...
1 Respuesta
Respuesta de Roberto Alvarado
1