Access - encargado

   
Vista:

encargado

Publicado por Justo (6 intervenciones) el 06/01/2009 23:00:13
hola:
No soy programador pero me hago alguna schpucllas en access y me he quedaddo atascado y necesito un poco de ayuda
intentaré explicar mi problema haber si alguien lo entiende y me puede ayudar
necesito modificar un campo (SINO) de un registro en una tabla según el resultado de un campo de una consulta consulta para identificar el registro que debo modificar hay un campo númerico común en la tabla y en la consulta
La modificación en la tabla tiene que hacerla cuando el campo de la consulta es 0 y tiene que hacerlo por cada linea que sea 0 en la consulta
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:encargado

Publicado por Marcos (236 intervenciones) el 07/01/2009 01:59:31
Justo.
Ayúdanos a ayudarte.
No te explicas bien.

- La consulta se basa en la misma tabla en donde está el campo SINO a modificar ??
- O la consulta se basa en otra tabla diferente ??

Trata de explicarnos mejor (respeta las comas y los puntos seguidos en la redacción) y veremos que podemos hacer.
Marcos
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:encargado

Publicado por Justo (6 intervenciones) el 07/01/2009 11:21:30
Gracias Marcos por tu interes
La consulta está integrada en un subformulario y se compone de varias tablas.
Cuando ejecuto el formulario es cuando debe realizar el proceso que quiero hacer.
Te mando un esquema a ver si así lo entiendes mejor

Private Sub Form_Load()
If (Me![Entregado]) = 0 Then

Dim dbsNorthwind As DAO.Database
Dim rstPedidos As DAO.Recordset

Set dbsNorthwind = CurrentDb
Set rstPedidos = dbsNorthwind.OpenRecordset("Tbl_PedidosDeCompra")

rstPedidos.MoveFirst
Do Until rstPedidos.EOF
If rstPedidos!oPendiente = True Then
rstPedidos.Edit
rstPedidos!oPendiente = False
rstPedidos.Update
End If
rstPedidos.MoveNext
Loop
End If
End Sub

Con este esquema cuando en la consulta hay un valor cero en la columna "Entregado", me cambia todos los campos de la tabla.

Creo que el bucle debería hacerlo sobre la consulta y por cada linea que el campo "Entregado" está a cero, ir a la tabla y cambiar el valor en la linea correspondiente.
Para saber que registro hay que modificar en la tabla,hay un campo que se llama "tNumPedCom" que es entero largo y en la consulta el campo se llama igual.
El campo "tNumPedCom" es el número de pedido
El esquema anterior no lo he hecho yo lo he copiado de un libro y lo he retocado un poco.
Espero que lo entiendas
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:encargado

Publicado por Marcos (236 intervenciones) el 07/01/2009 13:57:12
Justo.
En tu código, después de la línea:
Do Until rstPedidos.EOF

La línea siguiente debe ser así:

If rstPedidos!oPendiente = True And rstPedidos!tNumPedCom = Me.tNumPedCom Then

Lo probé y funciona.

Para que funcione en el formulario debes agregar el campo tNumPedCom. Si no le das uso en el formulario puedes dejarlo no visible. De lo contrario si lo estás usando en el formulario, mucho mejor.

Lo que hace esto es que sólo te cambiará a falso tu campo oPendiente (Si/No) siempre y cuando tu campo SI/NO esté en true y además los campos tNumPedCom de tu tabla y de tu consulta (que basas el formulario) sean iguales.

Saludos
Marcos
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:encargado

Publicado por Justo (6 intervenciones) el 07/01/2009 16:33:00
Hola Marcos
La linea que me has enviado funcioana a la perfección, pero me queda un problema.
El problema es que si en la consulta hay mas de un registro que está a cero solo me cambia en la tabla el primero que encuentra y tengo que salir del formulario y volver acargarlo para que me cambie otro registro y así sucesivamente hasta que no queda ninguno.
De todas formas Marcos, Muchas, Muchisimas Gracias
Te agradezco muchisimo el interés que te has tomado y la elegancia con la que me has sulucionado el problema.
Muchas Gracias Marcos
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