Dim N_1 As integer
N_1 = 3
strSQL = "UPDATE ALUMNOS SET ALUMNOS.N1=N_1"
CurrentDb.Execute strSQL
|
|
#3 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 59
|
Me encanta. Muchas gracias. Llevaba dias probando todas las combinaciones y era la primera vez que entraba en el foro, estoy contentisimo. No será la última vez que abuse de vuestros conocimientos, he hecho un curso de programacion en Access en el aula Mentor y aunque he aprendido cosas, tengo aún muchas lagunas. Muchas gracais y seguiremos en contacto. Juan Fco.
|
|
|
|
|
|
#5 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 59
|
A pesar de funcionar bien la instruccion, ahora tengo el siguiente problema: N_1 es el resultado de una operación con otras variables (N_1=(E1+2*E2)/3), si aplico la instruccion SQL anterior con N_1, me sustituye todos los registros con el mismo valor de la expresion N_1 para el registro que estoy usando (cuando en realidad cada registro tiene su valor de E1 y E2), en cambio si aplico la instruccion SQL con (E1+2*E2)/3, cada registro se recalcula para sus valores de E1 y E2, ¿Por qué se asigna N_1 igual para todos los registros aunque tengan diferente E1 y E2?. Gracias
|
|
|
|
|
|
#12 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 59
|
Ya, pero como identifico entonces el registro activo si solo tiene tres campos: E1, E2 y N_1, y N_1 es (E1+2*E2)/3. Lo que quiero es que cuando cambio E1 o E2 en un formulario de Access se cambie N_1 a (E1+2*E2)/3, pero cómo identifico el registro actual que es el único que quiero cambiar si E1 y E2 los cambio sobre la marcha.
|
|
|
|
|
|
#15 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 59
|
Se me ha ocurrido hacer un campo autoincrementable en la base de datos, llamado Expediente, y así utilizar en WHERE el campo Expediente (que es único para cad registro), pero no sé como asignar el valor del campo a una variable. He intentado esto:
Dim Exp as integer Exp=ALUMNOS.EXPEDIENTE pero no funciona, ¿Cómo puedo asignar el valor de un campo a una variable? |
|
|
|
|
|
#17 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 59
|
Bueno, y si no creo un campo nuevo, ¿cómo se os ocurre hacer la consulta para un registro concreto sin que le afecte a los demás?. Os recuerdo que si hago la consulta involucrando a los valores de los campos, funciona bien para todos, mientras que si lo hago con una variable que involucra los valortes de los campos, asigna el mismo valor para todos los registros. No entiendo por qué.
|
|
|
|
|
|
#18 (permalink) |
![]() |
Revisa el uso del "Where"; por ejemplo si quieres que la consulta afecto sólo a los registros cuyo campo1 tiene valor "1" entonces colocas:
Select * from tabla where campo1=1 Si necesitas reestringir màs la consulta puedes poner: Update TABLA set campo7='valor' where campo1=1 and campo2='fff' Espero te ayude |
|
|
|
|
|
#19 (permalink) |
![]() Fecha de Ingreso: julio-2005
Mensajes: 59
|
Yo tengo una tabla con 3 campos: E1, E2 y N_1. Mediante un formulario introduzco valores para E1 y E2, y automáticamente (afterUpdate) quiero que se actualice N_1 según la siguiente formula N_1=(E1+2*E2)/3, con una instruccion SQL, pero no puedo poner WHERE por que no conozco los valores de ningún campo del registro, puesto que acabo de rellenarlos mediante un formulario. Pueden tener cualquier valor que yo les quiera poner. ¿Cómo puedo hacer para que se actualice solamente el registro activo?
|
|
|
|