Значения полей суффикса, основанные на количестве вхождений в таблице - PullRequest
2 голосов
/ 11 марта 2019

У меня есть таблица в MS Access, которая имеет поле layout_desc.Мне нужно создать запрос, который изменяет каждое значение в этом поле, добавляя, сколько раз значение повторяется в таблице.

Например:

enter image description here

Спасибо.

1 Ответ

0 голосов
/ 11 марта 2019

Без первичного ключа:

Предполагая, что ваша таблица не содержит поле первичного ключа, по которому для сортировки записей с использованием функции агрегирования домена можно использовать статические переменные вVBA.

  • Откройте IDE VBA, используя Alt + F11
  • Вставьте новый общедоступный модуль Alt + I , M
  • Скопируйте следующий базовый код в новый модуль:

    Function Occurrence(Optional strVal As String) As Long
        Static lngTmp As Long
        Static strTmp As String
        If strTmp = strVal Then
            lngTmp = lngTmp + 1
        Else
            lngTmp = 1
            strTmp = strVal
        End If
        Occurrence = lngTmp
    End Function
    
  • InMS Access, создайте новый запрос с помощью следующего SQL, изменив YourTable на имя вашей таблицы:

    update (select t.layout_desc from YourTable as t order by t.layout_desc) q
    set q.layout_desc = q.layout_desc & occurrence(q.layout_desc)
    

С первичным ключом:

ЕслиВаша таблица должна была включать первичный ключ, скажем, id, типа данных Long Integer, вы можете использовать функцию агрегирования домена DCount следующим образом:

update YourTable t
set t.layout_desc = t.layout_desc & 
dcount("*","YourTable","layout_desc = '" & t.layout_desc & "' and id <= " & t.id)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...