Как пользователь вставляет нуль в MS Access?

MS Access, похоже, поддерживает нули в коде, но я не могу понять, как ввести нуль непосредственно в таблицу. Это сводит с ума, потому что после того, как в поле была введена цифра, его нельзя удалить / установить в нуль. Обычно об этом позаботится разрешение строк нулевой длины, но Access обрабатывает XML-экспорт строки нулевой и нулевой длины по-разному. Нулевое значение удаляет связанный тег XML, а строка нулевой длины отправляет пустой тег.

Как вы вводите данные в таблицы? Я выполнил экспорт XML с данными, которые я ввел с помощью табличного представления, и он успешно добавляет и удаляет столбец, как вы предложили.

LeppyR64 03.12.2008 17:18

Вы хотите сказать, что не хотите использовать строки нулевой длины?

LeppyR64 03.12.2008 17:24

Нет такого понятия, как «прямо в таблице». Вероятно, вы имеете в виду форму, привязанную к набору записей, возможно, ту, которая предоставляется в пользовательском интерфейсе любой версии MS Access, которую вы используете. Или «напрямую» означает, что вы используете код SQL?

onedaywhen 05.12.2008 11:38

@onedaywhen, я имел в виду те вещи, которые обращаются к "таблицам". Кроме того, даже не беспокойтесь о том, чтобы все кортежи / отношения на нас, когда мы говорим о MS Access.

anopres 11.08.2009 18:34
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
9
4
51 382
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

Вы говорите о необходимости делать это в режиме таблицы? Если вам нужно было сделать это в запросе на обновление, вы можете сделать это так:

UPDATE test SET test.test = Null;

Да, я говорил об этом в виде таблицы.

anopres 03.12.2008 17:48

Просто удалите все символы в столбце, и Access вставит для вас нулевое значение, если это разрешено coumn.

Нет, если в поле разрешены строки нулевой длины.

David-W-Fenton 05.12.2008 06:51

@ David-W-Fenton для меня работает так, как указано в @bang. У меня есть столбец NOT NULL varchar в связанной таблице с SQL Server и allow zero-length strings = yes в Access. Тем не менее, когда я удаляю текст, он не вставляет пустую строку, а вместо этого выдает ошибку нулевой вставки, что столбец не имеет варианта типа.

Vojtěch Dohnal 16.03.2016 15:39

Я вижу, что для связанных таблиц ODBC stackoverflow.com/a/22203637/2224701 поведение другое.

Vojtěch Dohnal 16.03.2016 15:52

На самом деле я ищу способ для непрофессионала сделать запись прямо в таблице. В MSSQL вы можете просто нажать ctrl-0, и будет вставлен нуль. Удаление всех символов не работает. Вместо нуля у вас остается пустая строка. Access не обрабатывает их одинаково для целей экспорта.

Я думаю, что в итоге я собираюсь создать файл xslt для использования во время экспорта, который удаляет пустые теги. Таким образом, пользователь действительно не заметит разницы.

Хотя было бы неплохо иметь возможность ввести нуль.

Какую версию Access вы используете? Как я уже упоминал в своих комментариях к вашему исходному сообщению, я реализовал запрашиваемое вами поведение.

LeppyR64 03.12.2008 17:55

Помогает ли установка параметра «Разрешить строку нулевой длины» в определении таблицы? Это может заставить пустую строку интерпретироваться как NULL.

Не «может», но БУДЕТ. Если вы не используете ZLS как значимое значение, отличное от Null, нет причин для какого-либо поля, разрешающего хранение ZLS. Это определенно недружелюбно к пользователю.

David-W-Fenton 05.12.2008 06:50
Ответ принят как подходящий

Хорошо, я не думаю, что это легко решаемая проблема, и мой первоначальный вопрос был немного не по плану. Проблема не столько в значениях NULL, хотя они и задействованы, сколько в том, как изначально была создана таблица. Если вы используете файл xsd для создания таблиц, которые планируете экспортировать, что-то происходит внутри Access, что приводит к тому, что эти поля обрабатываются немного иначе, чем поля, созданные с помощью редакторов.

Единственное решение, которое я нашел, - это создать новое поле в таблице, переименовать старое поле, скопировать данные из старого поля в новое и удалить старое поле.

После этого пустые поля, в которых когда-то были данные, больше не включаются в вывод XML. Вероятно, это не лучший способ сделать это, и я до сих пор точно не знаю, почему это происходит, но, по крайней мере, я могу решить эту проблему.

нажмите ctrl-0, и будет вставлен нуль.

Это не работает с Access 2007. Как вы заставили это работать?

anopres 11.08.2009 18:25

Удаление всех символов будет работать, но Access немного непостоянен. Нажатие на возврат или удаление не сработает, если в поле нет символов. Я считаю, что лучше всего ввести несколько символов, выделить все и нажать «Удалить», сменить фокус и изменить запись. После всего вышеперечисленного, если вы запустите запрос, ищущий "is null", запись будет найдена.

Успешно ввел несколько символов, как было предложено, затем с помощью F2 для выбора и последующего удаления, но это не работает постоянно.

Tom Sharpe 13.01.2016 14:54

Другие вопросы по теме