2016-04-08 18 views
-2

固定アルファベットと乱数テーブルをAccessに作成したいとします。Microsoft Access

例:

Q116-001 
Q116-002 

Q116は、ユーザによって追加され、Iは、プログラムによって生成される001002を必要とします。

これをどのように達成できますか?

+0

ようこそ、あなたが今まで試みたことを追加してください – gitsitgo

+0

私は別のオプションを試していますが、動作していません。 "Student_ID"のように、Q116-001、Q216-002、...、Q117-001、Q217-002、 – Lozan

+0

などのアルファベットを含む7文字のIDのみを生成する必要があります。これをフォームレベルで行いたいですか? – LiamH

答えて

1

これは私がやることです... student_codeはテーブルレベルで、Student_ID(主キー/自律番号)とは異なります。 student_codeはとすることができ、重複する必要はありません。フォームレベルで

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