Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Estadl am Februar 18, 2025, 09:33:35

Titel: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Estadl am Februar 18, 2025, 09:33:35
Hallo, möchte die Datei in den Ordner Dokumente des aktuellen Users speichern. Zur Zeit schaffe ich es nur, wenn ich einen genauen Weg eingebe. Siehe Beispiel

Private Sub Befehl181_Click()
DoCmd.OutputTo acOutputQuery, "Storno", acFormatXLSX, "C:\Users\estadl\Documents\Storno.xlsx", True, ""
End Sub

Danke für eure Hilfe und Grüße aus Oberösterreich
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: PhilS am Februar 18, 2025, 09:44:17
Environ("USERPROFILE")
liefert dir den benutzerspezifischen Teil des Pfades.
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Estadl am Februar 18, 2025, 09:51:17
Danke PhilS,

kannst du mir sagen wie die Zeile dann lauten muss, bin noch blutiger Anfänger.
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: PhilS am Februar 18, 2025, 10:00:26
Es ist übersichtlicher, wenn du den Funktionsaufruf nicht direkt in die Zeile einbaust, sondern eine zusätzliche Variable verwendest, um erst den Ausgabe-Dateinamen zusammenzubauen und dann für den Export zu verwenden.
Das könnte dann so aussehen:
Private Sub Befehl181_Click()
    Dim AusgabeDateiname as String
    AusgabeDateiname = Environ("USERPROFILE") & "\Documents\Storno.xlsx"
    DoCmd.OutputTo acOutputQuery, "Storno", acFormatXLSX, AusgabeDateiname, True, ""
End Sub


Ein Tipp am Rande: Vergib aussagefähige Namen für deine Steuerelemente. Bei "Befehl181" weiß in ein paar Wochen kein Mensch mehr (dich eingeschlossen) was das sein soll.
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Estadl am Februar 18, 2025, 10:01:37
Herzliches Danke für deinen Tipp, es funktioniert.
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: werner budde am Februar 20, 2025, 09:52:12
ZitatEin Tipp am Rande: Vergib aussagefähige Namen für deine Steuerelemente. Bei "Befehl181" weiß in ein paar Wochen kein Mensch mehr (dich eingeschlossen) was das sein soll.

Kann ich nur bestätigen; ABER ACHTUNG:
Wenn man bereits eine Ereignisprozedur zu einem Steuerelement angelegt hat und dann später das Steuerelement umbenennt, ist die Ereignisprozedur verwaister Müll, der auch nach Komprimieren und Reparieren immer noch vorhanden ist.
Lösung:
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Knobbi38 am Februar 20, 2025, 12:42:34
... oder man verschiebt den vorhandenen Code einfach in die neue Ereignisprozedur und löscht den verbleibenden Stub.

Gruß
Knobbi38
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Bitsqueezer am Februar 20, 2025, 13:39:43
...oder man wendet "Compile" nach dem Verschieben an, weil leere Event-Prozeduren-"Stummel" vom Compiler automatisch entfernt werden... ;)

Gruß

Christian
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: werner budde am Februar 20, 2025, 19:41:26
Zitat...oder man wendet "Compile" nach dem Verschieben an, weil leere Event-Prozeduren-"Stummel" vom Compiler automatisch entfernt werden...
@ Christian,
das konnte ich leider so nicht nachvollziehen;
Getestet:
Weder Debuggen im VBA-Editor noch Komprimieren und Reparieren noch Decompile auf cmd-Ebene haben den Stummel entfernt
Habe ich da was falsch verstanden?
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Knobbi38 am Februar 21, 2025, 11:27:53
@Werner:

Christian hat schon Recht: ein leerer Funktions- oder Prozedurrumpf wird beim Kompilieren aus dem Code entfernt. Das war schon immer so.

Gruß
Ulrich
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: werner budde am Februar 21, 2025, 16:36:52
Private Sub BS_Alt_Click()

End Sub

Private Sub BS_Neu_Click()
MsgBox "x"
End Sub

Bei o.a. Code bleibt der Prozedurenrumpf  zu BS_Alt_Click bei mir so stehen, wenn ich die in #8 genannten Schritte allesamt ausführe.
Nochmal die Frage: wo ist meinerseits das Missverständnis?
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: PhilS am Februar 21, 2025, 19:25:50
Zitat von: werner budde am Februar 21, 2025, 16:36:52Nochmal die Frage: wo ist meinerseits das Missverständnis?
Du benennst den Button um, der ursprünglich mit der Ereignisprozedur verknüpft war.
Damit handelt es sich nicht mehr um eine leere Ereignisprozedur, sondern um eine allgemeine, leere Prozedur, die "zufällig" einen Namen hat der einer Ereignisprozedur ähnlich ist.
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: werner budde am Februar 21, 2025, 19:36:12
@ Phil,
Ja, ich bin da ja 100%-ig bei Dir. Aber ich kann Christians Aussage in #7 nicht nachvollziehen??!
Das ist jetzt alles leider O.T.
Titel: Re: Abfrage in den Ordner Dokumente des aktuellen Benutzers speichern
Beitrag von: Knobbi38 am Februar 22, 2025, 12:56:23
@Werner: Es gibt anscheinend Konstellation, wo der Stub wieder erwarten stehen bleibt.