Visual Basic - MSHFlexGrid, agregar & eliminar

Life is soft - evento anual de software empresarial
 
Vista:

MSHFlexGrid, agregar & eliminar

Publicado por carlos (17 intervenciones) el 15/06/2005 23:19:39
hola, tengo un problema, estoy usando un MSHFlexGrid para agragar y eliminar registro de una tabla ("CONTROL"), el problema tengo es que depues de eliminar un registro, el siguiente registro que ingreso se agrega pero no se logran ver todos los registros,; mejor aqui les mando el codigo, tiene 2 botones, un MSHFlexGrid, y 6 textbox; recuerden que el problema se presenta despues de eliminar un registro; y intenten ingrasar oteo nuevo, el ultimo registro no se logra ver. espero que me ayuden gracias

Private Sub cmdAgregar_Click()
On Error GoTo fallo
cn.Execute "insert into control values('" & Text1.Text & "','" & Text2.Text & "','" & Text3.Text _
& "','" & Text4.Text & "',0,'No','" & Text5.Text _
& "','" & Text6.Text & "')"


Call CargaGrid
MsgBox "Proceso Terminado", vbInformation, "AVISO"
Exit Sub
fallo:
MsgBox Err.Description
End Sub

Sub CargaGrid()
Dim rsControl As ADODB.Recordset
Dim SQL As String
Dim fil As Integer, col As Integer
Dim f As Integer, c As Integer

Set rsControl = New ADODB.Recordset

SQL = "select Tipo,Año,mes_ini as [Mes Inicio],mes_fin as [Mes Final],[Fecha de Carga],[Fecha de Archivo] from control order by año desc"
rsControl.Open SQL, cn, adOpenStatic, adLockOptimistic

fil = rsControl.RecordCount
col = rsControl.Fields.Count

MSH.Rows = fil + 1
MSH.Cols = col

For c = 0 To col - 1
MSH.TextMatrix(0, c) = rsControl.Fields(c).Name
Next

If Not fil = 0 Then
For f = 0 To fil - 1
For c = 0 To col - 1
MSH.TextMatrix(f + 1, c) = rsControl.Fields(c)
Next
rsControl.MoveNext
Next
Else
MSH.AddItem Empty
End If

rsControl.Close
Set rsControl = Nothing
End Sub
Private Sub cmdEliminar_Click()
Dim fila As Long
Dim filadel As String, SQL As String
Dim rsTemp As New ADODB.Recordset
If MsgBox("Seguro de Eliminar", vbQuestion + vbYesNo, "AVISO") = vbYes Then
fila = MSH.Row
filadel = MSH.TextMatrix(fila, 1)
cn.Execute "delete from control where año='" & filadel & "'"
If MSH.Rows <= 2 Then 'fila = 1 Then
Dim a As Integer, i As Integer
a = MSH.Cols
For i = 0 To a - 1
MSH.TextMatrix(1, i) = "" '.RemoveItem fila
Next
Else
MSH.RemoveItem fila

End If
End If
End Sub

Private Sub Form_Load()
Call CargaGrid
MSH.FixedRows = 1
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:MSHFlexGrid, agregar & eliminar

Publicado por Juan_K (181 intervenciones) el 16/06/2005 00:26:51
Hola, si no me equivoco lo q tu haces es borrar varios registros a la vez en veas de uno

cn.Execute "delete from control where año='" & filadel & "'"

borra los registros con el año especificado, es decir, si tienes 3 tregistros del año 2005 pues borra esos tres.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ese no es el problema

Publicado por carlos (17 intervenciones) el 16/06/2005 00:54:07
gracias , pero ese no es el problema , con la eliminacion no hay problema, e l problema es que al iniciar el formulario, primero realizamos una eliminacion, eliminacion es correcta, el problema es al agragar otro registro. el registro se agrea pero p.ej. si hay tres registros en el flexgrid, se agreaga el registro pero se siguen viendo tres registros no 4 como deveria y asi susesivamente. si no entienden hagan esto creen una tabla en sql2000 llamada "control":

CREATE TABLE [dbo].[CONTROL] (
[Tipo] [char] (1) COLLATE Modern_Spanish_CI_AS NOT NULL ,
[Año] [char] (4) COLLATE Modern_Spanish_CI_AS NOT NULL ,
[Mes_Ini] [char] (2) COLLATE Modern_Spanish_CI_AS NOT NULL ,
[Mes_Fin] [char] (2) COLLATE Modern_Spanish_CI_AS NOT NULL ,
[Fecha de Carga] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL ,
[Fecha de Archivo] [varchar] (50) COLLATE Modern_Spanish_CI_AS NULL
) ON [PRIMARY]

--ok, agreguen unos 3 registros, ahora ejecuten el programa;
-priemro realizen una eliminacion.
-ahora agreguen un registro

VEN EL ERROR!!!!!!!!!!!!!!!!!!!!!

si lo ve el error, diganme cual es .... GRACIAS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ese no es el problema

Publicado por Juan_K (181 intervenciones) el 16/06/2005 01:35:11
Sorry, lo acabo de ejecutar y no me da ese error, es mas no me da ninguno y el codigo es el tuyo, exepto claro por la conexion q son las tres lineas de abajo

Dim cn As ADODB.Connection

Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=jc;Initial Catalog=control;Data Source=jbdr"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ERROR DE VB, DESCARGAR SP3

Publicado por carlos (17 intervenciones) el 16/06/2005 01:45:50
ya encontre el error, es un error de visual , revisen..

http://support.microsoft.com/default.aspx?scid=kb;es;223083

de igual forma GRACIAS!!! Juan_K
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar