Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

editar y guardar msflexgrid

Estas en el tema de editar y guardar msflexgrid en el foro de Visual Basic clásico en Foros del Web. como edito y guardo un msflexgrid desde un boton? que me guarde lo que modifique en otra tabla y que la tabla de donde se ...
  #1 (permalink)  
Antiguo 09/06/2008, 10:10
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
editar y guardar msflexgrid

como edito y guardo un msflexgrid desde un boton?

que me guarde lo que modifique en otra tabla y que la tabla de donde se estan cargando los datos no me los modifique.


gracias
  #2 (permalink)  
Antiguo 10/06/2008, 16:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: editar y guardar msflexgrid

por favor ayuda me super urge ya me quebre la cabeza y no se como hacerlo

como puedo cargar 1 tabla en un msflexgrid, que lo pueda editar pero que los cambios me los guarde en otra tabla por medio de un boton y que en la tabla donde carga los datos no sufra ninguna modificacion.



de antemano Gracias y disculpen la molestia
  #3 (permalink)  
Antiguo 11/06/2008, 00:49
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: editar y guardar msflexgrid

Hola william,

para cargar los datos del Grid en una segunda tabla:

Creas un recordset a esa tabla (debe tener los mismos campos que la tabla anterior).

Código:
For j = 1 To MSFlexGrid1.Rows - 1
                rs.AddNew
                For i = 1 To MSFlexGrid1.Cols - 1
                    If Not IsNull(MSFlexGrid1.TextMatrix(j, i)) Then
                        rs(i - 1) = MSFlexGrid1.TextMatrix(j, i)
                    End If
                Next i
                rs.Update
            Next j
Las variables i - j son de tipo numérico (Integer o Long) según tus necesidades.

  #4 (permalink)  
Antiguo 11/06/2008, 10:47
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: editar y guardar msflexgrid

ese lo puedo aplicar a un mshflexgrid?

por que lo aplique y me marca tipo de error:

aqui me marca error

rs(i - 1) = MSFlexGrid1.TextMatrix(j, i)
  #5 (permalink)  
Antiguo 11/06/2008, 11:38
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: editar y guardar msflexgrid

Cita:
Iniciado por william_085 Ver Mensaje
ese lo puedo aplicar a un mshflexgrid?

por que lo aplique y me marca tipo de error:

aqui me marca error

rs(i - 1) = MSFlexGrid1.TextMatrix(j, i)
¿Cuál es el error que te marca?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 11/06/2008, 12:14
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: editar y guardar msflexgrid

Cita:
Iniciado por william_085 Ver Mensaje
ese lo puedo aplicar a un mshflexgrid?

por que lo aplique y me marca tipo de error:

aqui me marca error

rs(i - 1) = MSFlexGrid1.TextMatrix(j, i)

Hola de nuevo,

sí, se lo puedes aplicar a un control MSHFlexGrid (es lo mismo).

El ejemplo que puse es para un Grid que tiene las propiedades FixedCols = 0 y FixedRows = 1. Comprueba estos valores en el diseño de tu Grid y ajústalos al campo del recordset.

  #7 (permalink)  
Antiguo 12/06/2008, 10:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: editar y guardar msflexgrid

lo hise asi pero no me guarda nada.

db.Open "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & "C:\PEDIDOS\pedidos\Imprimir\pedidos\sucursal. mdb" & ";Persist Security Info=False"

Dim j As Integer
Dim i As Integer

Do While j < MSHFlexGrid1.Rows
If MSHFlexGrid1.TextMatrix(x, y) <> "" Or MSHFlexGrid1.TextMatrix(x, y) <> "" Or MSHFlexGrid1.TextMatrix(x, y) <> "" Then

rs.Open "select clave,sucursal,pedido,existencia,vuelta1,vuelta2,v uelta3,fecha,total from pedidos", cnn, adOpenStatic, adLockOptimistic

rs.AddNew

'rs!clave = Adodc1.Recordset("clav_art")
rs!sucursal = Label1
rs!pedido = MSHFlexGrid1.TextMatrix(j, 1)
'rs!existencia = MSHFlexGrid1.TextMatrix(j, 2)
rs!vuelta1 = MSHFlexGrid1.TextMatrix(j, 3)
rs!vuelta2 = MSHFlexGrid1.TextMatrix(j, 4)
rs!vuelta3 = MSHFlexGrid1.TextMatrix(j, 5)
rs!fecha = Date


rs.Update
End If
j = j + 1

Loop

que pasara
  #8 (permalink)  
Antiguo 13/06/2008, 01:13
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: editar y guardar msflexgrid

