Consulta sobre código para implementar un bucle for para insertar registros en la base de datos

Tengo un problema porque tengo una serie de condiciones en un botón que me gustaría que compruebe en un subformulario que esta dentro del formulario principal y no se como hacer que recorra con esas condiciones todos los registros del subformulario. Aquí os pongo el código para ver si podéis echarme un cable
Private Sub Comando66_Click()
For ???????
If Me.EDAD >= Me.[CATEGORIAS COMPETIDORES Subformulario].[edad minima] Then
If Me.EDAD <= Me![CATEGORIAS COMPETIDORES Subformulario]![edad maxima] Then
DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70
MsgBox ("CORRECTO")
Else
MsgBox ("INCORRECTO")
End If
Else
MsgBox ("INCORRECTO")
End If
Next

2 Respuestas

Respuesta
1
Porque tengo que salir un rato... como veo que te defiendes con vb, te lo tecleo directamente aquí, sin probar, y si tienes problemas espero que sean triviales.
Para recorrer registros de un formulario se utiliza el recordsetclone, que te devuelve el recordset (conjunto de registros) del formulario. Las propiedades bookmark tanto del recordset como del formulario te permiten sincronizar el uno con el otro.
dim r as recordset
set r=me.recordsetclone
r.bookmark=me.bookmark
while not r.eof
me.bookmark=r.bookmark
if r("edad")>=me....
...
Endif
r.movenext
Wend
Fíjate, siempre que quieras acceder al registro variable del formulario, utiliza r("nombredecampo"), siendo nombredecampo uno de la tabla o consulta base del formulario, no valen los campos calculados del propio formulario.
No recuerdo si para asignar .bookmark es preciso poner un set delante, creo que no. Si te da error, la sintaxis seria
set r.bookmark=me.bookmark
pero creo que está bien como te lo puse primero
Un saludo, suerte. Me voy un rato.
Respuesta
1
¿Vos quieres ingresar varios registros al mismo tiempo y que después que los valla validando a todos juntos?
Si vos ya tienes los registros y quieres que los compare con un dato que ingresas si se puede
Do While Not Recordset.EOF
if rs!edad > edadMin and rs!edad < edadMax Then
msgbox "ES CORRECTO"
else
msgbox "ES INCORRECTO"
Loop
puede que yo siga sin entender
a ver si es asi
¿Vos tienes en el principal las edades máximas y mínimas
y en el subformulario quieres ir agregando los registros si es que son correctos?
Lo que quiero es que el formulario al introducir un dato compruebe si ese dato puede ser correcto a la hora de grabar el registro. Pero eso lo he conseguido, pero solo para un registro del subformulario, pero quiero hacer una especie de count o algo así para haciendo un for me recorra todos los registros comprobándolo
¿Quieres qué desde el formulario principal se controle unas condiciones ingresadas en el formulario hijo?
¿A dónde tiene que mostrarlos resultados?
Tal vez aclarándome esto pueda darte una mano...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas