ABRIR FORMULARIO

Dudas sobre código
Owix
Nivel 1
Mensajes: 4
Registrado: Mié Mar 10, 2021 7:54 pm

ABRIR FORMULARIO

Mensajepor Owix » Vie Mar 12, 2021 10:21 pm

Para abrir un formulario en un determinado registro y poder desplazarme por registros anteriores y posteriores utilizo los dos siguientes codigos:
Public Sub AbreteEn(codigo)
DoCmd.FindRecord codigo, acEntire, , acSearchAll, , acAll
End Sub
y
Private Sub Comando30_Click()
DoCmd.OpenForm "FORMULARIO"
Form_PROPUESTAS.AbreteEn CAMPO1
End Sub
Ahora tengo un problema que no se resolver:
¿Cómo abrir FORMULARIO basandome en CAMPO1 y CAMPO2 y poder seguir desplazarme por registros anteriores y posteriores?
Lo he intentado con
Private Sub Comando30_Click()
DoCmd.OpenForm "FORMULARIO"
Form_PROPUESTAS.AbreteEn CAMPO1 and CAMPO2
End Sub
y me da error con tipo de datos.
CAMPO1 y CAMPO2 son valores dentro de un mismo registro de la tabla FECHAS. El primero tiene formato fecha y el segundo texto.
Me dais ideas? Un saludo. Owix.

DaniLopez1991
Nivel 5
Mensajes: 147
Registrado: Lun Sep 23, 2019 2:12 pm

Re: ABRIR FORMULARIO

Mensajepor DaniLopez1991 » Lun Mar 15, 2021 9:58 am

Creo que el AND no te lo permite, habría que mirar si se puede abrir con "Find first" o algo así o si le puedes pasar un filtro directamente, lo mejor seria abrirlo con filtro yo creo pero eso tendrías que cambiar código y eso...

Saludos

DaniLopez1991
Nivel 5
Mensajes: 147
Registrado: Lun Sep 23, 2019 2:12 pm

Re: ABRIR FORMULARIO

Mensajepor DaniLopez1991 » Lun Mar 15, 2021 10:04 am

Correcto en .findRecord solo te deja un parámetro al menos según la documentación:

el primero, la descripción pone esto:
"Expresión que evalúa en texto un número o una fecha. La expresión contiene los datos que se deben buscar."

No se... igual el segundo al ser texto no lo evalúa o no se...

Te paso de donde he sacado esto. Saludos!

https://docs.microsoft.com/es-es/office ... findrecord

Por ultimo prueba esto a ver si te deja...

Form_PROPUESTAS.AbreteEn CAMPO1 and 'CAMPO2'

Con las comillas a ver si va ser eso...

Owix
Nivel 1
Mensajes: 4
Registrado: Mié Mar 10, 2021 7:54 pm

Re: ABRIR FORMULARIO

Mensajepor Owix » Lun Mar 15, 2021 9:18 pm

Gracias Danilopez. He probado con comillas y me da error 13 en tiempo de ejecucion: no coinciden los tipos. Sigo indagando.....

Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 1306
Registrado: Sab Oct 24, 2015 10:12 pm

Re: ABRIR FORMULARIO

Mensajepor Sveinbjorn » Mar Mar 16, 2021 1:29 pm

Hola,

a ver, con FindRecord te va a buscar un único valor en un campo o conjunto de campos, pero siempre un único valor, como te indica Dani. Si quieres buscar valores diferentes en dos o más campos, tendrás que recurrir a otros métodos como FindFirst, FindNext, FindPrevious o FindLast del un recodset. Aquí puedes ver una aplicación práctica de esos métodos

Independientemente de lo anterior, si quieres abrir un formulario en unos registros concretos (los registros filtrados), puedes aprovechar la instrucción que lo abre para pasarle el filtro, y con una simple linea, resumes tus dos procedimientos:

Private Sub Comando30_Click()
DoCmd.OpenForm "FORMULARIO", , ,"Campo1= #15/03/2021# AND Campo2='Valor'"
End Sub

Obviamente lo puedes configurar para que los valores y/o campos se los pases como parámetros.

A ver si esto te sirve para solucionar tu problemilla.

Saludos
Sveinbjorn El Rojo


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados