2016-04-08 2 views
-2

Я хочу создать фиксированный алфавит плюс случайное число таблица в Access.Microsoft Access

Пример:

Q116-001 
Q116-002 

Q116 добавляется пользователем, и мне нужно 001, 002, чтобы быть сгенерирован программой.

Как я мог достичь этого?

+0

Добро пожаловать в SO, пожалуйста, добавьте то, что вы попытались до сих пор – gitsitgo

+0

Я просто пытаюсь использовать другой вариант, но не работает. Например, «Student_ID» должен генерировать только 7 символов, включая один алфавит, такой как Q116-001, Q216-002, ..., Q117-001, Q217-002, – Lozan

+0

Вы хотите сделать это на уровне формы? – LiamH

ответ

1

Это то, что я бы сделал ... На уровне таблицы есть student_code, который отличается от Student_ID (Первичный ключ/Автономный номер). student_code может быть string и не требует дубликатов.

На уровне формы:

Dim DB As Database 
    Dim RS As Recordset 
    Dim var2 As String 
    Dim var1 As String 
    Dim var3 As String 


    var1 = Left(Me.Student_code, 2) 'this will be the Q106 that the user inputs 

    var2 = "SELECT count(*) AS CountStudent " & _ 
      "FROM Students " & _ 
      "WHERE left(Suppliers.[Student_code],2)='" & var1 & "';" 

    Set DB = CurrentDb 
    Set RS = DB.OpenRecordset(var2, dbOpenDynaset) 
    var3 = RS!CountSupplier + 1 
    Me.Student_Code = UCase(var1) & Format(var3, "000") 

Это может быть сделано на форме, может быть, на lose_focus так они печатают в первой части, а затем, когда они отодвигаться код проверяет таблицу и добавляет следующий номер , Но пользователь может не обязательно помнить часть Q106, поэтому вам нужно убедиться, что это контролируется, может быть?

+0

Я только что обработал это по-другому. Он работает сейчас. Я думаю, ваше предложение тоже работает – Lozan