|  
                                             
	Guten Abend allerseits 
	Ich bin neu hier - auch in Bezug auf VBA ... 
	Jetzt erst, nach langem herumbasteln, suchen und zeitverschwenden wende ich mich an die Fachkräfte und hoffe auf Eure Unterstützung. 
	Mein Problem: 
	Ich habe ein Access Formular erstellt und das Eingabetextfeld "Personen_ID" von der entsprechenden Tabelle ausgewählt. 
	So weit so gut.  
	Im Formular habe ich folgendes Modul (Modulname = mod_PersID_Zaehler) welches den folgenden Code beinhaltet: 
	  
	Function GetNextNumber(Optional lastNr As String) As String 
	    Const pre As String = "Z" 
	    Dim maxNR As String 
	    Dim nStart As Integer 
	    Dim v1 As String, v2 As String, i As Integer, j As Integer, k As Integer 
	    
	    v1 = "A" 
	    v2 = "A" 
	    nStart = 0 
	    If lastNr <> "" Then 
	        v1 = Left(Mid(lastNr, 2, 2), 1) 
	        v2 = Right(Mid(lastNr, 2, 2), 1) 
	        nStart = Val(Right(lastNr, 4)) + 1 
	        If Asc(v2) >= 90 And Asc(v1) >= 90 And nStart >= 9999 Then 
	            MsgBox "Keine Nummer mehr" 
	            Exit Function 
	'        ElseIf Asc(v2) >= 90 And Asc(v1) >= 90 Then 
	        ElseIf Asc(v2) >= 90 Then 
	            v2 = "A" 
	            v1 = Chr(Asc(v1) + 1) 
	        End If 
	        If nStart > 9999 Then 
	            nStart = 0 
	            v2 = Chr(Asc(v2) + 1) 
	        End If 
	    End If 
	    For j = Asc(v1) To 90 
	        For k = Asc(v2) To 90 
	            For i = nStart To 9999 
	                maxNR = pre & Chr(j) & Chr(k) & Format(i, "0000") 
	                GetNextNumber = maxNR 
	                If lastNr = "" Then Debug.Print maxNR Else Exit Function 
	            Next i 
	        Next k 
	    Next j 
	End Function 
	  
	So weit so gut: 
	Ich möchte jetzt per "Doppelklick"  auf das Textfeld "Personen_ID") ein Ereignis ausführen, welches auf das obengenannte Modul (d.h. auf die Funktion darin "GetNextNumber" zugreift, dieses ausführt, und mir den Wert wieder ins selbige (gleiche) Textfeld im Formular als Text hineinschreibt (d.h. per Doppelklick - automatisch). Dabei soll der Code des Moduls so abgeändert werden, dass man nicht erst eine Zahl per Hand (tippen) eingeben muss - wie bisher, sondern dass es nach einer aufsteigenden Nummerierung selbständig Nummern generieren kann nach Doppelklick. 
	D.h.  die alphanumerische PersonenID beginnt wie bisher mit "Z" am Anfang. Der Niedrigste Wert wäre ZAA0001 und der höchstmögliche Wert wäre ZZZ9999. 
	Der Startwert ist eigentlich "ZAA" ... 
	Beginnen soll es mit ZAA0001  (d.h. die ersten 3 Ziffern müssen Buchstaben sein!) und sich immer um eins erhöhen d.h. ZAA0002, ZAA0003, ZAA0004... wenn es bei ZAA9999 angelangt ist, soll es zu ZAB0001 wechseln und ab dort wieder hochzählen (z.B. ZAB0001, ZAB0002, etc. etc. etc...) bis eben ZZZ9999 
	  
	Das Ereignis für das Textfeld könnte so ähnlich aussehen (aber wie gesagt, habe ich hier ebenfalls keine Ahnung!): 
	Private Sub Personen_ID_DblClick(Cancel As Integer) 
	... etc... 
	End Sub 
	  
	Bitte helft mir auch bei dieser Ereignisprozedur! 
	Mal soweit ... 
	Vielen Dank 
	Pavel 
	  
     |