Recorrer en vertical los registros de un campo, para comprobar su valor y...

Me gustaría que si pudierías me ayudarais en los siguiente. Tengo un formulario con dos campos (Seleccion y Articulo), lo que pretendo hacer es seleccionar un articulo mediante el campo Seleccion (tipo de datos Si / No) para posteriormente tomarlo y llevarme ese dato a otro campo. Pero necesito que si hay algún otro registro marcado, se desmarque. Ocurre que como tengo muchos artículos a veces se nos olvida desmarcarlos y en ocasiones hay dos marcados. Es decir cuando marque uno me recorra todos los registros y me los ponga a cero (estén a uno o no) todos los registros menos el que acabo de marcar.

Como puedo hacerlo, no sé como empezar

3 Respuestas

Respuesta
1

No se si es exacto lo que quieres. Yo haría un formulario basado en la tabla y en el evento al cargar el formulario le pondría lo siguiente:

If Me.seleccion = True Then
Me.seleccion = False
End If

Así te los desmarca todos

¡Gracias! pero no era eso lo que buscaba, lo que intentaba era desmarcar todos menos el que marco. Gracias de todas maneras ya lo hemos solucionado.

Saludos

Respuesta
2

Javier: En el Evento después de Actualizar de ese Check Box actualiza el resto con algo así:

Currentdb.Execute "UPDATE Seleccion SET TuTabla.Seleccion=0 WHERE TuTabla.Articulo <> " & Me.Articulo

Para un identificador numérico. Si fuera texto:

.................<> '" & Me.Articulo & "'"

Un saludo >> Jacinto

Javier: Disculpa que he pulsado sin repasar.

Donde pone UPDATE Seleccion, debe poner UPDATE TuTabla, siendo evidentemente TuTabla el Nombre que tengas. Un saludo >> Jacinto

Gracias eso es lo que buscaba, y si en vez de dos campos, como selección y Artículos tuviera, ¿tres cómo por ejemplo selección Articulo y fecha?

Javier: La fecha que comentas, ¿la quieres actualizar o la quieres hacer servir de Filtro?

Un saludo >> Jacinto

Lo que pretendo es una vez marcado el registro adecuado, mediante el campo si/no, tomar ese valor Articulo  y copiarlo en otra tabla. Lo que quería saber es si hay más de dos campos, ¿en que cambia el código?. Ahora mismo solo tengo articulo, pero me gustaría llevarme un campo fecha, y un campo observaciones

Javier: Para traspasar los datos de un registro a "Otra" tabla la SQL sería de Anexado

Mira una contestación que di aquí a otro usuario y hay dudas y aclaraciones.

Crear consulta de anexar y borrar (para sacar registros de una tabla y pasarlos a otra)

En esa SQL no hay claúla WHERE que dependerá de lo que quieras "Filtrar". Saludos >> Jacinto

Respuesta
2

Lo primero que se me ocurre es que en el evento "después de actualizar" de Selección, pongas:

If Me.Selección=-1 Then  
  CurrentDb.Execute "UPDATE NombreTabla SET Seleccion=0 WHERE Articulo<>" Me.Articulo
End If

Y si articulo no fuera un campo numérico (o sea fiuera de texto):

If Me.Selección=-1 Then  
  CurrentDb.Execute "UPDATE NombreTabla SET Seleccion=0 WHERE Articulo<>'" Me.Articulo & "'"
End If

Solo has de poner en vez de NombreTabla el nombre de la tabla donde guardas los datos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas