MS Access parece ser compatible con valores nulos en el código, pero no puedo imaginar cómo ingresar un nulo directamente en una tabla. Esto es enloquecedor porque una vez que un campo ha ingresado una cifra, nunca puede ser borrado/configurado como nulo. Normalmente, permitir cadenas de longitud cero se encargaría de esto, pero Access trata la exportación XML de una cadena nula y una cadena de longitud cero de manera diferente. Un nulo elimina la etiqueta XML asociada y una cadena de longitud cero envía una etiqueta vacía.¿Cómo inserta un usuario un nulo en MS Access?
Respuesta
Ok, no creo que este sea un problema fácil de resolver y mi pregunta original estaba un poco fuera de foco. El problema no es tanto con nulos, aunque están involucrados, como con la manera en que se creó originalmente la tabla. Si usa un archivo xsd para crear las tablas que planea exportar, sucede algo bajo el capó en Access que hace que esos campos sean tratados de forma un poco diferente que los campos creados con los editores.
La única solución que encontré fue crear un nuevo campo en la tabla, cambiar el nombre del campo anterior, copiar los datos del campo anterior al nuevo campo y eliminar el campo anterior.
Después de hacer eso, los campos en blanco que tenían datos en ellos en un punto ya no están incluidos en la salida XML. Probablemente no sea la mejor manera de hacerlo, y todavía no sé exactamente por qué está sucediendo, pero al menos puedo superar el problema.
¿Estás hablando de tener que hacerlo en la vista Hoja de datos? Si usted necesita para hacerlo en una consulta de actualización, puede hacerlo de esta manera:
UPDATE test SET test.test = Null;
Sí, estaba hablando de hacerlo en la vista de la hoja de datos. – anopres
acaba de eliminar todos los caracteres de la columna y el acceso será insertar un valor nulo para usted si el coumn lo permite.
No si el campo está configurado para permitir cadenas de longitud cero. –
@ David-W-Fenton para mí funciona como lo especifica @bang. Tengo la columna 'NOT NULL varchar' en una tabla vinculada a SQL Server &' allow zero-length strings = yes' en Access. Sin embargo, cuando elimino el texto, no inserta la cadena vacía, en cambio da error de inserción nulo de que la columna no es de tipo variante. –
Veo, el comportamiento es diferente para las tablas vinculadas de ODBC http://stackoverflow.com/a/22203637/2224701 –
Estoy buscando una manera para que un lego haga la entrada directamente en una tabla. En MSSQL puede simplemente presionar ctrl-0 y se inserta un nulo. Eliminar todos los caracteres no parece funcionar. En lugar de un nulo, te queda una cadena vacía. A Access no se les trata de la misma manera con fines de exportación.
Creo que lo que voy a terminar haciendo es crear un archivo xslt para usar durante la exportación que elimina las etiquetas vacías. De esa forma, el usuario no puede notar la diferencia.
Sin embargo, sería bueno poder ingresar un nulo.
¿Ayuda la configuración de la opción "Permitir cadena de longitud cero" en la definición de tabla? Puede forzar que una cadena vacía se interprete como NULL.
No "puede", pero lo hará. A menos que esté usando ZLS como un valor significativo que es distinto de nulo, no hay razón para que ningún campo permita el almacenamiento de ZLS. Ciertamente es poco amigable para el usuario. –
pulse ctrl-0 y se inserta un nulo.
Esto no funciona con Access 2007. ¿Cómo hiciste que esto funcionara? – anopres
Eliminar todos los caracteres funcionará, pero el acceso es un poco voluble. Pulsar retroceso o eliminar no funcionará a menos que haya caracteres en el campo. Encuentro que es mejor ingresar algunos caracteres, seleccionar todo y presionar eliminar, cambiar el enfoque y cambiar el registro. Después de todo lo anterior, si ejecuta una consulta que busca "es nulo", se encontrará el registro.
Tuve cierto éxito al ingresar algunos caracteres como se sugirió luego usar F2 para seleccionar seguido de eliminar, pero no funciona consistentemente –
- 1. ¿Cómo hago un procedimiento almacenado en MS Access?
- 2. VBA + Hilos en MS Access
- 3. MS Access prepara declaraciones
- 4. MS Access trigger?
- 5. Nhibernate y MS Access
- 6. cómo usar un archivo MS-Access de Linux?
- 7. ¿Tenemos transacciones en MS-Access?
- 8. MS Access sin VBA?
- 9. MS Access Propiedades
- 10. Pasar parámetros entre formularios en MS Access
- 11. ¿Cómo puedo utilizar Hibernate con MS Access?
- 12. Expresiones regulares en MS Access VBA?
- 13. Seleccionar registros omitiendo filas en MS Access
- 14. MS Access envía un correo electrónico (no desde Outlook o el correo electrónico del usuario)
- 15. C# Cómo conectar a MS Access 2007
- 16. ms-access: ¿cómo comentar el código sql?
- 17. ¿Cómo conectar java a Ms Access 2010?
- 18. Proporcionar ayuda en forma en MS Access
- 19. ¿Por qué clonar un conjunto de registros MS-Access?
- 20. Crear procedimiento almacenado en MS Access?
- 21. Recuperar datos URL JSON en MS Access
- 22. MS Access: tamaño de papel personalizado
- 23. MS Access: Determine el tipo de objeto
- 24. MS Access 2007 JOIN en múltiples campos
- 25. Crear vista en MS Access 2007
- 26. Insertar valor predeterminado cuando se inserta nulo
- 27. ms-access: hacer algo en la base de datos open
- 28. Agregar un botón del explorador de archivos a un formulario de MS Access
- 29. ¿Cómo uso correctamente "No igual" en MS Access?
- 30. ¿Cómo usar sftp desde dentro de un módulo de base de datos MS Access?
¿Cómo está ingresando los datos en las tablas? He ejecutado una exportación XML con datos que he ingresado usando una vista de tabla, y agrega y elimina la columna como usted sugirió. – LeppyR64
¿Estás diciendo que no quieres permitir cadenas de longitud cero? – LeppyR64
No existe tal cosa como "directamente en una mesa". Probablemente se esté refiriendo a un formulario que está vinculado a un conjunto de registros, probablemente el proporcionado en la interfaz de usuario de cualquier versión de MS Access que esté utilizando. ¿O significa "directamente" que está utilizando código SQL? – onedaywhen