Можно ли использовать запрос на обновление в MS Access для автоматического заполнения поля «Уникальный идентификатор» символами из других полей? В частности, у меня есть уникальное поле идентификатора, которое состоит из (1) последнего инициала имени (2) первого инициала фамилии (3) мм/дд даты рождения и (4) пола (М/Ж). Таким образом, Джон Смит, родившийся 17 февраля, будет NS0217M. Можно ли вытащить отдельные символы из существующего поля и таким образом объединить их в другое поле? К сожалению, я работаю с Access 2003. Хотя я бы предпочел создать новую систему идентификации, она уже существует, и мне нужно адаптировать базу данных, которую я создаю, для ее соответствия.
Можно ли использовать запрос на обновление в MS Access для автоматического заполнения поля «Уникальный идентификатор» символами из других полей?
comment
Где вы пытаетесь создать этот уникальный идентификатор? Решение пользователя 2063626 будет работать, если вы хотите, чтобы оно отображалось только в формах и отчетах, но не сохранялось в собственном поле базы данных. Если вам нужно сохранить его в поле, вам придется использовать VBA или запрос на обновление, чтобы создать его.
- person Tom Collins   schedule 19.02.2013
comment
В настоящее время я использую форму, содержащую эти поля, для заполнения базы данных, поэтому мне нужно сохранить создаваемое поле ClientID. Я новичок в VBA, но использовал его несколько раз, мне не удалось найти пример кода, который позволил бы мне извлекать отдельные символы из нескольких полей. Из приведенных ниже примеров похоже, что есть способ сделать это, но я не понимаю, с чего начать. Спасибо всем за помощь.
- person Adam Wade   schedule 20.02.2013
Ответы (2)
Вот что вы будете использовать. Вам нужно будет отобразить поле UID в форме, но пометить его как заблокированное, чтобы вы случайно не написали в нем.
Кроме того, здесь нет проверки ошибок, поэтому вы получите ошибки, если какое-либо из полей пусты.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Me.UID = Right(fname, 1) & Left(lname, 1) & Format(CDate(DOB), "mmdd") & Gender
End Sub
person
Tom Collins
schedule
20.02.2013
выберите ЛЕВЫЙ (Имя, 1) + ПРАВЫЙ (Фамилия, 1) + ФОРМАТ (дата рождения, 'ММДД') + пол в качестве уникального идентификатора
person
Community
schedule
19.02.2013
Кроме того, в VBA правильным символом конкатенации является &. + обычно работает, но не всегда. И функция Format требует двойных кавычек.
- person Tom Collins; 20.02.2013