Office: (Office 2019) Access For next Schleife

Helfe beim Thema Access For next Schleife in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich habe in einer Tabelle meine Spieler mit einer Spielernummer enthalten. Jeder Spieler hat als Bericht ein "Stammblatt", welches mit der... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Herbert2241, 18. Mai 2021.

  1. Access For next Schleife


    Ich habe in einer Tabelle meine Spieler mit einer Spielernummer enthalten. Jeder Spieler hat als Bericht ein "Stammblatt", welches mit der Spielernummer aufgerufen wird.
    Ich möchte jetzt gerne alle Stammblätter automatisch mittels "For next" schleife in ein PDF format exportieren.
    Ein einzelnes Stammblatt exportieren funktioniert über nachstehende Anweisung, über welche ich auch den Pfad vorgebe direkt aus dem Bericht.
    Wie muss die Anweisung aussehen, damit alle Stammbätter auf einmal automatisch
    exportiert werden können (etwa 60 Stammblätter)????

    Dim Exportpfad1 As String
    Exportpfad1 = DLookup("[Pfad1]", "T_Exportpfade_allgStD", "[ID] =" & 3)
    Dim Exportpfad2 As String
    Exportpfad2 = DLookup("[Pfad2]", "T_Exportpfade_allgStD", "[ID] =" & 3)
    Dim Exportpfad3 As String
    Exportpfad3 = DLookup("[Pfad3]", "T_Exportpfade_allgStD", "[ID] =" & 3)
    Dim strPfad1 As String
    strPfad1 = ([Forms]![Spielerstammdaten].SPN)
    Dim Berichtsname As String
    Berichtsname = DLookup("[Bemerkung]", "T_Exportpfade_allgStD", "[ID] =" & 3)

    'Sollte dieser Pfad nicht vorhanden sein, wird er automatisch angelegt, andernfalls wird zu diesem Pfad gewechselt'

    If Dir(Exportpfad1, vbDirectory) <> "" Then
    Shell "explorer.exe """ & Exportpfad1 & """", vbNormalFocus
    Else
    MkDir Exportpfad1
    Shell "explorer.exe """ & Exportpfad1 & """", vbNormalFocus
    End If
    ChDir Exportpfad1
    If Dir(Exportpfad2, vbDirectory) <> "" Then
    Shell "explorer.exe """ & Exportpfad2 & """", vbNormalFocus
    Else
    MkDir Exportpfad2
    Shell "explorer.exe """ & Exportpfad2 & """", vbNormalFocus
    End If
    ChDir Exportpfad2

    If Dir(Exportpfad3, vbDirectory) <> "" Then
    Shell "explorer.exe """ & Exportpfad3 & """", vbNormalFocus
    Else
    MkDir Exportpfad3
    Shell "explorer.exe """ & Exportpfad3 & """", vbNormalFocus
    End If
    ChDir Exportpfad3

    If Dir(strPfad1, vbDirectory) <> "" Then
    Shell "explorer.exe """ & strPfad1 & """", vbNormalFocus
    Else
    MkDir strPfad1
    Shell "explorer.exe """ & strPfad1 & """", vbNormalFocus
    End If
    ChDir strPfad1

    'Dann wird der Bericht in den angegebenen Pfad im Format PDF und der angeführten Bezeichnung exportiert

    DoCmd.OutputTo acOutputReport, "Ber_Spielerstammblatt", acFormatPDF, Berichtsname
    DoCmd.Close acReport, "Ber_Spielerstammblatt"
    DoCmd.OpenForm "Stammdatenauswahl", acNormal
    End Sub
    Unter "Pfad1" wird der Spielername als eigener Order erstellt und das Stammblatt in diesen
    Ordner exportiert.
    Für Hilfe wäre ich sehr dankbar
     
    Herbert2241, 18. Mai 2021
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    ich bin mir nicht sicher, ob in deinem Posting alle wesentlichen Informationen enthalten sind.

    Ich habe daher angenommen, dass die Spielerinfomationen, die für die PDF-Ausgabe des Berichtes "Ber_Spielerstammblatt" benötigt werden, in der Tabelle "T_Exportpfad_allgStD" enthalten sind.
    Diese Tabelle wird nämlich von meinem (modifizierten) Makro geöffnet und Satz für Satz durchlaufen.
    In jedem Satz dieser Tabelle wird mit Hilfe der 4 Felder "Pfad1", "Pfad2", "Pfad3" und "Bemerkung" der vorgenannte Bericht ein ein PDF-Format konvertiert und gespeichert.

    Insbesondere habe ich große Bedenken bei der Variablen "strPfad1", deren Inhalt aus einem Formular namens "Spielerstammdaten.SPN" entnommen werden. Dieses Formular unterliegt natürlich nicht der Schleifen-Satz-Steuerung und somit fix für alle Datensätze innerhalb der Schleife.

    Was die 4 MkDir/Shell/ChDir-Aufrufe im Einzelnen bewirken sollen, weiß ich nicht. Oder ob sie besser außerhalb der DO-LOOP-Schleife zu platzieren wären? Ich habe sie vereinfacht, sodass noch immer das Gleiche durch sie ausgeführt wird, aber einfacher.
    Der SUB habe ich den Namen "Ausgabe" gegeben - denn ein solcher SUB-Anfang lag ebenfalls nicht vor.

    Code:
    Sub Ausgabe()
       Dim dbs As DAO.Database, Rst As DAO.Recordset
       Dim tabName As String
       Dim ExportPfad1 As String, ExportPfad2 As String, ExportPfad3 As String
       Dim Berichtsname As String, strPfad1 As String
      
      
       tabName = "T_Exportpfade_allgStD"
      
       'In dbs soll ein Zeiger auf die aktuelle DAO-Datenbank gespeichert werden:
       Set dbs = CurrentDb
      
       'Aus dbs soll eine Tabelle (namens tabName) als Recordset geöffnet werden
       Set Rst = dbs.OpenRecordset(tabName, dbOpenTable)
      
       'Bewege Rst zum ersten Datensatz der Tabelle
       Rst.MoveFirst
      
       'Führe folgende Do-Loop-Schleife solange aus, bis Rst hinter das Ende der Datensätze der Tabelle zeigt
       '(Dann ist Rst.EOF = True und die Schleife wird verlassen):
       Do Until Rst.EOF
          ExportPfad1 = Rst!Pfad1
          ExportPfad2 = Rst!Pfad2
          ExportPfad3 = Rst!Pfad3
          Berichtsname = Rst!Bemerkung
        
         'Heißt das, dass die Spieler-Nummer gar nicht in Tabelle "T_Exportpfad_allgStD" enthalten ist ?
         'Was ist das für ein ID-Feld in "[ID]=3" aus "T_Exportpfad_allgStD" ??
          strPfad1 = Forms!Spielerstammdaten.SPN    '????
        
        
    '      Dim ExportPfad1 As String
    '      ExportPfad1 = DLookup("[Pfad1]", "T_Exportpfade_allgStD", "[ID] =" & 3)
    '      Dim ExportPfad2 As String
    '      ExportPfad2 = DLookup("[Pfad2]", "T_Exportpfade_allgStD", "[ID] =" & 3)
    '      Dim ExportPfad3 As String
    '      ExportPfad3 = DLookup("[Pfad3]", "T_Exportpfade_allgStD", "[ID] =" & 3)
    '      Dim strPfad1 As String
    '      strPfad1 = ([Forms]![Spielerstammdaten].SPN)
    '      Dim Berichtsname As String
    '      Berichtsname = DLookup("[Bemerkung]", "T_Exportpfade_allgStD", "[ID] =" & 3)
        
          'Sollte dieser Pfad nicht vorhanden sein, wird er automatisch angelegt, andernfalls wird zu diesem Pfad gewechselt'
        
         '1) Wie weit die wiederholte Ausführung der folgenden MkDir-Anweisungen in der Spieler-Schleife nötig ist, weiß ich nicht
         '2) Was die folgenden Explorer-Aufrufe und die anschließenden ChDir-Anweisungen bewirken sollen, weiß ich nicht!!!
         '3) Wo werden diese 4 Pfad-Variablen (ExportPfad1,ExportPfad2,ExportPfad3,strPfad1) überhaupt verwendet ?
        
          If Len(Dir(ExportPfad1, vbDirectory)) = 0 Then MkDir ExportPfad1
          Shell "explorer.exe """ & ExportPfad1 & """", vbNormalFocus
          ChDir ExportPfad1
        
          If Len(Dir(ExportPfad2, vbDirectory)) = 0 Then MkDir ExportPfad2
          Shell "explorer.exe """ & ExportPfad2 & """", vbNormalFocus
          ChDir ExportPfad2
        
          If Len(Dir(ExportPfad3, vbDirectory)) = 0 Then MkDir ExportPfad3
          Shell "explorer.exe """ & ExportPfad3 & """", vbNormalFocus
          ChDir ExportPfad3
        
          If Len(Dir(strPfad1, vbDirectory)) = 0 Then MkDir strPfad1
          Shell "explorer.exe """ & strPfad1 & """", vbNormalFocus
          ChDir strPfad1
        
          'Dann wird der Bericht in den angegebenen Pfad im Format PDF und der angeführten Bezeichnung exportiert
        
          DoCmd.OutputTo acOutputReport, "Ber_Spielerstammblatt", acFormatPDF, Berichtsname
          DoCmd.Close acReport, "Ber_Spielerstammblatt"  '<-- Was bewirkt das Schließen des nicht geöffneten Berichtes?
        
          'Bewege Rst zum nächsten Datensatz
          Rst.MoveNext
       Loop
      
      'Schließen des Recordset der (Abfrage-)Tabelle
       Rst.Close
      
       DoCmd.OpenForm "Stammdatenauswahl", acNormal
      
    End Sub
    
     
    Exl121150, 24. Mai 2021
    #2
Thema:

Access For next Schleife

Die Seite wird geladen...
  1. Access For next Schleife - Similar Threads - Access For next

  2. Access Abfrage

    in Microsoft Access Hilfe
    Access Abfrage: Access Abfrage Note:Wenn([Prf-Stufe]FPr1 oder FPr2 oder FPr3 oder BGH1 oder BGH2 oder BGH3 oder IBGH1 oder IBGH2 oder IGBH3 oder FH1 oder FH2 oder IHF-V oder SPR1 oder SPR2 oder SPR3 oder UPR1oder...
  3. Import von XML-Dateien in Access

    in Microsoft Access Hilfe
    Import von XML-Dateien in Access: Hallo zusammen, ich möchte eine Menge von XML-Dateien in Access 2016 importieren und verwende dazu die Importfunktion für XML-Dateien unter Externe Daten im Menü. Die Dateien enthalten einige 100...
  4. Acces FrontEnd und MS SQL-Server als BackEnd

    in Microsoft Access Hilfe
    Acces FrontEnd und MS SQL-Server als BackEnd: Hallo zusammen, möchte MS access 2010 als FrontEnd und MS SQL-Server als Backend verwenden. Die Backend Tabellen sind bereits auf dem Server. Mit welchem VBA-Code sollte ich nun die MS...
  5. Öffnen einer bestimmten Seite einer pdf-Datei

    in Microsoft Access Hilfe
    Öffnen einer bestimmten Seite einer pdf-Datei: Hallo zusammen, ich möchte in einer Access365-Anwendung über die Taste F1 eine pdf-Datei (Benutzerhandbuch) öffnen und dort zu einer bestimmten Seite springen. Im Acrobat-Reader geht das auch...
  6. Listenfeld wird nicht immer gefüllt

    in Microsoft Access Hilfe
    Listenfeld wird nicht immer gefüllt: Hallo alle Kenner, in einer Datenbank sind die Werke verschiedener Komponisten mit ihren Werken erfasst. Über ein Kombinationsfeld werden z.B. die Kategorien ausgewählt und die entsprechen Werke...
  7. Access 2013 Bericht als pdf und mail

    in Microsoft Access Hilfe
    Access 2013 Bericht als pdf und mail: Hallo mein Problem ist das ich im Formular die Daten erheben kann und wenn ich auf den Button Abschließen gehe sollte er eine PDF erstellen in einem bestimmten Ordner mit bestimmten Namen...
  8. Access bestimmte Datenfelder/-sätze aus Tabelle A in Tabelle B kopieren (über alle Datenfelder)

    in Microsoft Access Hilfe
    Access bestimmte Datenfelder/-sätze aus Tabelle A in Tabelle B kopieren (über alle Datenfelder): Hallo zusammen, ich bin Neuling und habe (noch) keine so richtige Ahnung, daher bitte ich um eure Hilfe. Problemstellung: Ich habe in Tabelle A die Datenfelder [Feld1], [Feld2], [Feld3], [Feld4]...
Schlagworte:
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden