Thema Datum  Von Nutzer Rating
Antwort
Rot Access Modul abändern und Wert in Formular-Textfeld ausgeben
21.05.2015 16:50:21 Pavel
NotSolved
24.05.2015 20:16:23 Gast37887
NotSolved

Ansicht des Beitrags:
Von:
Pavel
Datum:
21.05.2015 16:50:21
Views:
1621
Rating: Antwort:
  Ja
Thema:
Access Modul abändern und Wert in Formular-Textfeld ausgeben

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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Access Modul abändern und Wert in Formular-Textfeld ausgeben
21.05.2015 16:50:21 Pavel
NotSolved
24.05.2015 20:16:23 Gast37887
NotSolved