2013-02-19 3 views
0

MS Access에서 업데이트 쿼리를 사용하여 고유 필드를 다른 필드의 문자로 자동 채울 수 있습니까? 특히, 나는 (1) 이름의 마지막 이니셜 (2) DOB의 성 (3) mm/dd와 성 (M/F)의 첫 성 머리말로 구성된 고유 ID 필드가 있습니다. 그래서 2 월 17 일에 태어난 존 스미스는 NS0217M이 될 것입니다. 기존 필드에서 개별 문자를 가져 와서 이런 방식으로 다른 필드에 결합 할 수 있습니까? 불행히도 Access 2003을 사용하고 있습니다. 새로운 ID 시스템을 만드는 것을 선호하는 반면, 이미 구현 된 ID 시스템이며, 필자가 맞춰 줄 데이터베이스를 맞춤화해야합니다.MS Access에서 업데이트 쿼리를 사용하여 고유 ID 필드를 다른 필드의 문자로 자동 채울 수 있습니까?

+1

어디에서이 고유 ID를 만드시겠습니까? user2063626의 솔루션은 폼과 보고서에만 표시하고 데이터베이스에는 자신의 필드에 저장하지 않으려면 작동합니다. 필드에 저장해야하는 경우 VBA 또는 업데이트 쿼리를 사용하여 필드를 만들어야합니다. –

+0

현재 데이터베이스를 채우기 위해이 필드가 포함 된 양식을 사용하고 있으므로 저장할 수 있도록 "ClientID"필드가 필요합니다. 저는 VBA를 처음 사용했지만 몇 가지 경우에 사용했습니다. 여러 필드에서 개별 문자를 가져올 수있는 코드 예제를 찾을 수 없었습니다. 아래 예제에서이 작업을 수행 할 수있는 방법이있는 것처럼 보이지만 시작할 위치가 명확하지 않습니다. 지금까지 도움을 주셔서 감사합니다. –

답변

0

선택 LEFT (FIRSTNAME, 1) + RIGHT (성, 1) + FORMAT을 UniqueID

+2

'Right (FirstName, 1) & Left (LastName, 1) ' – HansUp

+1

또한 VBA에서 올바른 연결 문자는 &입니다. 일반적으로 +가 작동하지만 항상 그런 것은 아닙니다. 그리고 Format 함수는 큰 따옴표를 원합니다. –

1

로 (DOB 'MMDD') + 성별 여기에 사용합니다거야. 양식에 UID 필드를 표시해야하지만 우연히 필드에 쓰지 않도록 잠긴 것으로 표시해야합니다.
또한 오류 검사가 없으므로 필드 중 하나라도 비어 있으면 오류가 발생합니다.

Private Sub Form_BeforeUpdate(Cancel As Integer) 
    Me.UID = Right(fname, 1) & Left(lname, 1) & Format(CDate(DOB), "mmdd") & Gender 
End Sub 
+0

감사합니다. Tom! 이 코드는 완벽하게 작동합니다! –