Access - Objeto Recordset actualizar cantidades

   
Vista:

Objeto Recordset actualizar cantidades

Publicado por Pere (10 intervenciones) el 12/01/2009 10:43:14
Hola compañeros,
estoy creando una base de datos de control de consumibles en access y tengo dudas:
tengo en la tabla Descripcion con el campo stock y en la tabla entrada el campo añadir,
¿como hago que desde el formulario vinculado a la tabla entrada ...al darle al boton me actualize el campo stock de la tabla Descripcion?
estoy mirando ejemplos y estoy perdido
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:Objeto Recordset actualizar cantidades

Publicado por inge (43 intervenciones) el 12/01/2009 15:26:56
Muy simple, al darle click has un código así

Dim BaseA as database, reg as recordset

set basea=currentdb()
set reg=basea.openrecordset("descripcion")
' en este caso ya está abierta la tabla 'descripción'
......
......
,,,,,, ' actualiza o has lo que quieras en esa tabla

mivalor=reg!micampo ' ya guardé en una variable el valor que quiero pasar a la ' otra tabla

reg.close
set reg=basea.openrecordset("entrada")
reg.addnew
reg!micampo=mivalor ' en caso de iun valor nuevo
reg.update

' enc aso de editar entonces es así:
con$="Select * from entrada where micampo = " & mivalor
set reg=basea.openrecordset(con)
reg.edit
reg!micampo=mivalor
reg.update
reg.close
set reg=nothing
set basea=nothing

.........
......

end sub

Listo!!!! muy simple no?

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:Objeto Recordset actualizar cantidades

Publicado por Enrique (1299 intervenciones) el 12/01/2009 19:22:13
En la Tabla "Descripcion" necesitas tener tres campos (mínimo):
Codigo (supongamos que es TEXTO),
Descripcion (lógicamente tambien TEXTO)
Stock (Numérico)

En la Tabla "Entrada" necesitas dos campos (mínimo):
Codigo (con tipo de campo igual al de la Tabla Descripcion, Texto en este caso)
Añadir (Numérico)
Un Botón de comando: Comando1

Ahora en el Procedimiento de Evento "Al hacer click" del campo "Comando1" en el Formulario:

Private Sub Comando1_Click()
DoCmd.RunSQL "UPDATE Descripcion SET Stock = Stock + Añadir WHERE Codigo='" & Me.Codigo & "'"
End Sub

Al hacer click en el botón, el campo Stok del Registro de la tabla "Descripcion" cuyo campo "Codigo" coincida con el Codigo que muestre en ese momento el Formulario, se actualizará con el Stock que había + la cantidad que tenga el campo "Añadir".

Ejemplo:
Codigo: H450 - Descripcion: Paquete hojas DIN A4 - Stock: 125
En el Formulario se muestra el Codigo: H450
En el campo "Añadir" ponemos: 20
Al presionar el botón, el campo Stock de ese artículo en la tabla "Descripcion", se actuarizará a: 145

Creo que de lo que se trata es de ir actualizando el Stock, en este caso incrementarlo y no de sustituirlo por el nuevo valor del campo "Añadir" que según entiendo es lo que haría el sistema que propone Inge.

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:Objeto Recordset actualizar cantidades

Publicado por error de compilacion (10 intervenciones) el 13/01/2009 11:45:47
Hola,
gracias por vuestras respuestas,
he estado siguiendo el consejo de inge i me da un error de sintaxis:
Me explico:
tengo la tabla principal Plaquetes con los campos:
CODPMSA (clave)
Stock
Descripcion
........entre otros

tengo la tabla entrades con los campos:
id (clave autonumerica)
CODPMSA (relacion uno a varios )
moviment (numero a incrementar)
data (fecha)
operari(codigo operario)

codigo

Private Sub afegeix_Click()

MsgBox " Esteu segurs de afegir " & [ moviment] & " unitats?" 'pedimos conformidad

'procedemos
DoCmd.RunSQL "UPDATE Plaquetes SET Plaquetes.Stock = [Stock]+" & Me.moviment& "WHERE CODPMSA="&Me.CODPMSA


I ME SALE ERROR DE SINTAXIS... ¿QUE HAGO MAL?
gracias
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:Objeto Recordset actualizar cantidades

Publicado por Enrique (1299 intervenciones) el 13/01/2009 16:39:40
Hola Pere:

Caso de que CODPMSA sea un campo NUMÉRICO.
DoCmd.RunSQL "UPDATE Plaquetes SET Plaquetes.Stock = Stock + Me.moviment WHERE CODPMSA = "& Me.CODPMSA

Caso de que CODPMSA sea un c ampo TEXTO.
DoCmd.RunSQL "UPDATE Plaquetes SET Plaquetes.Stock = Stock + Me.moviment WHERE CODPMSA = '"& Me.CODPMSA & "'"

En cualquiera de los dos casos. ahora debería funcionar sin marcar error. Observa los pequeños cambios con respecto al tuyo.

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:Objeto Recordset actualizar cantidades

Publicado por Pere (10 intervenciones) el 14/01/2009 01:30:20
Hola,
gracias Enrique por tu aportación.... si ,CODPMSA es campo texto.
me parece que me he olvidado algo... a estas horas no lo veo....
Veo que no hay error de sintaxis, pero cuando le doy al boton para que me modifique el campo Stock, me sale un error : "No encontroCODPMSA el metodo o el dato del miembro"

Cuando des de el formulario Plaquetas le doy al boton entrada me abre el formulario entrada pero me tendria que cargar el campo CODPMSA y no me lo carga...lo tengo en una relacion de uno a varios:
(una plaqueta->varias entradas)
este problema se arreglaria cambiando la configuracion y hacer del formulario entrada un subformulario se me arreglaria... vinculando los campos que yo quiera.. pero si por diseño quiero que me aparezca más independiente... como lo hago?

He provado de crear el boton y con el asistente que me abra el formulario entrada i que me vincule por el campo CODPMSA... pero no me funciona....

GRacias
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