Frage : VB Code zu Autonumber benötigen ein alphanumerisches Feld…

Hallo Experten!

I morgens haftete!   Ich kann nicht scheinen, genau zu finden, was ich von den EE-Lösungen benötige (oder von etwas, die ich umwandeln kann in, was ich gegründet auf meinem begrenzten Wissen der VB Kodierung benötige) - also benötige ich Ihre Sachkenntnis!  

I möchte dem Benutzer erlauben, eine Archivierungs-Art von einem Menü des Zuges Field1 (oder FileIDType_A im Code/im Bild unten) unten vorzuwählen und VB Code Field2 (TempDocID im Code/im Bild unten) mit einem Präfix von der Archivierungs-Art bevölkern zu lassen der Benutzer, der zum Beispiel PLUS die folgende vorhandene Zahl für den prefix.

vorgewählt wurde:

If der Benutzer wählte „Korrespondenz“ von der Archivierungs-Art pull-down Menü (FileIDType_A), dann würde das „TempDocID“ Feld C00001 zeigen, wenn es die 1. Zahl in der Kategorie war, ODER C00002, wenn es die 2. Zahl war, etc.

If der Benutzer „Dokument“ von der Archivierungs-Art pull-down Menü wählten, dann das „TempDocID D00001.

Where zurückbringen würde, ich bin stuck bin, dass der Code, den hält ich aufgebaut habe, „00001“ zurückzubringen und erhöhe nicht.  Anderes Thema, das I vermeiden möchten, ist: C00001, D00002, etc. - das das Präfix erkannt wird und die Zählung für jedes Präfix unterschiedlich ist (z.B.C00001, C00002, D00001, D00002).

Is das möglich??  Ich habe zwei Codes angebracht, denen ich mit gearbeitet habe.  Code1 ist das nähste zu, was ich benötige.  Code2 ist ziemlich roh - ich begann gerade auf ihm und morgens einschließlich, falls es einfacher für Sie ist, umzuwandeln es in, was ich benötige (es wird nur für ein Präfix gegründet).  Ich habe auch die Entwurfs-Ansicht meiner Form zu hoffnungsvoll help.

THANK SIE! angebracht!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
CODE1

Privates Unterseeboot - Akte _TypeA_AfterUpdate ()
    
    Schwacher FileType als Schnur
    Schwaches MaxVal als Schnur
    
    FileType = ich! FileIDType_A

    FallFileType vorwählen
        „Korrespondenz“ umkleiden
            MaxVal = DMax („[TempDocID]“, „T_DocList“,“ [In_PR_AR] =2 ")
            Ich! TempDocID = „C“ u. Format (Val (rechtes (MaxVal, 5)) + 1, „00000“)
        Fall „Dokument“
            MaxVal = DMax („[TempDocID]“, „T_DocList“,“ [In_PR_AR] =2 ")
            Ich! TempDocID = „D“ u. Format (Val (rechtes (MaxVal, 5)) + 1, „00000“)
        Fall „ENV-Einschätzung“
            MaxVal = DMax („[TempDocID]“, „T_DocList“,“ [In_PR_AR] =2 ")
            Ich! TempDocID = „EA“ u. Format (Val (rechtes (MaxVal, 5)) + 1, „00000“)
        Fall „Diagramm/Grafik“
            MaxVal = DMax („[TempDocID]“, „T_DocList“,“ [In_PR_AR] =2 ")
            Ich! TempDocID = „M“ u. Format (Val (rechtes (MaxVal, 5)) + 1, „00000“)
        Fall „Öffentlichkeit/Agentur-Miteinbeziehung“
            MaxVal = DMax („[TempDocID]“, „T_DocList“,“ [In_PR_AR] =2 ")
            Ich! TempDocID = „P“ u. Format (Val (rechtes (MaxVal, 5)) + 1, „00000“)
        Fall „Bezugsbibliothek“
            MaxVal = DMax („[TempDocID]“, „T_DocList“,“ [In_PR_AR] =2 ")
            Ich! TempDocID = „R“ u. Format (Val (rechtes (MaxVal, 5)) + 1, „00000“)
        Fall sonst
            Löschen = richtet aus
    Ende auserwählt

Enden-Unterseeboot


CODE2

Privates Unterseeboot - Akte _TypeA_AfterUpdate ()
    
    Schwaches DB als DAO.Database
    Schwaches rst als DAO.Recordset
    Schwaches lngCntr als lang
    Schwaches intRetry als ganze Zahl
    Schwaches intNum als ganze Zahl, intA als ganze Zahl, intB als ganze Zahl
    Schwaches strANum als Schnur

    Auf Störung Goto- ErrorAlphaNumGenerate
    Wenn IsNull (File_TypeA) dann
        Löschen = richtet aus
    Sonst
    Einstellen DB = CurrentDb ()
    Rst = DB.OpenRecordset („T_Counter“, DB_OPEN_DYNASET) einstellen
    rst.MoveFirst
    rst. Redigieren
    rst! Wert = rst! Wert + 1
    rst. Update
    lngCntr = CLng (rst! Wert) - 1
    intNum = lngCntr Umb. 1000
    intA = (lngCntr \ 1000) Umb. 26
    intB = (lngCntr \ 1000) \ 26

    strANum = Chr$ (intB + 65) u. Chr$ (intA + 65) u. Format$ (intNum, „0000“)
    AlphaNumGenerate = strANum
    Ich! TempDocID = strANum

ExitAlphaNumGenerate:
    Unterseeboot herausnehmen

ErrorAlphaNumGenerate:
    Wenn = 3188 dann sich irren
        intRetry = intRetry + 1
        Wenn intRetry < 100 dann
            Zusammenfassung
        Sonst
            MsgBox Error$, 48, „ein anderer Benutzer, der redigiert diese Zahl“
            Zusammenfassung ExitAlphaNumGenerate
        Beenden wenn
    Sonst
        MsgBox Str$ (sich irren) u. „„u. Error$, 48, „Problem, das erzeugt Zahl“
        ExitAlphaNumGenerate wieder aufnehmen
    Beenden wenn
Beenden wenn
Unterseeboot beenden
Attachments:
Access DB-Entwurf Screen

Antwort : VB Code zu Autonumber benötigen ein alphanumerisches Feld…

Ich prüfte es nicht… Ich versuchte gerade, zu unterstreichen, dass Sie Ihren ursprünglichen Zustand und den 2. Zustand benötigen.

dmax (etwas, etwas, „Condition1 UND condition2“)
Weitere Lösungen  
 
programming4us programming4us