Access - Instruccion DoCmd.RunSql UPDATE usando DCount

 
Vista:
sin imagen de perfil

Instruccion DoCmd.RunSql UPDATE usando DCount

Publicado por Mercedes (22 intervenciones) el 03/08/2022 13:57:56
Estoy tratando de actualizar mediante código VBA el campo "NroOrdItem" (formato número: doble, estandar. 0 decimal y 0 Valor Predeterminado) de la tabla "FacturasProcesadas" (tiene 26000 registros) y debe ser el resultado de contar el campo "Coditem" (formato texto) que sea igual a "Coditem" y que el campo "IdFact" sea mayor o igual a "IdFact". Estoy usando el siguiente código:

DoCmd.RunSQL "UPDATE FacturasProcesadas SET FacturasProcesadas.NroOrdItem= DCount(""*"", ""FacturasProcesadas"", ""Coditem = '" & [Coditem] & "' And CDbl(IdFact) >= " & CDbl([IdFact]) & " WHERE IdFact <>0"

Pero me da el siguiente error:

"Se ha producido el error 2465 en tiempo de ejecución:
Inventario Materia Prima-Original no encuentra el campo '[1' al que se hace referencia en la expresión"

La SQL la uso en una consulta y funciona sin problemas pero como la tabla tiene muchos registros estoy tratando de usar codigo VBA para actualizarla.
A pesar de haber revisado las tablas y buscado información en la web de este error no logro identificar cual es el problema.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Instruccion DoCmd.RunSql UPDATE usando DCount

Publicado por Anonimo (3320 intervenciones) el 03/08/2022 16:48:49
En la SQL (la original) que funciona en la consulta:

.- Sustituir las comillas dobles por comillas simples.

Se esta utilizando la simple para definir a [Coditem] como texto:
1
.... ,"Coditem='" & [Coditem] & "' And C ......

Modificar esa parte así:
1
.... ,"Coditem=" & Chr(34) & [Coditem] & Chr(34) & " And C ......

Al utilizar la comilla doble en formato CHR será aceptada por el evaluador de expresiones de Access.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar