Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Benutzername ohne "." ausgeben

Begonnen von ReAcc, Mai 22, 2022, 12:12:57

⏪ vorheriges - nächstes ⏩

ReAcc

Hallo liebe Experten,

ich habe - wahrscheinlich ein kleines - Problem beim Ausgeben des Benutzernames, wenn ich diesen an den Namen einer externen Tabelle anhängen möchte. Folgenden Code verwende ich für den Export einer Tabelle in eine externe Access-DB:

    DoCmd.TransferDatabase acExport, "Microsoft Access", "C:\Muster\Transfer.accdb", _
    acTable, "tabService", "tabService" & Environ("UserName")

Da unsere Benutzernamen mit "." angelegt sind ("max.muster"), kommt erwartungsgemäß die Fehlermeldung, dass der Tabellenname "tabServicemax.muster" ungültig ist.

Ich habe schon in den Windows-Benutzerkonten Initialen angelegt und versucht, diese mit "UserInitials" auszulesen. Da kommt aber nichts.

Kann mir bitte jemand einen Tipp geben, wie ich den Benutzernamen ohne Punkt ausgeben kann ("maxmuster"), oder ob es doch eine Möglichkeit gibt, die Initialen auszugeben?

Notfalls wäre mir auch damit geholfen, nur die ersten drei Zeichen des Benutzernamens auszugeben.

Vielen Dank im Voraus und viele Grüße aus Frankfurt!

Rene


MzKlMu

Hallo,
mit Replace den Punkt gegen Leerstring tauschen.
..... "tabService" & Replace(Environ('UserName'), ".", "")
Gruß Klaus

ReAcc

Vielen Dank, Klaus, für die superschnelle, perfekte Hilfe!

Beaker s.a.

Hallo Rene,
Windows hat normal kein Problem mit einem . im Dateinamen (getestet).
Du kannst also beim Parameter "Destination" einfach die Extention
mit übergeben (ungetestet)
,  "tabService" & Environ("UserName") & ".accdb"
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

ReAcc

Hallo Ekkehard,

habe ich natürlich auch gleich mal ausprobiert. Kommt aber die gleiche Fehlermeldung " 'tabServicemax.muster.accdb' ist kein gültiger Name". Ich solle sicherstellen, dass keine Sonder- oder Interpunktionszeichen enthalten sind.

Liegt der Fehler vielleicht daran, dass das Ziel "C:\Muster\Transfer.accdb" ist?

Danke und Gruß
Rene

Beaker s.a.

Hallo René,
Ich muss gestehen, dass ich mit den Transfer-Methoden nicht sehr
vertraut bin. Ich hatte mir nur kurz die Parameter(namen) angesehen.
Nachdem ich mir jetzt die OH noch einmal intensiver zu Gemüte
geführt habe, müsste der Aufruf wohl so aussehen (bei mehr als zwei
Parametern verwende ich grundsätzlich benannte Parameter)
DoCmd.TransferDatabase _
    TransferType:=acExport, _
    DatabaseType:="Microsoft Access", _
    DatabaseName:="C:\Muster\Transfer" & Environ("UserName") & ".accdb", _
    ObjectType:=acTable, _
    Source:="tabService", _
    Destination:="tabService"

gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

DF6GL

#6
Hallo,

wie wäre es, selbst mal eine Tabelle (!, um die geht es ja, nicht um den DB-Dateinamen) mit einem "Punkt" zu erstellen, statt zu spekulieren?

Dann meldet Acces sein Dilemma.

Und mit Windows-Dateinamen-Bezeichnung hat es auch nichts zu tun.

Ersetze also, wie Klaus es auch schon angedeutet hat, den Punkt ("besser" nicht durch einen Leerstring, sondern) durch einen Unterstrich.



ReAcc

#7
Hallo zusammen,

nochmals vielen Dank für Eure Tipps! Mit der Hilfe von Klaus konnte ich mein kleines Problem fix lösen.

Viele Grüße
Rene