La verdad es que no entiendo muy bien ese código.
Estás abriendo continuamente (dentro del bucle) el recordset y no lo cierras con lo cual debería dar error y si no lo dá es porque nunca se cumple la condición If.

- Las tres veces estás condicionando la misma celda (x,y), por cierto variables sin declarar (acostumbra a poner la instrucción "Option Explicit" al principio del módulo, para que detecte este tipo de error).

- El recordset lo abres con una conexión (cnn) que no existe, ya que la conexión se llama "bd"

- Declaras una variable (i) que no se usa.

- En el recordset cargas un campo (Total) que no se utiliza.

  #9 (permalink)  
Antiguo 13/06/2008, 10:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 110
Antigüedad: 17 años, 9 meses
Puntos: 0
Respuesta: editar y guardar msflexgrid

muy bien avellaneda, ya me quedo bien, solo una ultima duda por favor.

en el msgbox"no hay datos a guardar", me checa todas las filas y columnas del grid pero si le doy aceptar al mensaje me vuelve abrir otro msgbox, vaya me abre 1 msgbox por fila que checa, como le puedo hacer para que solo me salga el mensaje 1 sola ves?


Do While i < MSHFlexGrid1.Rows



If Me.MSHFlexGrid1.TextMatrix(i, 3) = "" And Me.MSHFlexGrid1.TextMatrix(i, 4) = "" And Me.MSHFlexGrid1.TextMatrix(i, 5) = "" Then


msgbox"no hay datos a guardar" *******aqui es donde te comento


Else

Dim db As Connection
Dim adoPrimaryRS As Recordset
Set db = New Connection
Set adoPrimaryRS = New Recordset
db.CursorLocation = adUseClient
db.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & "C:\PEDIDOS\pedidos\Imprimir\pedidos\sucursal. mdb" ' base path es direccionamiento a la base de datos
adoPrimaryRS.Open "Select sucursal,pedido,existencia,vuelta1,vuelta2,vuelta3 ,fecha,total from pedidos", db, adOpenStatic, adLockOptimistic
adoPrimaryRS.AddNew
'adoPrimaryRS!id_registro = CodigoRegistro
'adoPrimaryRS!clave = Me.MSHFlexGrid1.TextMatrix(i, 1)
adoPrimaryRS!sucursal = Label1
adoPrimaryRS!pedido = Me.MSHFlexGrid1.TextMatrix(i, 1)
adoPrimaryRS!existencia = Val(Me.MSHFlexGrid1.TextMatrix(i, 2))
adoPrimaryRS!vuelta1 = Val(Me.MSHFlexGrid1.TextMatrix(i, 3))
adoPrimaryRS!vuelta2 = Val(Me.MSHFlexGrid1.TextMatrix(i, 4))
adoPrimaryRS!vuelta3 = Val(Me.MSHFlexGrid1.TextMatrix(i, 5))
adoPrimaryRS!total = Val(Me.MSHFlexGrid1.TextMatrix(i, 2)) + Val(Me.MSHFlexGrid1.TextMatrix(i, 3)) + Val(Me.MSHFlexGrid1.TextMatrix(i, 4)) + Val(Me.MSHFlexGrid1.TextMatrix(i, 5))
adoPrimaryRS!fecha = Date
'adoPrimaryRS!hora = Time
'adoPrimaryRS!cantidad = Val(Me.MSHFlexGrid1.TextMatrix(i, 4))
'adoPrimaryRS!Total = Val(Me.MSHFlexGrid1.TextMatrix(i, 5))
adoPrimaryRS.Update




MSHFlexGrid1.TextMatrix(i, 3) = ""
MSHFlexGrid1.TextMatrix(i, 4) = ""
MSHFlexGrid1.TextMatrix(i, 5) = ""
MSHFlexGrid1.TextMatrix(i, 6) = ""


End If

'Next i

i = i + 1
Loop
Else


End If
  #10 (permalink)  
Antiguo 13/06/2008, 11:17
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: editar y guardar msflexgrid

Hola,

sigo sin entender bien los que quieres hacer. ¿Si las columnas 3,4 y 5 (todas ellas) de la fila "i" no contienen datos, que no las grabe en la tabla (es decir, que se las salte) y siga con el proceso, o detener el proceso?

Y otra cosa, tanto la conexión a la BD como el recordset, deberias declararlos y abrirlos antes del bucle .

  #11 (permalink)  
Antiguo 10/09/2012, 15:33
 
Fecha de Ingreso: septiembre-2012
Ubicación: CHILE
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Respuesta: editar y guardar msflexgrid

AVELLANEDA RECIBE MIS Saludos y buena suerte.

favor espero me puedas reafirmar mi saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:08.