Imprimir página | Cerrar ventana

Problema con FindFirst

Impreso de: Foro de Access y VBA
Categoría: Access y VBA
Nombre del foro: Access y VBA
Descripción del foro: Foro de programacion en Access (Con código y sin código)
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86726
Fecha de impresión: 27/Marzo/2026 a las 04:49


Tema: Problema con FindFirst
Publicado por: Steinhaus
Asunto: Problema con FindFirst
Fecha de publicación: 22/Junio/2023 a las 14:51
Tengo un pequeño proyecto en Access 2019 y deseo, dado el ingreso de un código (string) el FindFirst me encuentre el primero que coincida con el criterio dado para así rápidamente completar la descripción del producto.

Dim tablaProd As Recordset

Set tablaProd = CurrentDb.OpenRecordset("Productos")

With tablaProd
.FindFirst ("[Codigo] = " & CodiArticulo)
If .NoMatch Then
MsgBox ("Artículo no está cargado en STOCK")
PrecioArticulo.Enabled = False
CodiArticulo.SetFocus
Else
If IsNull(.Fields("PrecioBase")) Then
MsgBox ("No se ha registrado el precio base" & Chr(13) & "para este artículo.")
Exit Sub
End If
PrecioArticulo = .Fields("PrecioBase")
DescriArticulo = .Fields("Descripción")
PrecioArticulo.Enabled = True
PrecioArticulo.SetFocus
End If
End With


Sin embargo cuando ejecuto el sub me arroja error '3251' (Operación no válida para este tipo de objeto) y al depurar me marca la sentencia de FindFirst.

Este mismo código lo he utilizado anteriormente en proyectos Access 2003 sin problemas. ¿Qué puede estar mal en Access 2019?

Muchas gracias!



Respuestas:
Publicado por: emiliove
Fecha de publicación: 22/Junio/2023 a las 15:47
A partir de access 2007, access es mucho mas rigorista en cuanto a sus reglas internas y todo debe estar muy bien definido, sin ninguna duda para él, por lo tanto cambia la línea del Set a:

Set tablaProd = CurrentDb.OpenRecordset("Select * From Productos")

O también puede ser así

Set tablaProd = CurrentDb.OpenRecordset("Productos", dbOpenDynaset)

Edito: Set tablaProd = CurrentDb.OpenRecordset("Productos") estas abriendo el conjunto de registros como una tabla y FindFirst no permite abrirlo como tabla solo como consulta o Dinaset.

Saludos.





Imprimir página | Cerrar ventana