Por qué me dice que falta operador al usar Dcount

Tengo el siguiente código y me dice error 3075: Falta operador en la expresión de consulta. Y este es el código:

    MsgBox DCount("[Categoria]", "registro_conductas_totcategorias", "[id_principal3]= " & Me.Parent.[Id_principal] & " AND [categoria]= " & Me.[Categoria])

Por más que miro, no veo el problema.

Por si sirve de ayuda este es un comando que se ejecuta al hacer click en el campo de un desde un subformulario y hace referencia a los valores introducidos en la tabla "registro_conductas_totcategorias" que se encuentra en otro subformulario diferentes. Ambos están dentro del mismo formulario.

2 respuestas

Respuesta
2

Pues no lo sé, pero probablemente tenga que ver con la referencia a los controles: si el código lo ejecutas desde un botón de un subformulario y haces referencia a un cuadro de texto (o lo que sea) de otro subformulario, en ese DCount no se lo indicas en ninguna parte.

Mírate este enlace para tener clara la notación con formularios y subformularios: http://www.llodax.com/Tutoriales/SintaxisSubForms.htm

Amplio un poco mi respuesta:

con "Me.Parent.[Id_principal]" le dices que te coja el valor del campo Id_principal del formulario "padre" (el que contiene los dos subformularios)

y con "Me.[Categoria]", que coja el valor del campo Categoria del propio formulario (que en este caso entiendo se trata de un subformulario)

Por más que lo reviso no encuentro el problema y sobre todo cuando veo el mensaje de error. Me dice lo siguiente:

Se ha producido el error '3075' en tiempo de ejecución:

Error de sintaxis (falta operador) en la expresión de consulta
'[id_principal3]=6 AND [categoria]= Levantarse'

Yo es que veo esa expresión y es que eso es precisamente lo que quiero que haga por lo que no veo donde está el error.

Por si sirve de ayuda os doy más datos:

  • Nombre de la base de datos: Registro_conductas_totcategorias
  • Campos: [Categoria], [Id_principal]... Vamos, creo que los he escrito bien.

Pero repito, lo que más me mosquea es que la expresión de consulta es lo que tiene que hacer. Por si sirve de algo, el "6" es número y "Levantarse" texto. No sé si por ahí puede venir el error...

Pedro, como ya te comenté en otra ocasión (creo), cuando pasas un valor de tipo texto tiene que ir entre comillas simples, y por tanto, tu expresión quedaría así:

MsgBox DCount("[Categoria]", "registro_conductas_totcategorias", "[id_principal3]= " & Me.Parent.[Id_principal] & " AND [categoria]= '" & Me.[Categoria] & "'")

Como comprenderás, es difícil adivinar que categoría es un campo de texto, y más si lo escribes en al función como si fuera numérico... jejeje.

Un saludo, y espero que ahora te funcione.


Respuesta
2

En la parte de criterios pones unas comillas antes de [id principal](bien hecho) por tanto el criterio tienes que cerrarlo con comillas, pero debes corregir las comillas que has puesto en me. Categoría

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas