August 11, 2022, 05:24:04

Neuigkeiten:

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


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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

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
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.

DF6GL

Mai 23, 2022, 08:30:07 #6 Letzte Bearbeitung: Mai 23, 2022, 15:49:25 von DF6GL
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

Mai 23, 2022, 09:12:13 #7 Letzte Bearbeitung: Mai 23, 2022, 20:09:26 von ReAcc
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