Error "Se esperaba un tipo definido por el usuario, no un proyecto" dentro de VBA-Access

Espero que se encuentren bien

Agradezco por favor la ayuda en el siguiente caso

Estoy haciendo un código VBA para ejecutar instrucciones SQL al oprimir un botón, teniendo el siguiente código, por ejemplo:

Private Sub Comando22_Click()

Dim db As Database
Dim StrSQL As String
'Aqui es DELETE en cambio de UPDATE
StrSQL = "DELETE FROM Facturas_emitidas WHERE Factnum =" & Me![ID_Rf_Satz] & ""
Set db = CurrentDb()
db.Execute StrSQL, dbFailOnError
End Sub

Al ejecutar el programa me aparece un mensaje que dice :

Error de compilación:

Se esperaba un tipo definido por el usuario, no un proyecto.

El error pareciera que fuera cuestión de referencias que se deben de incluir dentro de VBA, pero pese a que incluyo las siguientes referencias:

Ya sean las Microsoft DAO Object Library o las ADO Object Library

Al volver a ejecutar la aplicación me sale el siguiente, error.

El nombre entra en conflicto con un modulo, proyecto o biblioteca de objetos existentes.

¿Qué debo de hacer para arreglar ese inconveniente?.

1 respuesta

Respuesta
2

Segun yo lo veo es que tienes un Nombre Módulo, que coincide con un nombre de Función o Procedimiento. Si eso es así simplemente cambia el Nombre de alguno de ellos.

Para ver la línea que te produce el Error, abre el Editor VBA, Pulsa Depuración >> Compilar...

Mis saludos >> Jacinto

Se me ha pasado comentarte, que puede ser el propio Nombre del Proyecto, el que está en conflicto

Un saludo >> Jacinto

Cordial saludo Jacinto.

En cuanto al Nombre Módulo, en verdad no he manejado módulos VBA dentro del proyecto, todo lo he manejado con programación directa de los botones y otros eventos

El error es en la linea de código:

Dim db As Database 

En cuanto a la segunda sugerencia que usted me hace cambie el nombre del proyecto en las Opciones de Access cambie dentro de la "base de datos Actual" en el Titulo por el mismo Nombre del Archivo y no me funciono la aplicación.

Gracias!.

Si tienes referenciados los Objetos siguientes, no deberías tener problemas.

Si tu Access no es el 2016, los números 16.0 cambiarán a 15.0 o xx.0

No obstante simplifica el código así. Quitando el Dim db AS...

Dim StrSQL As String
'Aqui es DELETE en cambio de UPDATE
StrSQL = "DELETE FROM Facturas_emitidas WHERE Factnum =" & Me![ID_Rf_Satz]
CurrentDB.Execute StrSQL, dbFailOnError

Si el ID_Rf_Satz fuera Texto

StrSQL = "DELETE FROM Facturas_emitidas WHERE Factnum ='" & Me![ID_Rf_Satz] & "'"

Mis saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas