Accès au code VBA pour imprimer des fichiers Pdf pour chaque enregistrement s'arrête à 10 enregistrements

Ma question concerne le code que j'ai l'impression de sortir d'un rapport de l'Accès à des fichiers PDF. J'ai besoin de fichiers Pdf individuels pour chaque groupe, afin que je puisse envoyer chaque groupe de leurs ventes, et que leur chiffre d'affaires. Le rapport s'imprime chaque article vendu, et les détails de la vente. Mon code fonctionne, cependant, après la 10e groupement, il s'arrête et me donne le code d'erreur 3048: impossible d'ouvrir plus de bases de données. J'ai lu sur un autre thread que l'accès a une limite de 2048 références, cependant mon dataset n'est pas vraiment énorme. Mon code est comme suit (j'ai marqué mon nom du rapport RAPPORT et l'identificateur de groupe de GROUPE, ma REQUÊTE tire de 2 tables):

Private Sub Report_Click()

    Dim db As DAO.Database
    Dim rs As DAO.Recordset
    Dim MyFileName As String
    Dim mypath As String
    Dim temp As String


    mypath = "PATH\Access PDF Testing\"

    Set db = CurrentDb()

    Set rs = db.OpenRecordset("SELECT [GROUP] FROM [QUERY]", dbOpenSnapshot)

    Do While Not rs.EOF

        temp = rs("GROUP")
        MyFileName = rs("GROUP") & ".PDF"

        DoCmd.OpenReport "REPORT", acViewReport, , "[GROUP]='" & temp & "'"
        DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & MyFileName
        DoCmd.Close acReport, "REPORT"
        DoEvents

        rs.MoveNext
    Loop


    rs.Close
    Set rs = Nothing
    Set db = Nothing

End Sub

Cela va fonctionner, mais après l'impression, les 10 groupes au format PDF, il échoue. J'ai essayé de courir seuls les groupes sans caractères spéciaux en leurs noms, je me suis tourné forcé les sauts de page, mais rien ne pourra aller au-delà de la 10e enregistrement de groupe. Chaque groupe a à peu près 10 à 20 lignes à l'intérieur. Est-il aperçu quelqu'un peut fournir à ce que je peux faire différemment?

  • avez vous franchi le code et regarda les valeurs envoyées à la OutPutTo? Je sais aussi que parfois, vous devez appuyer sur un MoveLast, et MoveFirst à un ensemble d'enregistrements pour s'assurer qu'il est au sommet de données avant de commencer votre itérations de boucle. Espérons que ça aide!
  • Salut Alan, merci pour votre réponse. On dirait que tout devrait être de travailler pour le OutPutTo déclaration: DoCmd.OutputTo acOutputReport, "", acFormatPDF, mypath & Monfichier -- C'est la partie que le débogueur met en évidence, et il semble bien, lorsque j'entre dans le code et vérifier les valeurs. J'ai ajouté dans le rs.MoveFirst juste au-dessus de le Faire Alors que Pas de boucle, et il a effectivement aidé en cela qu'il m'a donné plus de 3 fichiers pdf, mais m'a alors donné une erreur 3014 ne peut pas ouvrir plus de tables.
  • La commande est elle qui s'affiche l'erreur? Je suppose que le OpenReport? Une chose à essayer, si vous n'êtes pas déjà, le point de la source de données du rapport à une requête qui tire tout vers le bas tous les champs de la table, mais aussi de modifier les propriétés de la requête pour être "instantané" jeu d'enregistrements de type
  • Pour les tables d'erreur, DoCmd.OpenReport "POV de Vente par le Concessionnaire", acViewReport, , "[DBA]='" & temp & "'" c'est ce qui apparaît à l'erreur. J'ai Set rs = db.OpenRecordset("SELECT distinct [GROUPE] à PARTIR de [REQUÊTE]", dbOpenSnapshot) (je viens de réaliser que maintenant que j'ai déformé dans mon code ci-dessus que le rapport et pas une requête, je vais changer ça), est-il une autre partie ici je devrais changer?