Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1361 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ACCESS-VBA] Problème performances Local Vs Reseau incompréhensible

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ACCESS-VBA] Problème performances Local Vs Reseau incompréhensible

n°1631646
PETOZAK
Posté le 26-10-2007 à 14:23:03  profilanswer
 

Bonjour,
 
Je dois alimenter une table à l'aide du code suivant:
 

Code :
  1. 'mettre des commentaires
  2. Public Function construire()
  3.     Dim n As Noeud, rst As Recordset, max As Long, arbre As Noeud, i As Long, j As Integer, col As Collection
  4.    
  5.     On Error GoTo handler
  6.     'initialisation de l table des données
  7.     Debug.Print Time & " - on efface l'arbre"
  8.     CurrentDb.Execute "delete from " & ARBRE_TABLE
  9.     Debug.Print Time & " - on charge toute les données l'arbre"
  10.     'on récupère l'identifiant max pour définir la taille du tableau
  11.     Set rst = CurrentDb.OpenRecordset("select max(IDENT) as idMax from FMB_FOLIO" )
  12.     ReDim noeuds(rst!idMax)
  13.     rst.Close
  14.     'on charge tous les noeuds
  15.     nb = 0
  16.     Set rst = CurrentDb.OpenRecordset("VB_Noeuds" )
  17.     Do While (Not rst.EOF)
  18.         If (rst!mgr <= UBound(noeuds)) Then
  19.             Set n = New Noeud
  20.             nb = nb + 1
  21.             n.setPrimaryProperties rst!ident, "" & rst!Name, "" & rst!ID_SECTION
  22.             If (noeuds(rst!mgr) Is Nothing) Then
  23.                 Set noeuds(rst!mgr) = New Collection
  24.             End If
  25.             noeuds(rst!mgr).Add Item:=n
  26.             If (nb Mod 5000 = 0) Then Debug.Print nb
  27.         Else
  28.         ''Zak
  29.             Debug.Print rst!mgr & " is out of range"
  30.         ''Zak
  31.         End If
  32.         rst.MoveNext
  33.     Loop
  34.     rst.Close
  35.     Set rst = Nothing
  36.     'on construit l'arbre
  37.     Debug.Print Time & " - on construit le nouvel arbre"
  38.     CurrentDb.Execute "VB_Arbre_Ajout_Racine" 'on ajoute la racine
  39.     Set arbre = New Noeud
  40.     arbre.setPrimaryProperties 1, "racine", ""
  41.     arbre.depth = 0
  42.     chargerNoeud arbre
  43.     Debug.Print Time & " - on sauve les données"
  44.     nb = 0
  45.     Set rst = CurrentDb.OpenRecordset(ARBRE_TABLE, dbOpenTable, dbAppendOnly)
  46.     With rst
  47.         For i = 1 To UBound(noeuds)
  48.             Set col = noeuds(i)
  49.             If (Not col Is Nothing) Then
  50.                 For j = 1 To col.Count
  51.                     Set n = col.Item(j)
  52.                     .AddNew
  53.                      !Name = n.nom
  54.                      !ident = n.ident
  55.                      ''Zak
  56.                      If (Not n.pere Is Nothing) Then
  57.                         !mgr = n.pere.ident
  58.                      Else
  59.                         Debug.Print "the father of " & n.ident & " is not defined"
  60.                      End If
  61.                      ''Zak
  62.                      !ID_SECTION = n.section
  63.                      !depth = n.depth
  64.                     .Update
  65.                     nb = nb + 1
  66.                     If (nb Mod 500 = 0) Then Debug.Print nb
  67.                 Next j
  68.             End If
  69.         Next i
  70.     End With
  71.     Debug.Print Time & " - l'arbre est finalisé"
  72. handler:
  73.     Debug.Print Time & " - L'arbre n'a pu être mis à jour " & Err.description
  74.     'on sauve l'arbre
  75. End Function


 
Si je l'execute en local ca met 10 sec , en reseau plus de 20 min...
 
Je ne comprend vraiment pas...Le volume traité est pas enorme en plus...
 
 
Merci d'avance

mood
Publicité
Posté le 26-10-2007 à 14:23:03  profilanswer
 

n°1631805
kao98
...
Posté le 26-10-2007 à 16:06:02  profilanswer
 

Quelle version d'access ?
Quand tu dis "en réseau", c'est-à-dire ? Tu as un mdb avec les tables sur un ordi distant, et un mdb avec le code avec des tables liées ? C'est bien ça ?
 
D'après les debug.print Time, c'est quelle partie du code qui est longue ? L'ajout des données je pense !


Message édité par kao98 le 26-10-2007 à 16:06:59

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1631860
jpcheck
Pioupiou
Posté le 26-10-2007 à 17:04:19  profilanswer
 

si ca c'est pas de l'efficacité : même post sur plusieurs forums différents  :pt1cable:  
je hurle au spam [:sarko]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ACCESS-VBA] Problème performances Local Vs Reseau incompréhensible

 

Sujets relatifs
[C#] mail ne sortant pas du réseauproblème bête de positionnement de div
ACCESS ajout de données par fichier independantproblème avec un OR dans une requête
Problème de calibrage PHP GD et imagettftext[ACCESS] Développer à plusieurs sur le même fichier
Pbl Format Date VBs/wsh Attributes[VBA Excel]Compter à l'interieur d'une chaine
Problème de traduction dans un panel[Resolu] Problème sur realbox
Plus de sujets relatifs à : [ACCESS-VBA] Problème performances Local Vs Reseau incompréhensible


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR