Я вернулся в Access после длительного отпуска и столкнулся с некоторыми трудностями. У меня есть таблица с полем почтового индекса. Некоторые из поставляемых почтовых индексов состоят из 5 цифр (52186), а некоторые - из 10 цифр с завершающим кодом соседства (77005-1568). Однако ведущие нули не сохранились, и мне нужно их снова вставить. Например, (04074) отображается в (4070). Однако 9-значные почтовые индексы включают начальные нули. Мне нужен способ добавить начальные нули к 5-значному почтовому индексу. Я не могу использовать такой трюк, как преобразование в число с последующим форматированием до «00000», потому что это создает хаос с 9-значными zip-файлами. Кроме того, поскольку я так долго отсутствовал в Access, я не уверен, должен ли я делать это с помощью функции, запроса, какого-либо типа VBA RecordSet или чего-то еще. Я не могу вспомнить, как лучше всего подойти. Будем очень признательны за любые советы. Спасибо!
-Чарли
Я думаю, вам нужен Val ([zip]) вместо Int ([zip])
Вы можете использовать это выражение:
TrueZip = IIf(IsNumeric([Zip]), Format([Zip], "00000"), Right("00" & [Zip], 10))
В запросе это будет (в графическом интерфейсе):
TrueZip: IIf(IsNumeric([Zip]),Format([Zip],"00000"),Right("00" & [Zip],10))
Что касается SQL, это будет выглядеть так:
Select
*,
IIf(IsNumeric([Zip]),Format([Zip],"00000"),Right("00" & [Zip],10)) As TrueZip
From
YourTable
Будет ли это в запросе или в формуле? Я попробовал это в запросе, и мне не удалось заставить его работать, но опять же, я очень ржавый с Access
См. Расширенный ответ.
обновить набор таблиц [zip] = right ("00000 '& [zip], 5), где int ([zip]) <10000