Jueves 7 de Noviembre de 2024, 23:34
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Re: Una cosa muy extraña <:-S
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: Una cosa muy extraña <:-S (Leído 5264 veces)
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
en:
Miércoles 27 de Agosto de 2003, 20:31 »
0
Bueno, mi pregunta es un poco extraña, a ver si le pueden encontrar solucion:
En mi formulario, cuando pulsas un command, para mostrar otro, no se pq al cerrar el forulario mostrado el recordset se mueve al primero, p. ej. si yo estoy en la factura nº 12 y pulso un boton para mostrar un formulario donde hay la lista de articulos, al cerrar ese form de articulos, el recordset se mueve al primero ( todos los recordsets ).
Mi pensamiento es q viene de la listbox ( hay toda la lista de facturas, y al seleccionar un objeto de esa lista, el recordset 1 y 2 se mueven al registro seleccionado ).
Espero haberme explicado con claridad.
Gracias:)
Tweet
Jordi_BCN ···· Barcelona
J.M.Movilla
Miembro MUY activo
Mensajes: 427
Re: Una cosa muy extraña <:-S
«
Respuesta #1 en:
Miércoles 27 de Agosto de 2003, 21:08 »
0
Ya irás dándote cuenta, Jordi, de que en realidad en programación hay muy pocas cosas extrañas... la inmensa mayoría de las veces esas cosas son totalmente lógicas...
En este tu caso, cuando abres el nuevo formulario modificarás el puntero del recordset que estás presentando, o cuando menos al volver al formulario padre se habrá perdido el puntero del grid que tienes en pantalla...
Si tú, antes de leer el segundo formulario defines una variable con el puntero del registro, por ejemplo
nReg = Adodc1.RecordSet.Bookmark
y cuando vuelvas del formulario secundario apuntes a ese registro mediante
Adodc1.RecorSet.Bookmark = nReg
es de esperar que te encuentres que el grid está apuntando a la misma factura que antes de cambiar de formulario.
Saludos y suerte
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Una cosa muy extraña <:-S
«
Respuesta #2 en:
Miércoles 27 de Agosto de 2003, 21:23 »
0
Como novedad: Esa no me la sabia, ya decia yo que deberia existir algo para solucionar ese inconveniente, algo decente, porque yo me ponia a hacer contadores en los modulos, y retornaba el recordset mediante ciclos en getfocus... que cosa más horrible.
Menos mal aca esta JM, que se las sabe casi todas, y las que no se sabe se las averigua...
Chau
Juank:good:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
Respuesta #3 en:
Miércoles 27 de Agosto de 2003, 21:33 »
0
Movilla, eres todo un crack en vb!!!
Garcias:)
Jordi_BCN ···· Barcelona
HurryCrack
Miembro MUY activo
Mensajes: 206
Re: Una cosa muy extraña <:-S
«
Respuesta #4 en:
Miércoles 27 de Agosto de 2003, 23:31 »
0
Por ke no utilizas una variable global en un modulo para tu recorset, de forma ke no se mube a no ser ke tu lo muebas. Es otra forma mas.
nota: te vamos a poner MoviCrack, jiji
un saludo
HurryCrack
Miembro MUY activo
Mensajes: 206
Re: Una cosa muy extraña <:-S
«
Respuesta #5 en:
Miércoles 27 de Agosto de 2003, 23:31 »
0
Por ke no utilizas una variable global en un modulo para tu recorset, de forma ke no se mueve a no ser ke tu lo muevas. Es otra forma mas.
nota: te vamos a poner MoviCrack, jiji
un saludo
J.M.Movilla
Miembro MUY activo
Mensajes: 427
Re: Una cosa muy extraña <:-S
«
Respuesta #6 en:
Miércoles 27 de Agosto de 2003, 23:34 »
0
Siento no ser capaz de deciros quién me enseñó esos trucos... Pero lo que sí puedo afirmaros es que no lo he inventado yo... O sea que os agradezco vuestros elogios, pero no soy yo quien debe recibirlos...
Gracias.
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
Respuesta #7 en:
Jueves 28 de Agosto de 2003, 09:02 »
0
:'-( Pues como siempre, soy ntan malo q a pesar de q Movilla me lo explique no lo puedo usar:(
Mi codigo:
Al hacer click para habrir el form
Private sub Command1_Click()
dim nReg as ineteger
nReg = Adodc1.Recordset.BookMark
End Sub
Quizas me diran q soy muy malo... pero :'( no se cm hacerlo:no:
Espero q me ayuden
Jordi_BCN ···· Barcelona
J.M.Movilla
Miembro MUY activo
Mensajes: 427
Re: Una cosa muy extraña <:-S
«
Respuesta #8 en:
Jueves 28 de Agosto de 2003, 10:50 »
0
Vamos a ver. Detrás de tu línea:
nReg = Adodc1.Recordset.BookMark
pondrás la línea de presentar el segundo formulario:
frmForm2.Show vbModal
y finalmente, para que cuando hagas el UnLoad del segundo formulario, al volver al primer formulario recupere el puntero del recordset:
Adodc1.Recordset.BookMark=nReg
Espero que ahora sí te funcione.
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
Respuesta #9 en:
Jueves 28 de Agosto de 2003, 11:01 »
0
nReg, es el número de registro que hay en el frmForm1 si? Osea, q podria ser el contenido de un textbox?
Gracias
Jordi_BCN ···· Barcelona
J.M.Movilla
Miembro MUY activo
Mensajes: 427
Re: Una cosa muy extraña <:-S
«
Respuesta #10 en:
Jueves 28 de Agosto de 2003, 11:49 »
0
nReg está definido como Integer... es decir, es el número de registro del recordset... porque tú hablabas de que al recuperar el formulario SE TE IBA EL PUNTERO AL PRIMER REGISTRO... Por eso te doy la fórmula para que recupere el registro al que apuntaba antes de leer el segundo formulario...
Si lo que quieres es mantener el contenido del textbox tendrías que definir una variable de tipo texto, asignarla y luego recuperarla:
Dim cText As String
cText = Text1.Text
frmForm2.Show vbModal
Text1.Text = cText
Ahora sí recuperarías el contenido original del textbox...
Saludos
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
Respuesta #11 en:
Jueves 28 de Agosto de 2003, 15:23 »
0
No entiendo, lo q me decias primero ya era correcto, yo solo quiero conservar el registro seleccionado, q no se me mueva al primero. Pero no se donde colocarlo ese codigo :-S
Ayudenme!!! :'-(
Jordi_BCN ···· Barcelona
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
Respuesta #12 en:
Jueves 28 de Agosto de 2003, 20:55 »
0
En Command1_Click
text1.text = adodc1.recordset.bookmark
form2.show vbmodal
En form2_Unload
adodc1.recordset.bookmark = text1.text
Es esto lo q debo hacer?? Gracias
Jordi_BCN ···· Barcelona
J.M.Movilla
Miembro MUY activo
Mensajes: 427
Re: Una cosa muy extraña <:-S
«
Respuesta #13 en:
Jueves 28 de Agosto de 2003, 23:51 »
0
En tu consulta inicial decías:
si yo estoy en la factura nº 12 y pulso un boton para mostrar un formulario donde hay la lista de articulos, al cerrar ese form de articulos, el recordset se mueve al primero
Está claro que hablas del registro, no de un textbox... Mis respuestas van todas dirigidas a recuperar el registro inicial, la factura a la que apuntaba antes de presentar el segundo formulario. No sé qué quieres hacer con el textbox al que te refieres últimamente...
Saludos
Jordi_BCN
Miembro activo
Mensajes: 59
Re: Una cosa muy extraña <:-S
«
Respuesta #14 en:
Viernes 29 de Agosto de 2003, 07:41 »
0
El Text1, contiene el número de factura, entiendes? por eso lo utilizaba para lo del BookMark [Adodc1.Recordset.Bookmark = Text1.Text ( numero de factura ) ]
Espero q ahora si lo entiendas bien:)
Jordi_BCN ···· Barcelona
Brroz
Miembro de PLATA
Mensajes: 1058
Re: Una cosa muy extraña <:-S
«
Respuesta #15 en:
Viernes 29 de Agosto de 2003, 08:49 »
0
Aparte de la correcta solución que te ha proporcionado J.M.Movilla, pienso en mi atrevimiento, que deberías replantearte el método y lógica de tu código: que abras un formulario no debe provocar que se mueva el puntero del recordset (sin saber más me da la sensación que se está desencadenando un evento en un momento que tú no deseas). Además veo que en los últimos mensajes te preocupas por el valor que muestra un textbox, cosa que debería ser indiferente si al textbox le asignas su valor en el momento adecuado. A lo mejor es mucho decir por mi parte, pero te aconsejaría que repasaras el código que tienes en los distintos eventos.
De todas formas, repito que la solución que te brindan debería solventar tu incidencia perfectamente.
Sort.
J.M.Movilla
Miembro MUY activo
Mensajes: 427
Re: Una cosa muy extraña <:-S
«
Respuesta #16 en:
Viernes 29 de Agosto de 2003, 16:57 »
0
es que no te das cuenta de que el Número de Factura no puede ser el Bookmarck de una tabla... el Bookmarck ha de ser obligatoriamente el NÚMERO DEL REGISTRO, el puntero, mejor dicho...
acalanto
Miembro activo
Mensajes: 80
Re: Una cosa muy extraña <:-S
«
Respuesta #17 en:
Viernes 29 de Agosto de 2003, 17:15 »
0
Estoy de acuerdo con Brozz. Debes de tener un envento que 'refresca' el recordset y va al primer registro. Probablemente en la activación de formulario Form_Activate. con lo cual. a pesar de que el formulario nuevo lo habrás Modalmente, cuando lo cierras el formulario llamante (El que tiene la factura), recupera el foco y procesa el evento Activate. Si ahí tienes código que refresca el Recordset, este se irá al primer registro inevitablemente.
Movilla te da una solución correcta que es guardar el registro activo (Marca de Libro) que no es otra cosa que un apuntador del recordset (No es el número de factura, sino el bloque de la base de datos que contiene ese número de factura si no es que otro usuario la elimina con lo que te encontrarías una pequeña sorpresa).
Buen consejo de Brozz, revisa tu código que seguro que cuando cierras el segundo fromulario y el primero toma el enfoque, reinicias la consyulta a los datos perdiendo por tanto el registro en el que te encontrabas.
Un cordial saludo
-Acalanto-
Jordi_BCN
Miembro activo
Mensajes: 59
Una cosa muy extraña <:-S
«
Respuesta #18 en:
Viernes 29 de Agosto de 2003, 20:20 »
0
Bien, como decian, el problema estaba en form_activate allí tenia el codigo rs.movefirst
Gracias por toda vuestar ayuda! Salu2
Jordi_BCN ···· Barcelona
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Visual Basic 6.0 e inferiores
(Moderador:
F_Tanori
) »
Re: Una cosa muy extraña <:-S