C'est quoi cet erreur?

Signaler
Messages postés
29
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
22 mai 2006
-
Messages postés
29
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
22 mai 2006
-
Bonjour à tous, quelqu'un a déjà eu cet erreur?

ça m'énerve et je sais pas tout ça viens mais j'ai une petite idée

voila mon code :

Private Sub Commande112_Click()



    Dim stDocName As String
    Dim desT As String
   
    Dim nmax As Long
    Dim num As Long
    DoCmd.OpenForm "destinataires_saisie"
   
     
     DoCmd.GoToRecord , , acLast ' permet l'init de max
     DoCmd.GoToRecord , , acFirst
     num = 0
    nmax = [Forms]!destinataires_saisie.Form.RecordsetClone.RecordCount
    desT = [Forms]![destinataires_saisie]![NomCourrier].Value
 If (nmax > 1) Then
         DoCmd.GoToRecord
         num = num + 1
        While num < nmax
            desT = desT & " ; " & [Forms]![destinataires_saisie]![NomCourrier].Value
            num = num + 1
            If num < nmax Then DoCmd.GoToRecord
           
        Wend
End If
 
    DoCmd.Close
        stDocName = "fiche"
        DoCmd.SendObject acReport, stDocName, acFormatSNP, desT, , , "Saisie polydisks"



Exit_Commande112_Click:
    Exit Sub



Err_Commande112_Click:
    MsgBox Err.Description
    Resume Exit_Commande112_Click



   
End Sub


en fait ma variable desT est une liste de destinataires lorsque j'envoi un mail, et à mon avis c'est quand j'en ai trop que ce message apparait, peut être le type string n'est pas adapté?
merci de vos réponses
ps : je bosse sous aceess / vb6

2 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
68
Salut
Je connais pas trop la syntaxe sous VBA de Access, notamment le GotoRecord, connais pas.
Utilisé seul (sans les acFirst (ou acNext qui doit bien exister ?)...), es-tu sûr qu'il passe au record suivant ?
Ce genre d'erreur (dépassement mémoire) peut arriver quand une routine de ton programme s'auto-appelle sans fin.
Le type String est tout à fait adapté. En VB6, une String peut accueillir près de 2Go, ça devrait être bon !
Ta boucle semble complexe.
Simplification possible :

    nmax = [Forms]!destinataires_saisie.Form.RecordsetClone.RecordCount
    desT = [Forms]![destinataires_saisie]![NomCourrier].Value
    For num = 2 To nmax
         DoCmd.GoToRecord
         desT = desT & " ; " & [Forms]![destinataires_saisie]![NomCourrier].Value
    Next num

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
Messages postés
29
Date d'inscription
mercredi 5 avril 2006
Statut
Membre
Dernière intervention
22 mai 2006

toujours, la même erreur, moi je pense que ça viens plutôt de cette ligne

DoCmd.SendObject acReport, stDocName, acFormatSNP, desT, , , "Saisie polydisks"

et que desT contient trop de destinataires, est-on limiter?