2014-01-27 7 views
0

Одна таблица имеет адресное поле с примерами значений:MS Access - Обновление конкретные значения одной таблицы на основе значений из другой таблицы (поле Длина Удельная)

123 Main Street Professional Center 
456 Avenue Of Americas Financial Square 
678 Great Northern Boulevard University Centre 

Эти значения превышают определенное количество символов (в данном случае - длина поля 30)

у меня есть другая таблица, которая имеет значения и их USPS одобрил аббревиатуры:

Field1 Acronym 
Street St 
Boulevard Blvd 
Square Sq 

Я хотел бы быть в состоянии обновить улица колонка I n моя первая таблица с аббревиатурами из второй таблицы, основанная на совпадающих значениях в Field1 в моей второй таблице.

Возможно? Альтернативные решения высоко ценятся.

ответ

1

Одним из возможных решений является itereate для каждой записи в таблице акронимов. Затем замените соответствующее значение.

Public Sub UpdateTable() 
Dim rs As Recordset 
Dim sql As String 
    Set rs = CurrentDb.OpenRecordset("acronyms") 
    Do Until rs.EOF 
     sql = "UPDATE addresses SET address = Replace([address], '" & rs!Field1 & "', '" & rs!Acronym & "') WHERE address like '*" & rs!Field1 & "*'" 
     CurrentDb.Execute sql 
     rs.MoveNext 
    Loop 
    rs.Clone 
End Sub 

Примечание: В зависимости от версии MS-доступа, как выражение должно быть с * или%

+0

Хороший ответ. Однако различие в подстановочных символах не зависит от версии Access, это зависит от того, где выполняется запрос. Запросы, запускаемые из самого приложения Microsoft Access, используют '*' в качестве подстановочного знака для «ноль или более символов», в то время как запросы, запускаемые из внешних приложений (подключение через ADO, OLEDB и т. Д.), Используют '%' в качестве подстановочного знака. –

+1

С другой версией доступа я ссылался на файлы mdb/adp. Из Access 2003 в файлах проектов (adp) используется групповой символ%, в то время как базы данных нормального доступа - это опция, которую вы можете установить в Options-> Tables/Queries-> SQL Syntax http://office.microsoft.com/en-us/ access-help/access-projects-and-data-access-pages-now-use-ansi-sql-92-HA001034562.aspx http://office.microsoft.com/en-us/access-help/ сравнение-оф-Microsoft струйного SQL-и-ANSI-SQL-HP001032250.aspx – mnieto

Смежные вопросы