powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как вытащить почтовый индекс из строки с адресом?
6 сообщений из 6, страница 1 из 1
Как вытащить почтовый индекс из строки с адресом?
    #34969790
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

В таблице (Access) есть поле с адресами:

129081, Москва, Новый Арбат, д.19, кв. 24
РФ 345876 г. Красноярск, ул. Ленина, д. 22, кв. 56

Как из каждого поля вытащить, удалить и вставить в новое поле индекс?

Заранее спасибо.
...
Рейтинг: 0 / 0
Как вытащить почтовый индекс из строки с адресом?
    #34970018
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
index = Left(Address, Instr(Address,",")- 1 )
Если нужно скопировать индексы в другое поле в той же таблице:
Код: plaintext
update [table] set [index] = Left(Address, Instr(Address,",")- 1 )
...
Рейтинг: 0 / 0
Как вытащить почтовый индекс из строки с адресом?
    #34970219
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В аксессе есть возможность использовать код VBA в запросах.
Идея следующая:
Создаем модуль. Подключаем следующий Reference:
Microsoft VBScript Regular Expressions 5.5В модуле код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Option Compare Database
Option Explicit

Dim idxReg As RegExp
Dim idxMatches As MatchCollection

Public Function ExtractIndexFromAddress(ByVal SourceStr As String) As String
   If idxReg Is Nothing Then CreateIdxReg
   Set idxMatches = idxReg.Execute(SourceStr)
   If idxMatches.Count >  0  Then
      ExtractIndexFromAddress = idxMatches.Item( 0 )
   End If
End Function

Private Sub CreateIdxReg()
   Set idxReg = New RegExp
   idxReg.Pattern = "\d{6}"
End Sub
Далее, создаем запрос:
Код: plaintext
UPDATE Table1 SET aIndex = ExtractIndexFromAddress(Address);
Прогоняем его и все.
В качестве теста взял и ваш пример и накидал в таблицу тарабанщины с вкраплениями индекса из 6 цифр.
...
Рейтинг: 0 / 0
Как вытащить почтовый индекс из строки с адресом?
    #34970229
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ps:
Не заметил то что вам нужно еще и удалить индекс из поля адреса.
Переписал текст запроса, и получил нужный результат.
Код: plaintext
UPDATE Table1 SET Table1.aIndex = ExtractIndexFromAddress(Address), Table1.Address = Replace(Address,aIndex,"");
...
Рейтинг: 0 / 0
Как вытащить почтовый индекс из строки с адресом?
    #34970238
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Worobjoff
Код: plaintext
UPDATE Table1 SET Table1.aIndex = ExtractIndexFromAddress(Address), Table1.Address = Replace(Address,aIndex,"");
Ошибку сделал. Надо по очереди выполнить два запроса.
Код: plaintext
1.
UPDATE Table1 SET Table1.aIndex = ExtractIndexFromAddress(Address)
UPDATE Table1 SET Table1.Address = Replace(Address,aIndex,"");

или так - одним запросом:
Код: plaintext
1.
UPDATE Table1 SET Table1.aIndex = ExtractIndexFromAddress(Address)
, Table1.Address = Replace(Address,ExtractIndexFromAddress(Address),"");
...
Рейтинг: 0 / 0
Как вытащить почтовый индекс из строки с адресом?
    #34976083
Molasar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за конкретный ответ. Все работает.

Слава великому богу SQL.RU и его проповедникам!!!! Сколько раз помогал.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как вытащить почтовый индекс из строки с адресом?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]