Access - update por varible!!!

 
Vista:

update por varible!!!

Publicado por Nat (16 intervenciones) el 14/09/2007 23:53:17
Hola a todos...recurro una vez mas a uds para encontrarle una solucion a mi problema.
Tengo en un campo del formulario los ID de los campos que hay q actualizar (los traigo de otro formulario donde el ususario elije los registros que quiere modificar), entonces en el campo muestra tengo por ej: 81,91,32 que son los registros a midificar.....en el form hay un botonn que lleva a auna consulta de actualizacion. lo q no puedo lograr es funcione.
El boton llama a una consulta de es te tipo

Update Tabla set campo1='campo', campo3='otro' where id IN (Formulario!nombredelform!muestra)

Formulario!nombredelform!muestra=81,91,32 (por ejemplo, q son los registros elegidos )
hago lo mimo con un select pero nada!!!

Si alquien puede ayudarme se los voy agradecer mucho
SAludos!! :)
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:update por varible!!!

Publicado por flechas jesus16 (11 intervenciones) el 17/09/2007 03:24:07
A ver si te puedo ayudar, dime cual es error que se te genera.... y si es formulario en vista de hoja de datos o en vista de formulario....
Sin embargo tirando unas flechas revisa esto:
En la clausula where escribes:
where id IN (Formulario!nombredelform!muestra)
yo escribirìa
where (((Tabla.Id)= '" & Formulario!nombredelform!muestra & "' ))
necesito mas detalles....
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:update por varible!!!

Publicado por Natalia (16 intervenciones) el 17/09/2007 14:14:55
Gracias Jesus por tu respuesta, te cuanto q el error q me da es q no encuentra los registros que les paso por esa variable.
El formulario es en vista formulario y tiene un boton aceptar donde llama a una cosulta de actualizacion.
Lo que me recomendaste lo hice pero el valor a comparar es numerico por lo q me dio error.
Gracias nuevamente por tu ayuda
Natalia
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:update por varible!!!

Publicado por flechas jesus16 (11 intervenciones) el 17/09/2007 14:58:14
Bueno Natalia si el dato de comparacion es numerico no debes colocar las comillas simples ( ' ) en la sentencia where y en general donde pases valores numericos, ahora si son fechas o un string por supuesto llevan las comillas simples.

Si los datos los tomas de un formulario entonces debes asignar a cada campo que pasas a la update el valor que este toma en dicho formulario te escribo un ejemplo de codigo que debes colocar en tu boton:


Private Sub Comando111_Click()

dim xx, yy, id as variant ' (los declaro variant si quiero manejar eventos de validaciones especiales)

dim Str_SQL_1 as string

yy = Me.Campo1.Value ' (Campo1 es el nombre de cuadro de texto del form que posee la informacion que deseas asignar, lo supongo Numerico entonces NO lleva comillas simples)

xx = Me.Campo2.Value ' (Campo2 es el nombre de cuadro de texto del form que posee la informacion que deseas asignar, lo supongo string entonces lleva comillas simples)

Id = Me.CampoId.Value ' (CampoId es el nombre de cuadro de texto del form que posee id del registro que tiene la informacion que deseas asignar, lo supongo string entonces lleva comillas simples)


Str_SQL_1 = "UPDATE Tabla SET Tabla.Campo1 = " & yy & _
" Tabla.Campo2 = ' " & xx & " ' " & _
"WHERE (((Tabla.Id)= ' " & Id & " ' ));"



DoCmd.SetWarnings False ' Deshabilita los cuadros de mensaje de access


DoCmd.RunSQL Str_SQL_1 'Pasa al motor JET el texto y se Ejecuta como una SQL) COMANDO CLAVE


DoCmd.SetWarnings True ' habilita los cuadros de mensaje de access


DoCmd.Close acForm, "Nombre form"

MsgBox "Los Cambios se han efectuado Correctamente"

End Sub

chao 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

RE:update por varible!!!

Publicado por Natalia (16 intervenciones) el 17/09/2007 21:50:28
Gracias Jesus con lo que me enviaste funciona asi como lo enviaste mi problemes es q yo necesito un update...in...ya q no puede ser un registro o varios los registros que pueden actualizarse
en un campo del formulario tengo la lista de los id seleccionados con el ste formato
83,85,92
cuando hago lo ste
Str_SQL_1 = "UPDATE Tabla SET Tabla.Campo1 = " & yy & _
" Tabla.Campo2 = ' " & xx & " ' " & _
"WHERE (((Tabla.Id) IN ( ' " & Id & " ') ));"

espero puedas ayuarme
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:update por varible!!!

Publicado por flechas jesus16 (11 intervenciones) el 18/09/2007 00:54:43
Enviame una pantalla o un pdf con lo que quieres no lo entiendo bien del todo..... pero segun veo puedes hacer un ciclo While separando el string 83,85,92, y aplicando la sentencia UPDATE como te indique antes; esto pues si en cada caso los registros tienen modificaciones diferentes. Ahora si la modificacion es para todos igual con un solo UPDATE basta así:

Tienes que agregar comillas simples al id es decir tu lo tienes asi:
83,85,92 debes tenerlo asi '83', '85', '92' puedes usar la siguiente función

Function InsertaComillas(str_1)
Pos = Nz(InStr(1, str_1, ","))
While Pos > 0
str_1 = Left(str_1, Pos - 1) & "','" & Right(str_1, Len(str_1) - Pos)
Pos = Nz(InStr(Pos + 2, str_1, ","))
Wend
InsertaComillas = str_1
End Function

para adecuar tu id y luego ejecutas este

Str_SQL_1 = "UPDATE Tabla SET Tabla.Campo1 = " & yy & _
" Tabla.Campo2 = ' " & xx & " ' " & _
"WHERE (((Tabla.Id) IN ( ' " & InsertaComillas(str_1) & " ') ));"

revisa a ver si te sirve......
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:update por varible!!!

Publicado por flechas jesus16 (11 intervenciones) el 18/09/2007 01:16:45
Natalia disculpa donde escrib "str_1" en el texto de la SQL va el "Id" queda asi:

Str_SQL_1 = "UPDATE Tabla SET Tabla.Campo1 = " & yy & _
" Tabla.Campo2 = ' " & xx & " ' " & _
"WHERE (((Tabla.Id) IN ( ' " & InsertaComillas(Id) & " ') ));"
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:update por varible!!!

Publicado por Natalia (16 intervenciones) el 18/09/2007 13:57:23
Jesus, ayer envie a tu correo un jpg con las pantallas, lo recibiste?
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:update por varible!!!

Publicado por flechas_jesus16 (11 intervenciones) el 18/09/2007 20:51:15
natalia no recibi los adjuntos de tu correo solo el texto.....
te envie una mdb a tu correo que debe ayudarte, chao......
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:update por varible!!!

Publicado por Natalia (16 intervenciones) el 18/09/2007 21:03:23
Gracias Jesus lo que me enviaste se ajusta perfecto a lo que yo necesitaba
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