Neuigkeiten:

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

Mobiles Hauptmenü

Bericht auf Laufwerk xy speichern

Begonnen von Icemann1970, Juni 16, 2018, 00:04:07

⏪ vorheriges - nächstes ⏩

Icemann1970

Hallo zusammen,
ich habe ja einen Befehl, der auf einem Laufwerk xy [Me.speicherort] einen Ordner zu meiner ID sucht bzw anlegt. Das läuft prima, nun möchte ich einen Bericht (Beispiel zu ID 100 [Geräte_Nummer]) automatisch in den Ordner auf Laufwerk xy Pfad 100 speichern.
     Dim strPfad As String
     Dim strVerzeichnis As Integer

strPfad = Me.speicherort & Me.Geräte_Nummer

  If Dir(strPfad, vbDirectory + vbHidden) <> "" Then
      MsgBox "Der Ordner Unterlagen mit der Gerätenummer ist schon vorhanden und wird geöffnet."
  Else
     
  strVerzeichnis = MsgBox("Der Ordner mit der Gerätenummer ist nicht vorhanden. Soll ein neuer Ordner angelegt werden?" & "Ja oder Nein auswählen", vbYesNo)
     
     
      If strVerzeichnis = vbYes Then
      MkDir strPfad
      MsgBox "Ordner für Unterlagen mit der Gerätenummer wurde angelegt!"
      Else
      MsgBox "Der Bericht wurde nicht gespeichert"
      Exit Sub
  End If
End If

Dim strPfad1  As String
Dim strVerzeichnis1 As String

strPfad1 = Me.speierort
strVerzeichnis1 = strPfad1 & Me.Geräte_Nummer
If Dir(strVerzeichnis1, vbDirectory + vbHidden) <> "" Then
FollowHyperlink strVerzeichnis1

******

Else
    FollowHyperlink strPfad1
End If
Exit Sub

Nun ist der richtige Ordner geöffnet.
In diesem möchte ich mit dem Code an der Stelle ****** einfügen
DoCmd.OpenReport "Verantwortlich", acViewReport, , "[Geräte Nummer] = '" & Me![Geräte Nummer] & "'"    '(,acHidden)<-- wird wenn es funktioniert unsichtbar
DoCmd.OutputTo acOutputReport, "Verantwortlich", acFormatPDF   '<--- hier müsste jetzt strPfad eingefügt werden .....??
DoCmd.Close acReport, "Verantwortlich", acSaveNo
das speichern realisieren.
Ich müsste in der zweiten Zeile noch den Verweis zu dem geöffnetem Ordner hinterlegen, denn es erscheint das Fenster in dem ich gefragt werde wo ich den Bericht speichern möchte. wenn die Funktion okay ist kann man den speicherort auch kompl in Hidden laufen lassen ??
Könnt ihr mir weiterhelfen?
Mfg. Udo

Beaker s.a.

Hallo Udo,
Zitat<--- hier müsste jetzt strPfad eingefügt werden .....??
Verstehe ich nicht, den Pfad hast du doch oben ermittelt.
Ausserdem brauchst du den Pfad dich nicht zu öffnen. OutputTo
speichert doch so oder so in den angegebenen Pfad.
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)

Icemann1970

Hallo Ekkehard,
das ist ja mein Problem.
" ICH " weiß nicht wie ich bei DoCmd.OpenReport "Verantwortlich", acViewReport, , "[Geräte Nummer] = '" & Me![Geräte Nummer] & "'" ,acHidden
DoCmd.OutputTo acOutputReport, "Verantwortlich", acFormatPDF   ',[Speicherort]
DoCmd.Close acReport, "Verantwortlich", acSaveNo
den Pfad inklusive dem "vorhandenen oder bei nicht vorhandenem" Ordner, der dann erst automatisch erstellt werden muss realisieren kann.
Ich hatte mir gedacht dass ich die eben beschriebene Prozedur laufen lasse um den "richtigen" Speicher Pfad inkl dem dazugehörigen Ordner öffnen bzw erstellen lasse und dann die OutputTo einfüge.
Mfg. Udo

Beaker s.a.

DoCmd.OutputTo acOutputReport, "Verantwortlich", acFormatPDF, strPfad
oder nicht?
Achtung! Kommas nachzählen!
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)

Icemann1970

