Recordset detecta un solo registro cuando en realidad tiene dos registros (Access 2013)

Tengo un problema y no encuentro la causa, en el recordset que detallo a continuación, encuentra un solo registro en código VBA y si el mismo SQL lo pongo en una consulta encuentra 2 registros, ¿no se porque?.

set mydb = currentdb

strsql_reg = "select registroact.regi_fecha, registroact.regi_empresa, registroact.regi_check_nohab from registroact "
strsql_reg = strsql_reg & "where regi_check_nohab = 0 "
set myrecordset_reg = mydb.openrecordset(strsql_reg, dbopendynaset)

1 Respuesta

Respuesta
1

Pregunto si le dices que seleccione los registros de la tabla registroact, ¿para qué le dices que el campo regi_fecha es de la tabla registroact? ¿No sería más cómodo poner la instrucción como

"select regi_fecha,regi_empresa,regi_check_nohab from registroact where regi_chek_nohab=0"

En principio la instrucción está bien. Prueba a poner un botón y en su evento Al hacer clic pon

dim a as byte

a=dcount("*","registroact","regi_chek_nohab=0")

msgbxox"Hay "& a

Al pulsarlo te contará cuanto registros hay en que regi_chek_nohab es cero y te los mostrará en un mensaje.

Hola, no me exprese bien, el problema no es saber las cantidades de registros, quiero recorrer la base, pero solo hay un registro en los recordset cuando tendría que haber más de uno.

Pues eso es lo que te decía, en principio la instrucción está bien, aunque no se como la aplicas. Por ejemplo, si tengo un formulario de clientes, y en algún evento le digo

me.recordsource="select cliente, nombrecontacto, ciudad from clientes where Pais=""Alemania"""

Cuando se ejecute ese evento en el formulario sólo me aparecerán los registros en los que el pais sea ese.

Y también te decía que pusieras lo del mensaje para comprobar si salían dos registros no para que te lo muestre siempre.

Por cierto, para recorrer registros se usa

dim i as integer

for i =1 to....

o tambien

Do while...

Etc

Y si estás en una base de datos, ¿para qué decirle que la base de datos en la que ya estás trabajando es la base activa? Lo digo por lo de

set mydb=currentdb

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas