Отрезание 0 в начале записи - PullRequest
1 голос
/ 06 февраля 2012

Это может быть основной вопрос, но я понятия не имею, как сказать это в Google.

По сути, у меня есть база данных Access с первичными ключами, структурированная в этом формате ("02" 000).

Когда я пытаюсь вставить число, оно игнорирует «02» и переходит прямо к 000.

Например, вот код;

PeriodRoomID.Name = ("R" & ds.Tables("sqlSpecRoomRequest").Rows(i).Item(1))

Значение PeriodRoomID.Name должно быть R02001. То, что PeriodRoomID.Name подходит как R1.

Он игнорирует "02" и игнорирует 0. Это имеет смысл математически, но это не то, что я хочу. Мне нужен способ получить точный вывод, а не упрощенную версию.

Запрос;

SELECT SpecialSoftware.SpecSoftID, SpecialSoftware.RoomID, SpecialSoftwareNames.Description, Rooms.Capacity
FROM SpecialSoftware, SpecialSoftwareNames, Rooms

Ответы [ 3 ]

1 голос
/ 06 февраля 2012

Я полагаю, что у вас есть поле автонумерации с форматом, установленным в «02» 000.Все, что делает формат - это отображает данные для пользователя Access в этом формате.Поле не содержит 02001, оно содержит 1. Если вы хотите воссоздать формат, вам придется сделать это в вашем приложении.Обновление автономного номера до n будет отображаться как n в ADO и ODBC, но как 0200n в различных местах в Access - формат даже не относится к запросам в Access.Я не верю, что формат в таблице - хорошая идея.

1 голос
/ 06 февраля 2012

Вы можете просто отформатировать число внутри вашего приложения:

Dim roomID As String = ds.Tables("sqlSpecRoomRequest").Rows(i).Item(1)
PeriodRoomID.Name = "R02" & roomID.PadLeft(3, "0"c)
0 голосов
/ 06 февраля 2012

Можно ли получить доступ только к "02"?Вы написали, что ваш запрос игнорирует "02", так что, похоже, вам нужно иметь один запрос для этой части информации.
Я не эксперт по vb или access, но похоже, что вы можете использовать quick'n 'грязное решение: Вы написали, ваши ключи имеют форму "02" 000.Я бы вынул каждое число отдельно, проверил количество цифр, преобразовал бы его в строку и заполнил все пропущенные начальные нули, потому что вы знаете максимальное количество цифр.

Ссылаясь на то, что показывают общие комментарии: Заполнение динамически ведущих нулей и обращение к таблице по имени, чтобы решить по условию if, если ваш номер комнаты начинается с R01 или R02.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...