PDA

Vollständige Version anzeigen : aktueller Userpfad - ohne VBA in normalem Makro?


wonic
29.09.2017, 09:20
Hallo zusammen,

ich habe in meiner DB mehrere Markos über den Assistenten erstellt. Hier verwende ich die Befehle "kopierenObjekt" um etwas in eine 2te DB zu übernehmen.
Nun möchte ich hier optimalerweise mit dem aktuellen User arbeiten, so kann ich die DB einem Kollegen einfach auf den Rechner kopieren und er kann sie ausführen (gleich Berechtigungen im Netz sind vorhanden).
Wenn ich nun statt C:\Users\nachname.vorname\... folgendes eintrage C:\Users\%USERNAME%\... funktioniert das nicht.

Hier mal der VBA-Code dazu:

Function Proc__Zahlen_mit_NLFW()

DoCmd.SetWarnings False
DoCmd.Echo False, ""
DoCmd.RunMacro "Zusatz_zu_1_Historie schreiben", , ""
DoCmd.CopyObject "C:\Users\nachname.vorname\Documents\Auswertung Kennzahlen_FE_MA.accdb", "FE_MA_Kennzahlen_DB", acTable, "FE_MA_Kennzahlen_DB"
DoCmd.CopyObject "\Team_DB\Kennzahlen_FE_MA.accde", "HW_Mangel_Historisch", acTable, "HW_Mangel_Historisch"
DoCmd.SetWarnings True
DoCmd.Echo True, ""
MsgBox "Datenbanken und Abfragen aktualisiert!", vbInformation, ""

End Function


Wie bekomme ich das hin, dass er in den Pfaden immer den aktuellen User annimmt? Oder sollte ich das Makro in VBA umwandeln und dann irgendwie "rückwärts" wieder einlesen? Wenn ja, wie geht das?

Danke euch vorab.

drambeldier
29.09.2017, 09:38
Moin,

bleib bei VBA, mit Makros kennt sich keiner aus.
Dim Username as string
...
Username = Environ("Username")
DoCmd.CopyObject "C:\Users\" & Username & "\Documents\Auswertung Kennzahlen_FE_MA.accdb", "FE_MA_Kennzahlen_DB", acTable, "FE_MA_Kennzahlen_DB"

wonic
29.09.2017, 10:28
Hi Ralf,

danke. Ich hab halt alles per Makro gemacht...wie kann ich die ausführen? Alle in VBA umwandeln, und aufrufen per "Ausführen Code.." ?

Ich habe ein Formular und da ist hinterlegt bei Click "AusführenMakro"

Sicherlich ne blöde Frage....

Danke.

VG
wonic

drambeldier
29.09.2017, 11:06
Sicherlich ne blöde Frage
natürlich nicht, helfen kann ich aber leider nicht- ich weiß mal gerade, dass sich Makros zu VBA umwandeln lassen.

beim Formularsteuerelement Rechtsklick > Eigenschaften > Ereignis > Code-Generator > dort den VBA-Code einfügen.

wonic
29.09.2017, 12:00
Hi Ralf,

genau so habe ich es gemacht, dass ich hier den Code veröffentlichen konnte...

Nur wie rufe ich den, eventuell veränderten, bei einem Klick-Ereignis auf?

Grüße

drambeldier
29.09.2017, 14:09
Hi,

im Editor zeigt das linke Dropdown die Steuerelemente und das rechte die zugehörigen Ereignisse. Beim gewünschten Ereignis legst Du zwischen Sub und End Sub den Code ab, allerdings ohne "Function".

wonic
04.10.2017, 14:52
Hallo drambeldier,

prima, vielen Dank!

Hat geklappt!

Angenehme Restwoche noch.

VG
wonic