Visual Basic - ayuda con datagrid

Life is soft - evento anual de software empresarial
 
Vista:

ayuda con datagrid

Publicado por yeni (146 intervenciones) el 01/04/2007 03:26:29
ps tengo un datagrid
lleno los registros en el datagrid

pero luego elijo un registro del datagrid para pasarlo a las cajas de texto y leugo actualizarlo

todo bien hasta ahi
los logro actualizar
pero el problema es k cuando actualizo mi datagrid este vuelve desde el comienzo

y hay un gran porblema ahi

por k supuestamente yo bajo con el cursor hasta el registro 325 del datagrid y cuando refresco el datagrid
este vuelve a visualizarlos registros que estan primero

lo que quiero es refrescar el datagrid pero k el cursor ("la fila que selecciono") se quede en la misma posicion

actualizar pero no mover el cursor o el marcado que le hago a la fila

Por ahi algun capo que me ayude

Gracias anticipadanmente
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:ayuda con datagrid

Publicado por El capo (3 intervenciones) el 01/04/2007 21:59:56
solussion: no refresques el datagrid.
para k lo keres refrescar si no habeis echo nada?
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:ayuda con datagrid

Publicado por yeni (146 intervenciones) el 02/04/2007 03:40:21
creo k no me entendiste o no em explique bien

supuestamente yo le doy click a un registro del datagrid ("FILA")

y los datos pasan a las cajas de texto

luego yo cambio algo de las cajas de texto y actualizo y an actualizar tambien debo actualizar los datos del datagrid

pero para actualizar el datagrid debo refrescarlo y al refrescarlo este vuelve desde el comienzo..

y ps yo no quiero k pierda el foco del registro seleccionado
--------------
si selecciono el registro o fila 500 ps yo quiero k siempre quede enfocado la fila o registro 500 si actualizo o refresco el datagrid

Vamos un Capo k logre ayudarme en esto
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:ayuda con datagrid

Publicado por Luis Prieto (166 intervenciones) el 03/04/2007 02:47:58
Hola, Yeni!!!

Lo puede hacer de esta forma. Solo guardas la pocisión del la fila donde estas ubicada en una variable, luego hacer el update o insert y haces un requery, y, despues te mueves a la fila que guardaste en la variable con el metodo "move"
del recordset. Con eso ya lo tienes

Espero te ayude.

Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim cmd As New ADODB.Command
Dim fila As Integer

Private Sub Command1_Click()
cmd.ActiveConnection = cn
cmd.CommandType = adCmdText
cmd.CommandText = "update tabla2 set nombre='" & Me.Text1 & "' where codigo=" & Me.DataGrid2.Columns(0) & ""
cmd.Execute
rs.Requery
rs.Move fila - 1, 1
End Sub

Private Sub Form_Load()
cn.ConnectionString = "provider=sqloledb;server=.;uid=sa;database=northwind"
cn.Open
rs.CursorLocation = adUseClient
rs.Open "select *from tabla2", cn
Set DataGrid2.DataSource = rs
End Sub

Private Sub DataGrid2_RowColChange(LastRow As Variant, ByVal LastCol As Integer)
On Error Resume Next
Me.Text1 = Me.DataGrid2.Columns(1)
fila = Me.DataGrid2.Columns(0)
End Sub

Saludos!!
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:ayuda con datagrid

Publicado por yeni (1 intervención) el 04/04/2007 04:17:43
supuestamente tengo en mi primera columna el item
o el codigo del registro
pero supuestamente yo hago un filtro con el like

asi k puede ser k el codigo k supustamente tu estas pensando k esta ordenado
al hacer el filtro y ordenado por nombre entosn
este puede quedar desordenado

osea algo asi

4
10
50
5

entons como k no me ayuda la respuesta k me diste
o no te entendi bien (si es asi por fa explicame bien )

pero gracias de todas maneras
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:ayuda con datagrid

Publicado por Luis Prieto (166 intervenciones) el 04/04/2007 23:32:33
Hola, Yeni!!

Lo siento cometi una error, fue un lapsus.

Corrigiendo, lo que tienes que guardar en fila es el numero de fila del datagrid

Asi:

fila = Me.DataGrid2.Row

Con ahora si listo.

Saludos!!!
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:ayuda con datagrid

Publicado por yeni (146 intervenciones) el 05/04/2007 05:00:51
ps no esta listo aun

ya intente el row

pero el row solo te da la posicion de la filas k estan visibles

por ahi ponte k tenga 400 filas o regsitrsos
la cual yo selcciono la 240

pero estan visibles de 20 en 20

refresco el grid y
no funka
ya k supuestamente me dara el row pero de la fila visible y al refrescarlo serian otros rows las k estarian visibles y naa de naaaa
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:ayuda con datagrid

Publicado por Luis Prieto (166 intervenciones) el 05/04/2007 19:27:16
Hola, Teni!!!

La pregunta que haces se entiende, pero, especifica bien que es lo que tienes para poder ayudarte mejor.

Me gustaria que hablemos por msn seria mejor. Y por cierto ese es tu msn?

Saludos!!
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:ayuda con datagrid

Publicado por yo (3 intervenciones) el 05/04/2007 23:22:57
Se nota que queres ligar so bribon! la tia? supuestamente os esta bacilando o no sabe lo que quiere.
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

Como reposicionar un DataGrid

Publicado por Benjo (679 intervenciones) el 07/04/2007 06:59:05
En la función de Guardado, manejas dos variables, el Row y el FirstRow

Ejemplo en donde Grid es el nombre del DataGrid

Private Sub CommandSave()
Dim RowNow as long, VisibleRow as long
RowNow = Grid.Row: VisibleRow = Grid.FirstRow

DataBD.Update
DoEvents
On Error Resume Next
Grid.SetFocus
Grid.FirstRow = Val(VisibleRow)
Grid.Row = Val(RowNow)
'Por si actualizo el último y pierdo el registro
If Err.Number = 6149 Then Grid.Row = Val(RowNow) - 1
'Se posiciona a la Izquierda, porque la celda está en el extremo derecho
SendKeys "{RIGHT}"
End Sub

Este metodo lo implemento en una aplicación que corro actualmente sin problema. Adapte el código para ele ejemplo, no freo haber oitido detalle alguno.
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