1 membre
Connectés : ( personne )
- La Charte du Forum - Forum - Questions générale
Réponse n° 2 -------- le 26/11/2013 : 19:52 par Julien
visiteur |
Bonjour, je me permets de répondre à ma première demande, je n'ai toujours pas réussi à "boucler" et "reboucler". si quelqu'un aurait un morceau de code pour m'aider à avancer sur le sujet, ça serait avec grand plaisir. merci d'avance, Julien |
|
|
Réponse n° 4 -------- le 27/11/2013 : 08:51 par Julien
visiteur |
Bonjour, Je vais essayer d'envoyer ma base, mais en l'état le fichier
est bien trop lourd, en attendant voici le code, j'ai une première
erreur : "Trop peu de paramètres".
Code :Sub PrintAsPDF( _ ByVal strFilename As String, _ ByVal strReportName As String, _ Optional ByVal strWhere As String = "", _ Optional ByVal blnOpenReader As Boolean = False) DoCmd.OpenReport strReportName, acViewPreview, , _ strWhere, acHidden DoCmd.OutputTo acOutputReport, strReportName, acFormatPDF, _ strFilename, blnOpenReader DoCmd.Close acReport, strReportName End Sub Private Sub Afficher_Factures_Click() Dim strFichier As String Dim strEtat As String Dim strFiltre As String Dim rst As dao.Recordset strEtat = "Facture-mult" strFichier = "c:\Docs\test\Fact" & DLookup("[numfact]", "fact_synthese-mult", strFilter) & ".pdf" Set rst = CurrentDb.OpenRecordset("fact_synthese-mult", dbOpenSnapshot) While Not rst.EOF 'strFiltre = "[réffacture] = " & rst("réffacture") strFiltre = "[réffacture] <> rst(1) & rst(2)" PrintAsPDF strFichierPDF, strEtat, strFiltre rst.MoveNext Wend rst.Close Set rst = Nothing MsgBox "Opération terminée !", vbInformation End Sub
merci ! Julien |
|
|
Réponse n° 5 -------- le 27/11/2013 : 14:38 par 3Stone
Administrateur
|
Bonjour,
Première chose à faire absolument : rendre la déclaration des variables obligatoire! Pour cela, dans l'éditeur du VBA (VBE - Visual Basic Editor) aller cocher via le menu Outils, Options, Déclaration des variables obligatoire.
Cela évite des erreurs inutiles comme l'utilisation de "strFiltre" d'un coté et de "strFilter" par ailleurs...
Si les différents enregistrements qui représentent les factures sont source du formulaire, ton code qui boucle peut se réduire à quelque chose comme ceci :
Code :Public Function BouclerFacture() Dim Rst As dao.Recordset Dim NbreEnreg As Integer Dim i As Integer Dim strFiltre As String Set Rst = Me.RecordsetClone NbreEnreg = Me.RecordCount For i = 1 To NbreEnreg strFiltre = "[IdFacture] = " & Rst.IdFacture PrintAsPDF strFichierPDF, strNomEtat, strFiltre Next i Rst.Close Set Rst = Nothing End Function
a adapter au nom de tes champs, bien sûr.
Cordialement, Pierre(3stone) |
|
|
Réponse n° 6 -------- le 04/12/2013 : 14:47 par Julien
visiteur |
Bonjour, Merci pour cette précision, cependant je n'arrive pas à appeler ma fonction sur le bouton... Private Sub ..._Click()
Erreur de compilation : membre de méthode ou de données introuvable.
J'ai bien dans la source du formulaire mes enregistrements Factures
merci d'avance pour votre aide. Julien |
|
|
Réponse n° 7 -------- le 05/12/2013 : 00:52 par 3Stone
Administrateur
|
Bonjour,
La fonction donnée plus haut (que tu auras adaptée, bien sûr) se place "sous" le formulaire et non dans la section module.
Il ne faut pas faire un simple copié/collé... mais adapter à tes champs et contrôles et SURTOUT compiler ton code pour pister les erreurs éventuelles.
Cordialement, Pierre(3stone) |
|
|
Réponse n° 8 -------- le 05/12/2013 : 01:04 par Julien
visiteur |
Bonjour, Je l'ai bien placé dans mon formulaire et mis à jour les champs... l'erreur à l'air de venir de Me.RecordCount
Julien |
|
|
sujet actif
sujet clos
Important!
Nouveau message -
Rectifier message
Clôturer sujet
Remonter
|