[VBA]erreur : Dépassement de capcacité (excel -> access)

cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 - 18 juil. 2005 à 16:40
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 - 19 juil. 2005 à 00:24
Bonjour,



Lors de l'importation d'un tableau excel de 116 lignes par 23 colonnes vers Access j'obtiens un message d'erreur :


Dépassement de capacité

Mon code est le suivant :




For j = 2 To m

For i = 5 To n

nomt = "'" & xl.Cells(i, 1).Value & "'"

MySQL = "SELECT type,Taxon FROM ListePollens WHERE (Taxon= " & nomt
& ")"

Set rst = CurrentDb.OpenRecordset(MySQL, dbOpenDynaset, dbReadOnly)
If rst.EOF False And rst.BOF False Then

typ = rst![type]

.....




Est ce que quelqu'un a déjà eu ce genre de problème ?


Merci,

Seb.

3 réponses

actu5394 Messages postés 41 Date d'inscription jeudi 25 avril 2002 Statut Membre Dernière intervention 16 octobre 2005
18 juil. 2005 à 17:54
Bonjour,
Je dirai tout simplement que tu as une cellule Excel qui contient beaucoup de carractères et que tu veux coller
dans un champ Access qui peux en contenir beaucoup moins ??
L'erreur survient-elle tout de suite, après un laps de temps...?
0
cokinoumasterflash Messages postés 62 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 août 2005 7
18 juil. 2005 à 19:35
Effectivement l'erreur apparait après un laps de temps.



Comment je peux faire pour régler ce problème s'il te plait ?

Seb.
0
Zlub Messages postés 809 Date d'inscription mercredi 11 octobre 2000 Statut Membre Dernière intervention 29 septembre 2010 9
19 juil. 2005 à 00:24
Salut,









Je pige pas, en l'état tu fais un SELECT, donc ta source de données est
MS Access... même si tu utilises un fichier excel pour filtre les
taxons que tu veux afficher.



En plus concret, tu affiches uniquement les types,
associés aux Taxon, contenus dans ta base Access à la seule condition
que le Taxon existe dans ton fichier excel.... donc au final c'est pas
un probleme d'importation de données excel -> access... access est
donc ta source et excel ton filtre.... mais bon juste une
parenthese...



Pour en revenir à ton pb, vérifie si un de tes cellules ne contient pas un ; (point virgule) ou un " qui traine et qui planterait ta requête...



pour debug:



For j = 2 To m
For i = 5 To n


nomt = "'" & xl.Cells(i, 1).Value & "'"



' ------ debug time -----

If InStr(1, nomt , ";") <> 0 Then Debug.Print "cell (" & i & "," & j & ") ; detecté !"

If InStr(1, nomt , """") <> 0 Then Debug.Print "cell (" & i & "," & j & ") """" detecté !"




MySQL = "SELECT type,Taxon FROM ListePollens WHERE (Taxon= " & nomt
& ")"



' --- voir même ----

Debug.Print MySQL


Set rst = CurrentDb.OpenRecordset(MySQL, dbOpenDynaset, dbReadOnly) If rst.EOF False And rst.BOF False Then
typ = rst![type]
.....





Ensuite, ton extrait de code est un peu court... tes deux boucles servent à quoi ?



Tu fais quelque part un



rst.MoveNext ' pour passer au jeu d'enregitrement suivant



rst.Close ' pour fermer le recordset avant de faire un tour de boucle ?





Vois avec ça si tu trouves ta solution sinon copies ton code de façon plus complete ...





++



Zlub
0