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?
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
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", acSaveNoden 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.
DoCmd.OutputTo acOutputReport, "Verantwortlich", acFormatPDF, strPfad
oder nicht?
Achtung! Kommas nachzählen!
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.
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.
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.
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.
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
Hallo,
ja, ok, und wo ist der Dateiname mit Extension??
Hallo Udo,
Versuch es mal mit dem weglassen der Umlaute ä,ö,ü (Gerätenummer) und schreibe stattdessen Geraetenummer
Grüßle Hubert
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?
Ja, da liegst Du falsch. Den Dateinamen musst Du also noch an den Verzeichnispfad mit & "\BlaBla.pdf" anhängen.
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