Visual Basic - PARA EXPERTOS

Life is soft - evento anual de software empresarial
 
Vista:

PARA EXPERTOS

Publicado por celso (96 intervenciones) el 28/07/2001 11:20:21
Autor: celso [email protected]
Fecha: 28/07/2001 11:14:39
Asunto: PARA EXPERTOS
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
frmbuscar.Show 1
DataGrid1.Columns(ColIndex) = objBuscado
DataGrid1.Columns("titulo") = objBuscado2
MsgBox ("")
If ColIndex = 2 Then
DataGrid1.Columns(3) = " "
Else
DataGrid1.Columns(2) = " "
End If
DataGrid1.Col = 4
End Sub

Tengo esta rutina en el buttonclick de una celda datagrid, que me sirve para llamar a un formulario que selecciona un campo de otra tabla que me pone en esa celda.
Pues mi problema esta en que solo me funciona si yo paro el programa con un msgbox . Alguien sabe por que ?, Como puedo evitar tener que poner ese msgbox.
Muchas gracias






--------------------------------------------------------------------------------
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:PARA EXPERTOS

Publicado por may (5 intervenciones) el 28/07/2001 11:58:44
No sé porque, pero prueba en poner un "sleep", en vez del msgbox, eso te parará un poco de tiempo para la ejecucion de la hebra y puede que te lleguen los datos bien.(Bueno eso creo)

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

y ponle el tiempo que tu veas.

P.e.
sleep(300)

.May
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:PARA EXPERTOS

Publicado por Luis C. (26 intervenciones) el 28/07/2001 20:27:16
Utiliza la funcion DoEvents.

Solo reemplaza la linea del msgbox por DoEvents
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:NO ME FUNCIONA

Publicado por celso (96 intervenciones) el 29/07/2001 14:47:39
PROBE CON LA FUNCION DoEvents EN LUGAR DE MSGBOX() pero no me funciona.
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:PARA EXPERTOS

Publicado por Adán (79 intervenciones) el 30/07/2001 15:58:18
Eso a mi me pasa seguido, pero creo que es porque lleva cierto tiempo ejecutar ciertas instrucciones. Para evitar eso sugiero que hagas lo siguiente:
(supongamos que la forma donde tienes el DataGrid1 se llama Form1)

'Form1
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Columna=ColIndex
frmbuscar.Show 1
'Como la forma está modal, entonces no se ejecutará nada hasta que lo cierres

If ColIndex = 2 Then
DataGrid1.Columns(3) = " "
Else
DataGrid1.Columns(2) = " "
End If
DataGrid1.Col = 4
End Sub

'Al hacer click en el grid, automáticamente pasas los datos al otro
'datagrid, para que cuando lo cierres, ya estén los datos transferidos

'frmbuscar
Private Sub DataGrid1_ButtonClick(ByVal ColIndex As Integer)
Form1.DataGrid1.Columns(Columna) = objBuscado
Form1.DataGrid1.Columns("titulo") = objBuscado2
End Sub

Obviamente, el ColIndex lo vas a tener que cambiar a una variable pública y objBiscado y ObjBuscado2 van a ser locales.

Más o menos esa es la idea, espero te sirva
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