Campo vacío para poner a cero
Resuelto
rjl
Mensajes publicados
591
Estado
Miembro
-
rjl Mensajes publicados 591 Estado Miembro -
rjl Mensajes publicados 591 Estado Miembro -
Hola a todos,
Hace mucho tiempo que no trabajaba en ACCESS y estoy impresionado por cómo se pueden perder nociones que antes eran evidentes.
Estoy trabajando en consultas de actualización directas (sin SQL ni VBA, así que lo más simple) y no puedo probar un campo que parece vacío para reemplazarlo por 0 en una columna (declarada como numérica) pero también he intentado en texto desde que he retomado la base.
Intento poner a 0 (cero) un campo vacío pero sin éxito: al intentar previamente la selección antes de la actualización, obtengo una hoja vacía frente a los 37,000 registros presentes (todos vacíos para esta columna) porque solo es un juego de ensayo frente a una base de 1,000,000 de filas.
En la línea Criterio para la columna considerada, simplemente coloco EsVacío([Todo].[Campo14]) pero todos los demás intentos también han fracasado.
Debo estar cometiendo un error evidente, imperdonable... sin poder verlo ni saber cómo corregirlo.
Gracias por su ayuda y @ pronto
RJL2b10
Configuración: Windows 7 / Firefox 16.0
Hace mucho tiempo que no trabajaba en ACCESS y estoy impresionado por cómo se pueden perder nociones que antes eran evidentes.
Estoy trabajando en consultas de actualización directas (sin SQL ni VBA, así que lo más simple) y no puedo probar un campo que parece vacío para reemplazarlo por 0 en una columna (declarada como numérica) pero también he intentado en texto desde que he retomado la base.
Intento poner a 0 (cero) un campo vacío pero sin éxito: al intentar previamente la selección antes de la actualización, obtengo una hoja vacía frente a los 37,000 registros presentes (todos vacíos para esta columna) porque solo es un juego de ensayo frente a una base de 1,000,000 de filas.
En la línea Criterio para la columna considerada, simplemente coloco EsVacío([Todo].[Campo14]) pero todos los demás intentos también han fracasado.
Debo estar cometiendo un error evidente, imperdonable... sin poder verlo ni saber cómo corregirlo.
Gracias por su ayuda y @ pronto
RJL2b10
Configuración: Windows 7 / Firefox 16.0
8 respuestas
Hola castores y gracias por tu respuesta,
Sí, claro, lo describo en digital pero es una mesa de la que heredé y no lo era originalmente. Sin embargo, he hecho pruebas con texto pensando que así me sería más fácil corregir, especialmente para el campo vacío.
De hecho, para mí este campo generalmente está vacío porque cuando quiero filtrar en la tabla, "Vacío" se propone y me devuelve muchas filas.
Curiosamente, si hago una clasificación directa de la tabla, todo está bien clasificado, incluidas las filas con el campo vacío, mientras que a través de mi consulta, se ignoran o, más precisamente, las filas no aparecen ni en pantalla ni en el conteo.
Gracias por tus ideas si te inspiran.
Sí, claro, lo describo en digital pero es una mesa de la que heredé y no lo era originalmente. Sin embargo, he hecho pruebas con texto pensando que así me sería más fácil corregir, especialmente para el campo vacío.
De hecho, para mí este campo generalmente está vacío porque cuando quiero filtrar en la tabla, "Vacío" se propone y me devuelve muchas filas.
Curiosamente, si hago una clasificación directa de la tabla, todo está bien clasificado, incluidas las filas con el campo vacío, mientras que a través de mi consulta, se ignoran o, más precisamente, las filas no aparecen ni en pantalla ni en el conteo.
Gracias por tus ideas si te inspiran.
Hola
Si quieres recuperar los campos vacíos, en una consulta conditionWhere utiliza Es Nulo o No Es Nulo. Es esta sintaxis la que hay que utilizar.
Modifica esta consulta en la creación de la tabla.
Una vez hecho esto, puedes transformarlo en un valor numérico 0 por defecto o recrear uno nuevo directamente en numérico.
¿Actualmente tu campo es de texto?
No sé si Access puede manejar un millón de filas.
¿Qué versión de Access?
Si quieres, ¿puedes poner la tabla en el sitio con cjoint.com?
Si quieres recuperar los campos vacíos, en una consulta conditionWhere utiliza Es Nulo o No Es Nulo. Es esta sintaxis la que hay que utilizar.
Modifica esta consulta en la creación de la tabla.
Una vez hecho esto, puedes transformarlo en un valor numérico 0 por defecto o recrear uno nuevo directamente en numérico.
¿Actualmente tu campo es de texto?
No sé si Access puede manejar un millón de filas.
¿Qué versión de Access?
Si quieres, ¿puedes poner la tabla en el sitio con cjoint.com?
Para una mejor comprensión del problema, presento los primeros registros de la tabla (en realidad 119,000 en extracto de la tabla completa superior a 1,000,000 de filas!).
Claro que sé lo que está mal... ¡sin saber cómo resolverlo!
[URL=https://imageshack.com/][IMG]http://img11.imageshack.us/img11/2320/imagtable.jpg[/IMG][/URL]
De hecho, los registros se ignoran en cuanto pruebo un campo aparentemente vacío.
Sin embargo, no podía quedarme sin solución para esta prueba (119,000 filas) y en un primer momento eliminé la prueba que me hace sumergirme en la búsqueda de reemplazar estos campos "vacíos" por cero. ¡El mismo problema! Como las selecciones para códigos > 99 no me interesaban, pude reemplazar esos códigos por cero... pero aún así, los registros que contenían "vacíos" eran abandonados en cuanto probaba un campo de cualquiera de las 6 columnas participando en la selección. Como en este extracto, el Campo14 no contiene ningún valor, mi selección fue de 0 registros contra 37,000 previstos.
Porque la selección pude hacerla sobre la muestra, pero, por supuesto, de manera brutal.
Para esto, filtré mi archivo sucesivamente con cada una de las 6 columnas de selección recuperando solo los campos considerados "vacíos" o inferiores a 100 (marcando cada uno de los 99 valores de cada campo afectado).
Es pesado, funcionó en este extracto sin resolver mi problema de fondo.
Espero que esta iluminación sea constructiva.
Buen domingo y gracias de nuevo
@Hasta pronto RJL2b11
Claro que sé lo que está mal... ¡sin saber cómo resolverlo!
[URL=https://imageshack.com/][IMG]http://img11.imageshack.us/img11/2320/imagtable.jpg[/IMG][/URL]
De hecho, los registros se ignoran en cuanto pruebo un campo aparentemente vacío.
Sin embargo, no podía quedarme sin solución para esta prueba (119,000 filas) y en un primer momento eliminé la prueba que me hace sumergirme en la búsqueda de reemplazar estos campos "vacíos" por cero. ¡El mismo problema! Como las selecciones para códigos > 99 no me interesaban, pude reemplazar esos códigos por cero... pero aún así, los registros que contenían "vacíos" eran abandonados en cuanto probaba un campo de cualquiera de las 6 columnas participando en la selección. Como en este extracto, el Campo14 no contiene ningún valor, mi selección fue de 0 registros contra 37,000 previstos.
Porque la selección pude hacerla sobre la muestra, pero, por supuesto, de manera brutal.
Para esto, filtré mi archivo sucesivamente con cada una de las 6 columnas de selección recuperando solo los campos considerados "vacíos" o inferiores a 100 (marcando cada uno de los 99 valores de cada campo afectado).
Es pesado, funcionó en este extracto sin resolver mi problema de fondo.
Espero que esta iluminación sea constructiva.
Buen domingo y gracias de nuevo
@Hasta pronto RJL2b11
Hola,
Los campos que presentan este problema están efectivamente en numérico; he intentado de diversas maneras con EstNull, pero las filas así probadas no son seleccionadas y son incluso ignoradas. Intenté con EstVide ya que funciona en filtro directo (selectión de filas marcadas como "Vacías"), pero, para mi gran sorpresa, ¡no funciona en consulta! Intenté sin éxito (por las mismas razones) transformar mis campos vacíos en cero... pero son igualmente ignorados (Número de registros a modificar: 0)!
Tengo 119,000 filas en juego de prueba y más de 1,000,000 en real.
Un "detalle" bloquea el funcionamiento normal, pero ¿cuál?
¡Hasta luego y, por supuesto, gracias de nuevo! RJL2b11
Los campos que presentan este problema están efectivamente en numérico; he intentado de diversas maneras con EstNull, pero las filas así probadas no son seleccionadas y son incluso ignoradas. Intenté con EstVide ya que funciona en filtro directo (selectión de filas marcadas como "Vacías"), pero, para mi gran sorpresa, ¡no funciona en consulta! Intenté sin éxito (por las mismas razones) transformar mis campos vacíos en cero... pero son igualmente ignorados (Número de registros a modificar: 0)!
Tengo 119,000 filas en juego de prueba y más de 1,000,000 en real.
Un "detalle" bloquea el funcionamiento normal, pero ¿cuál?
¡Hasta luego y, por supuesto, gracias de nuevo! RJL2b11
Buenas noches,
Gracias a tus observaciones, he podido corregir un problema mayor, la selección se hace en parte:
Habiendo estado desfasado de Access durante mucho tiempo, había olvidado puntos esenciales para seleccionar por Expr: los campos con expresión como
Sería perfecto... si no tuviera que reproducir esta selección con 5 campos más (por Y) y ahí se complica la cosa.
He intentado con el tratamiento normal pero también por SQL, para el cual pensaba que la acumulación sería más fácil, ¡pero nada funcionó!
También intenté sin éxito poner ceros para los valores que no me interesaban (Nulo o > 99) ya que me parecía bastante sencillo asociar la selección por Y de 6 tramos... pero no tuve elecciones felices ese día y de nuevo... ¡fallido!
Sigo buscando un poco más, pero volveré a llamar si no logro realmente nada.
Hasta pronto, entonces, ya sea para apoyo o para decir cómo he resuelto mi dificultad.
Gracias de nuevo por tu apoyo RJL2b11
Gracias a tus observaciones, he podido corregir un problema mayor, la selección se hace en parte:
Habiendo estado desfasado de Access durante mucho tiempo, había olvidado puntos esenciales para seleccionar por Expr: los campos con expresión como
Expr:EsNulo([Campo14])con Verdadero en el criterio asociado a una prueba de valor en O, por lo tanto, más clásico y simplemente instalado en la línea siguiente en su propia columna.
Sería perfecto... si no tuviera que reproducir esta selección con 5 campos más (por Y) y ahí se complica la cosa.
He intentado con el tratamiento normal pero también por SQL, para el cual pensaba que la acumulación sería más fácil, ¡pero nada funcionó!
También intenté sin éxito poner ceros para los valores que no me interesaban (Nulo o > 99) ya que me parecía bastante sencillo asociar la selección por Y de 6 tramos... pero no tuve elecciones felices ese día y de nuevo... ¡fallido!
Sigo buscando un poco más, pero volveré a llamar si no logro realmente nada.
Hasta pronto, entonces, ya sea para apoyo o para decir cómo he resuelto mi dificultad.
Gracias de nuevo por tu apoyo RJL2b11
Hola castours,
¡Temía tener que volver a pedir ayuda!
He buscado en los tutoriales, en los foros y he hecho múltiples pruebas... ¡sin éxito!
Tengo 6 campos (siempre los mismos); deseo poner a 0 (código imposible que permita una elección fácil más adelante) cada campo cuando esté nulo.
[URL=https://imageshack.com/][IMG]http://img687.imageshack.us/img687/9944/imagtable2b12.jpg[/IMG][/URL]
Esto es solo un ejemplo, pero una de las respuestas más frecuentes es un nombre considerado inválido (he intentado sin el nombre de la tabla, ni en la línea 2 (Tabla), ni en componente del nombre ([Todo][....)
Por supuesto, también he intentado, sin éxito, poner directamente el nombre de la tabla en la segunda línea o incluso eliminarlo del contenido del nombre probado: ¡no hay manera!
¡Gracias por tu ayuda si ves cómo puedo salir de este mal paso!
@Pronto RJL2b12
¡Temía tener que volver a pedir ayuda!
He buscado en los tutoriales, en los foros y he hecho múltiples pruebas... ¡sin éxito!
Tengo 6 campos (siempre los mismos); deseo poner a 0 (código imposible que permita una elección fácil más adelante) cada campo cuando esté nulo.
[URL=https://imageshack.com/][IMG]http://img687.imageshack.us/img687/9944/imagtable2b12.jpg[/IMG][/URL]
Esto es solo un ejemplo, pero una de las respuestas más frecuentes es un nombre considerado inválido (he intentado sin el nombre de la tabla, ni en la línea 2 (Tabla), ni en componente del nombre ([Todo][....)
Por supuesto, también he intentado, sin éxito, poner directamente el nombre de la tabla en la segunda línea o incluso eliminarlo del contenido del nombre probado: ¡no hay manera!
¡Gracias por tu ayuda si ves cómo puedo salir de este mal paso!
@Pronto RJL2b12
https://www.cjoint.com/?BKnl2UmNBP8
Aquí hay un ejemplo en una consulta de búsqueda de nulos en el código postal.
Aquí hay un ejemplo en una consulta de búsqueda de nulos en el código postal.
Hola castores,
No te había olvidado, pero atrapado entre mis propios problemas y los de mi hijo a quien apoyo en este trabajo, a veces tomo tiempo (más aún cuando le añado la pérdida de mi respuesta preparada a una hora bien tardía y no recuperada en el momento).
Un último ejemplo me permitió finalizar este trabajo (a mi nivel). En la práctica, confundía Est Null con EstNull() que me obligaba a poner el nombre de un campo y entonces, ¡nada encajaba!
Simplemente seguí el ejemplo, dando así una respuesta inmediata que responde exactamente a la solicitud: [URL=https://imageshack.com/][IMG]http://img9.imageshack.us/img9/3261/img2b131a.jpg[/IMG][/URL]
Así que abandoné completamente el Nz que me exigía una segunda consulta para la selección, aunque esta fuera rápida, y luego, un complemento para eliminar los ceros que no facilitaban la lectura.
Un gran gracias de nuevo y buen fin de semana RJL2b16
No te había olvidado, pero atrapado entre mis propios problemas y los de mi hijo a quien apoyo en este trabajo, a veces tomo tiempo (más aún cuando le añado la pérdida de mi respuesta preparada a una hora bien tardía y no recuperada en el momento).
Un último ejemplo me permitió finalizar este trabajo (a mi nivel). En la práctica, confundía Est Null con EstNull() que me obligaba a poner el nombre de un campo y entonces, ¡nada encajaba!
Simplemente seguí el ejemplo, dando así una respuesta inmediata que responde exactamente a la solicitud: [URL=https://imageshack.com/][IMG]http://img9.imageshack.us/img9/3261/img2b131a.jpg[/IMG][/URL]
Así que abandoné completamente el Nz que me exigía una segunda consulta para la selección, aunque esta fuera rápida, y luego, un complemento para eliminar los ceros que no facilitaban la lectura.
Un gran gracias de nuevo y buen fin de semana RJL2b16