Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: dobby110 am Januar 16, 2020, 08:39:23

Titel: Ereignisprozedur um einen Namen zu generieren
Beitrag von: dobby110 am Januar 16, 2020, 08:39:23
Hallo zusammen,

kann mir jemand bei folgendem Problem helfen?

Ich würde gerne mit Hilfe von Access einen Dateinamen generieren.
Für eine automatisierte Archivierung außerhalb von Access, müssen Dateien in diesem Format abgespeichert werden. D.h. das Formular hat keinerlei Relevanz auf meine Datenbank, es bedient sich lediglich der Daten daraus, um den Dateinamen zur Archivierung zu generieren. Den würde ich dann einfach nur noch kopieren und die Datei entsprechend benennen.

Hierfür habe ich ein Formular gebastelt, welches aus Kombinationsfeldern und Textfeldern besteht. (siehe Screenshot)

Für das Textfeld "Dateiname" habe ich folgende Ereignisprozedur hinterlegt:


Private Sub Text40_GotFocus()
Text40 = Kombinationsfeld4 & "=" & Kombinationsfeld0 & "=" & Kombinationsfeld12 & "=" & Text24 & "=" & Text32
End Sub



Quasi sollen alle Felder in Reihe geschrieben werden und mit einem "=" getrennt werden.
Wenn man sich meinen Screenshot anschaut, dann kann man mein Problem relativ schnell nachvollziehen.

Erwarten würde ich
10441=XF0009935952=CC=Capital Call 2=20.01.2020

ich erhalte aber
6=108=CC=Capital Call 2=20.01.2020

Gibt es eine Lösung, wie ich aus der 6 (was der ID entspricht) die 10441 (XP-Nummer) erhalte und wie ich aus der 108 (was ebenfalls der ID entspricht) die XF0009935952 (ISIN)?
Titel: Re: Ereignisprozedur um einen Namen zu generieren
Beitrag von: PhilS am Januar 16, 2020, 10:07:18
Zitat von: dobby110 am Januar 16, 2020, 08:39:23
Gibt es eine Lösung, wie ich aus der 6 (was der ID entspricht) die 10441 (XP-Nummer) erhalte und wie ich aus der 108 (was ebenfalls der ID entspricht) die XF0009935952 (ISIN)?
Die Standardeigenschaft eine Combobox ist Value, welches die gebundene Spalte (=Id) enthält.
Mit der Column-Eigenschaft kannst du auf die anderen Spalten zugreifen

Beispiel:Private Sub Text40_GotFocus()
   Text40 = Me.Kombinationsfeld4.Column(1) & ...
End Sub


Nebenbei: Bitte, bitte, bitte, vergib verständliche Namen für deine Steuerelemente! In wenigen Tagen hast du nicht mehr die geringste Ahnung was "Kombinationsfeld4" in diesem Formular denn genau ist.


PS: Das mit dem Gleichheitszeichen im Dateinamen würde ich nochmal überdenken...
Titel: Re: Ereignisprozedur um einen Namen zu generieren
Beitrag von: dobby110 am Januar 16, 2020, 10:20:06
Danke für die Hilfe ... die Namen passe ich natürlich noch an.
Das war ein erster Entwurf um zu prüfen ob das überhaupt funktioniert, so wie ich mir das vorstelle.

Das Gleichheitszeichen ist leider notwendig, da ich die einzelnen Kriterien durch ein Sonderzeichen trennen muss, damit die Archivierungslogik unserer IT greift. Da Unterstriche, Bindestriche usw. evtl. in den Dokumentennamen vorkommen können, ist das Gleichheitszeichen das geringste übel um eine strikte Trennung kenntlich zu machen.
Titel: Re: Ereignisprozedur um einen Namen zu generieren
Beitrag von: Beaker s.a. am Januar 16, 2020, 14:38:13
Als Trennzeichen verwende ich immer die Pipe |, die wirst du kaum in irgendeinem Text finden.