Hallo Beaker,
so sollte es sein, das habe ich auch so gelesen aber aber wird nicht gespeichert. Ich habe über MsgBox strPfad geprüft, der richtiger Pfad wird angezeigt. Dann habe ich mit meiner Handykamera die aufblitzende Meldung gefilmt und im Standbild gelesen :
Fenster: Drucken
Ausgabe von 'Verantwortlich' in die Datei 'XY:\meinPfad\gerätenummer\100' ........ kommt aber nichts an.
Wenn ich den Verweis weglasse DoCmd.OutputTo acOutputReport, "Verantwortlich", acFormatPDF
dann werde ich wie gesagt aufgefordert den Speicherort zu wählen und dann speichert das.
Mfg. Udo

Lachtaube

Udo, versuche es einmal mit der Seitenansicht des Berichts.   Const RPTNAME As String = "Verantwortlich"

   With DoCmd
      .OpenReport RPTNAME, acViewPreview, , "[Geräte Nummer]='" & Me![Geräte Nummer] & "'" ', acHidden
      .OutputTo acOutputReport, RPTNAME, acFormatPDF, Me.Speicherort
      .Close acReport, RPTNAME, acSaveNo
   End With

Das acHidden kannst Du zu Testzwecken auch eliminieren und erst wieder setzen, wenn Alles in Butter ist.
Grüße von der (⌒▽⌒)

Icemann1970

Hallo Lachtaube,
Ich habe deinen Code getestet aber das gleiche Problem.Private Sub Befehl392_Click()           '<<------ ZUM TESTN SPEICHEN DES BERICHTES
Dim strPfad As String

Const RPTNAME As String = "Verantwortlich"
strPfad = Me.Text393                    '<<-- Hinterlegter Speicherort
With DoCmd
.OpenReport RPTNAME, acViewPreview, , "[Geräte Nummer]='" & Me![Geräte Nummer] & "'" ', acHidden      '<<--- Bericht öffnet sich
MsgBox strPfad                          '<<--- Zeigt mir den richtigenSpeicherplatz an
.OutputTo acOutputReport, RPTNAME, acFormatPDF, strPfad           '<<---kommt Laufzeitfehler 2501
'.Close acReport, RPTNAME, acSaveNo     '<<---wird später wieder aktiviert
End With

End Sub

Der Fehler liegt am Speicherplatz. Wenn ich den weglasse kommt die Aufforderung den Speicherplatz auszuwählen und dann Funktioniert es.
Der im strPfad hinterlegte Speicherplatz ( sehe ich auch in der MsgBox) ist der richtige.
Mfg. Udo

DF6GL

Hallo,
Vorschlag:

Mit
debug.print strPfad

den Dateipfad in das Direktfenster schreiben, überprüfen und mit copy&paste hier zeigen...

Entweder stimmt der Pfad als solches nicht, oder strPfad enthält nicht den kompletten Pfad einschließlich des gewünschten Dateinamens plus Dateierweiterung.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

Icemann1970

Hallo Franz,
bei debug.print strPfad kommt        K:\Fahrzeuge\Gerätenummer\101
das ist auch der richtige Pfad.
Wenn ich den Speicherplatz im Explorer auswähle ist   K:\Fahrzeuge\Gerätenummer\101    auch in der Explorerleiste geschrieben
Mfg. Udo

DF6GL

Hallo,

ja, ok,  und wo ist der Dateiname mit Extension??
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

trebuh

Hallo Udo,

Versuch es mal mit dem weglassen der Umlaute ä,ö,ü (Gerätenummer) und schreibe stattdessen Geraetenummer

Grüßle Hubert

Icemann1970

Hallo trebuh,
ja, das ist mir bekannt aber das ganze Programm arbeitet mit der falschen Namensgebung. Ich kann ja auch über ein anderen Befehl die gewünschten Ordner anzeigen oder wenn nicht vorhanden einen Ordner mit der "Gerätenummer" ((ä)) erstellen lassen. Die anderen freunde hier im Chat haben mir schon deswegen kräftig an den Ohren gezogen :-)

@ Franz.
im strPfad ist doch nur der Speicherort, der Dateiname mit Extension wird doch in .OutputTo acOutputReport, RPTNAME, acFormatPDF, strPfad
erzeugt .....,acFormatPDF. oder liege ich da falsch?
Mfg. Udo

Lachtaube

Ja, da liegst Du falsch. Den Dateinamen musst Du also noch an den Verzeichnispfad mit & "\BlaBla.pdf" anhängen.
Grüße von der (⌒▽⌒)

Icemann1970

Ja dass gibt´s doch nicht ...........
Die Lachtaube..... Genieal, Funktioniert.
Ihr seid einfach der Hammer !!!!!
Vielen Dank. Jetzt versuche ich das auszubauen, wenn der Ordner noch nicht da ist einen neuen zu erstellen. Mal sehen ob ich dass wenigsten hinbekomme  ;D :o
Mfg. Udo