Excel vba adodb connection

Fermé
Alex - 20 févr. 2012 à 16:32
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 20 févr. 2012 à 17:21
Salut,

j'utilise une macro VBA dans excel 2007 qui va chercher des données ds un autre fichier excel grace a une connection adodb.
Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection
    Set cn = New ADODB.Connection
    With cn
        .Provider = "Microsoft.ACE.OLEDB.12.0"
        .ConnectionString = "Data Source=" & source & ";Extended Properties=Excel 12.0 Xml;"
        .Open
    End With
    Set rs = New ADODB.Recordset
    rs.Open ("select max(DATE) from [table]"), cn


Cette macro va chercher la max date de la colonne 1 (colonne qui s'appelle DATE).


Ca marche tres bien sur tous mes fichiers, sauf 1 qui a plus de lignes (environ 45k lignes) que les autres (10k lignes en moyenne)
Sur ce fichier plus gros, vba ne repond plus et je dois l'arreter brutalement pour recuperer la main.

Qqun saurait pourquoi ca plante comme ca, et comment je peux contourner le pb?

merci d'avance
A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
20 févr. 2012 à 16:58
Bonjour
difficile à dire car pas de problèmes pour 45000 lignes mais peut-^tre que:

Le code se termine t'il bien
par set cn=nothing et set rs=nothing ?

dans le classeur fautif, les données sont elles cohérentes dans la colonne "date" (format identique)? si différence (texte et nombre), Max ne peut pas être calculer (incompatiblité de type) ?
0
oui le code se finit bien par cn = nothing et rs= nothing.
le code plante lors de l'execution de rs.open... pas de message d'erreur juste vba qui freeze et ne repond plus
Ja' vérifié, il n'y a que des dates dans le fichier qui plante.
Merci pour la reponse.
0
michel_m Messages postés 16602 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 313
20 févr. 2012 à 17:21
Je sèche

Peut ^tre à la maison mère ?
https://docs.microsoft.com/en-us/previous-versions/tn-archive/ee692882(v=technet.10)?redirectedfrom=MSDN

si tu peux me tenir au courant d'une éventuelle solution, cela me rendrait service; d'avance MercI;
(je continue de chercher si la fonction Max de SQL n'a pas une limite...)
0
UPDATE:

en fait, ca plante sur 3 fichiers qui ont tous 34638 lignes ou +
et ca marche sur tous les fichiers qui ont 32558 lignes ou -.

je pense que ca doit planter a partir de 2^15 lignes... tout semble l'indiquer pour le moment
0