C'est quoi cet erreur?

patchap40 Messages postés 29 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 22 mai 2006 - 19 mai 2006 à 15:33
patchap40 Messages postés 29 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 22 mai 2006 - 22 mai 2006 à 09:04
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 mai 2006 à 01:41
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
0
patchap40 Messages postés 29 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 22 mai 2006
22 mai 2006 à 09:04
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?
0
Rejoignez-nous