Dim registros2 As Recordset, cosa As Integer
Set dbs = CurrentDb
Set registros2 = dbs.OpenRecordset("select Nombre, Edad from mayores where [Nombre]='" & Nombre & "'", dbOpenDynaset)
cosa = 18
If registros2!Edad > cosa Then
registros2.Edit
registros2![Nombre] = Nombre
registros2![Edad] = Edad
MsgBox "¡¡Se ha producido una modificación en la edad de un adulto¡¡", vbInformation, "AVISO"
registros2.Update
registros2.Close
Else
If Edad > 18 Then
registros2.AddNew
registros2![Nombre] = Nombre
registros2![Edad] = Edad
MsgBox "¡¡Bien, su vecino ya es mayor de edad¡¡", vbInformation, "AVISO"
registros2.Update
registros2.Close
Else
registros2.Delete
MsgBox "registro borrado de la tabla mayores"
registros2.Close
End If
End If
dbs.Close
End Sub
loki_nkc escribió:Buenas, estoy tratando de hacer un boton de modificación de datos para un formulario. Y parte del código me esta dando algunos problemas, espero que podais ayudarme.
Este es el código rebelde:Dim registros2 As Recordset, cosa As Integer
Set dbs = CurrentDb
Set registros2 = dbs.OpenRecordset("select Nombre, Edad from mayores where [Nombre]='" & Nombre & "'", dbOpenDynaset)
cosa = 18
If registros2!Edad > cosa Then
registros2.Edit
registros2![Nombre] = Nombre
registros2![Edad] = Edad
MsgBox "¡¡Se ha producido una modificación en la edad de un adulto¡¡", vbInformation, "AVISO"
registros2.Update
registros2.Close
Else
If Edad > 18 Then
registros2.AddNew
registros2![Nombre] = Nombre
registros2![Edad] = Edad
MsgBox "¡¡Bien, su vecino ya es mayor de edad¡¡", vbInformation, "AVISO"
registros2.Update
registros2.Close
Else
registros2.Delete
MsgBox "registro borrado de la tabla mayores"
registros2.Close
End If
End If
dbs.Close
End Sub
La general de esta BD es una serie de usuarios que se almacenan en una tabla usuarios y, que en caso de ser mayores de 18 años, se almacenan tambien en una tabla mayores.
El problema esta al modificarlo, si son menores no tengo ningun problema, tampoco si cambio la edad de un adulto por otra que no baje de los 18 años.
En cambio, si a un usuario menor le introduzco una edad superior a 18 no me crea el registro en la tabla mayores y me da un error 3021: No hay ningún registro activo.
Lo mismo sucede si decido modificar la edad de un adulto por una menor a 18, aunque en este caso no da error, simplemente en lugar de realizar el delete que es lo que deberia hacer, edita la edad de la tabla adultos.
A ver si alguien que realmente sepa algo de visual (No como yo xD) puede darme una solción.
Un saludo y muchas gracias
SFII escribió:loki_nkc escribió:Buenas, estoy tratando de hacer un boton de modificación de datos para un formulario. Y parte del código me esta dando algunos problemas, espero que podais ayudarme.
Este es el código rebelde:Dim registros2 As Recordset, cosa As Integer
Set dbs = CurrentDb
Set registros2 = dbs.OpenRecordset("select Nombre, Edad from mayores where [Nombre]='" & Nombre & "'", dbOpenDynaset)
cosa = 18
If registros2!Edad > cosa Then
registros2.Edit
registros2![Nombre] = Nombre
registros2![Edad] = Edad
MsgBox "¡¡Se ha producido una modificación en la edad de un adulto¡¡", vbInformation, "AVISO"
registros2.Update
registros2.Close
Else
If Edad > 18 Then
registros2.AddNew
registros2![Nombre] = Nombre
registros2![Edad] = Edad
MsgBox "¡¡Bien, su vecino ya es mayor de edad¡¡", vbInformation, "AVISO"
registros2.Update
registros2.Close
Else
registros2.Delete
MsgBox "registro borrado de la tabla mayores"
registros2.Close
End If
End If
dbs.Close
End Sub
La general de esta BD es una serie de usuarios que se almacenan en una tabla usuarios y, que en caso de ser mayores de 18 años, se almacenan tambien en una tabla mayores.
El problema esta al modificarlo, si son menores no tengo ningun problema, tampoco si cambio la edad de un adulto por otra que no baje de los 18 años.
En cambio, si a un usuario menor le introduzco una edad superior a 18 no me crea el registro en la tabla mayores y me da un error 3021: No hay ningún registro activo.
Lo mismo sucede si decido modificar la edad de un adulto por una menor a 18, aunque en este caso no da error, simplemente en lugar de realizar el delete que es lo que deberia hacer, edita la edad de la tabla adultos.
A ver si alguien que realmente sepa algo de visual (No como yo xD) puede darme una solción.
Un saludo y muchas gracias
Tienes que meterlo todo en el mismo caso, sino la condición se cumplirá en el primer IF y cuando haga el segundo IF ya no tendrás los datos verdaderos. Hazlo todo más ordenado:
Si es menor de 18 años
{
---Si aquí tienes que hacer varias opciones, vuelves a poner otro IF---
}
Sino lo es
{
---Si aquí tienes que hacer varias opciones, vuelves a poner otro IF---
}
Puedes pasar el dato que recoges de la Base de Datos a una variable y así no tendrás ningún problema de modificación.