Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: Icemann1970 am Juni 16, 2018, 00:04:07

Titel: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 16, 2018, 00:04:07
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?
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Beaker s.a. am Juni 16, 2018, 01:13:57
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
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 16, 2018, 08:59:35
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.
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Beaker s.a. am Juni 16, 2018, 17:40:24
DoCmd.OutputTo acOutputReport, "Verantwortlich", acFormatPDF, strPfad
oder nicht?
Achtung! Kommas nachzählen!
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 16, 2018, 20:38:39
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.
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Lachtaube am Juni 17, 2018, 09:05:25
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.
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 17, 2018, 11:25:43
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.
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: DF6GL am Juni 17, 2018, 11:28:26
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.
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 17, 2018, 12:17:04
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
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: DF6GL am Juni 17, 2018, 12:20:40
Hallo,

ja, ok,  und wo ist der Dateiname mit Extension??
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: trebuh am Juni 17, 2018, 12:22:49
Hallo Udo,

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

Grüßle Hubert
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 17, 2018, 12:44:43
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?
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Lachtaube am Juni 17, 2018, 12:57:34
Ja, da liegst Du falsch. Den Dateinamen musst Du also noch an den Verzeichnispfad mit & "\BlaBla.pdf" anhängen.
Titel: Re: Bericht auf Laufwerk xy speichern
Beitrag von: Icemann1970 am Juni 17, 2018, 13:17:56
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