MS Access, похоже, поддерживает нули в коде, но я не могу понять, как ввести нуль непосредственно в таблицу. Это сводит с ума, потому что после того, как в поле была введена цифра, его нельзя удалить / установить в нуль. Обычно об этом позаботится разрешение строк нулевой длины, но Access обрабатывает XML-экспорт строки нулевой и нулевой длины по-разному. Нулевое значение удаляет связанный тег XML, а строка нулевой длины отправляет пустой тег.
Вы хотите сказать, что не хотите использовать строки нулевой длины?
Нет такого понятия, как «прямо в таблице». Вероятно, вы имеете в виду форму, привязанную к набору записей, возможно, ту, которая предоставляется в пользовательском интерфейсе любой версии MS Access, которую вы используете. Или «напрямую» означает, что вы используете код SQL?
@onedaywhen, я имел в виду те вещи, которые обращаются к "таблицам". Кроме того, даже не беспокойтесь о том, чтобы все кортежи / отношения на нас, когда мы говорим о MS Access.





Вы говорите о необходимости делать это в режиме таблицы? Если вам нужно было сделать это в запросе на обновление, вы можете сделать это так:
UPDATE test SET test.test = Null;
Да, я говорил об этом в виде таблицы.
Просто удалите все символы в столбце, и Access вставит для вас нулевое значение, если это разрешено coumn.
Нет, если в поле разрешены строки нулевой длины.
@ David-W-Fenton для меня работает так, как указано в @bang. У меня есть столбец NOT NULL varchar в связанной таблице с SQL Server и allow zero-length strings = yes в Access. Тем не менее, когда я удаляю текст, он не вставляет пустую строку, а вместо этого выдает ошибку нулевой вставки, что столбец не имеет варианта типа.
Я вижу, что для связанных таблиц ODBC stackoverflow.com/a/22203637/2224701 поведение другое.
На самом деле я ищу способ для непрофессионала сделать запись прямо в таблице. В MSSQL вы можете просто нажать ctrl-0, и будет вставлен нуль. Удаление всех символов не работает. Вместо нуля у вас остается пустая строка. Access не обрабатывает их одинаково для целей экспорта.
Я думаю, что в итоге я собираюсь создать файл xslt для использования во время экспорта, который удаляет пустые теги. Таким образом, пользователь действительно не заметит разницы.
Хотя было бы неплохо иметь возможность ввести нуль.
Какую версию Access вы используете? Как я уже упоминал в своих комментариях к вашему исходному сообщению, я реализовал запрашиваемое вами поведение.
Помогает ли установка параметра «Разрешить строку нулевой длины» в определении таблицы? Это может заставить пустую строку интерпретироваться как NULL.
Не «может», но БУДЕТ. Если вы не используете ZLS как значимое значение, отличное от Null, нет причин для какого-либо поля, разрешающего хранение ZLS. Это определенно недружелюбно к пользователю.
Хорошо, я не думаю, что это легко решаемая проблема, и мой первоначальный вопрос был немного не по плану. Проблема не столько в значениях NULL, хотя они и задействованы, сколько в том, как изначально была создана таблица. Если вы используете файл xsd для создания таблиц, которые планируете экспортировать, что-то происходит внутри Access, что приводит к тому, что эти поля обрабатываются немного иначе, чем поля, созданные с помощью редакторов.
Единственное решение, которое я нашел, - это создать новое поле в таблице, переименовать старое поле, скопировать данные из старого поля в новое и удалить старое поле.
После этого пустые поля, в которых когда-то были данные, больше не включаются в вывод XML. Вероятно, это не лучший способ сделать это, и я до сих пор точно не знаю, почему это происходит, но, по крайней мере, я могу решить эту проблему.
нажмите ctrl-0, и будет вставлен нуль.
Это не работает с Access 2007. Как вы заставили это работать?
Удаление всех символов будет работать, но Access немного непостоянен. Нажатие на возврат или удаление не сработает, если в поле нет символов. Я считаю, что лучше всего ввести несколько символов, выделить все и нажать «Удалить», сменить фокус и изменить запись. После всего вышеперечисленного, если вы запустите запрос, ищущий "is null", запись будет найдена.
Успешно ввел несколько символов, как было предложено, затем с помощью F2 для выбора и последующего удаления, но это не работает постоянно.
Как вы вводите данные в таблицы? Я выполнил экспорт XML с данными, которые я ввел с помощью табличного представления, и он успешно добавляет и удаляет столбец, как вы предложили.