IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Ameliorer l'efficacité de l'incrementer par groupe


Sujet :

VBA Access

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Par défaut Ameliorer l'efficacité de l'incrementer par groupe
    Bonjour,
    J'ai un souci de l'efficacité de mon code. Je voudrais faire incrementer le numéro de la colonne "ELT_ORD" pour chaque CIR_IDE(En fait chaque PAR_IDE a bp CIR_IDE. ) Il y a 797 013 lignes totales.
    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Option Compare Database
     
    Public Function Incrementer_ELT_ORD_v0()
    InitModif
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub InitModif()
    Dim conDatabase As ADODB.Connection
    Set conDatabase = CurrentProject.AccessConnection
    SelectNOMITINL "Elements_Base", "CIR_IDE", "ELT_ORD"
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub SelectNOMITINL(StrNomTable As String, NomCritere As String, NomIncrementer1 As String)
    Dim rs As New ADODB.Recordset
    Dim res As New ADODB.Recordset
     
    Dim nbLignes As Integer
    Dim nbLignes1 As Integer
    Dim ChnSQL As String
    Dim counter As Integer
     
    'initialisation des variables
    nbLignes = 0
     
    ChnSQLRequete1 = "Select " & NomCritere & " from " & StrNomTable & " group by " & NomCritere & ";"
     
        rs.Open ChnSQLRequete1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        nbLignes = rs.RecordCount
        counter = 1
     
    If (nbLignes <> 0) Then
        rs.MoveFirst
        While rs.EOF <> True
     
            ChnSQLRequete2 = "Select " & NomIncrementer1 & " from " & StrNomTable & " where " & StrNomTable & "." & NomCritere & "=" & rs.Fields(0).Value & _
                 " order by " & StrNomTable & "." & NomIncrementer1 & ";"
            res.Open ChnSQLRequete2, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
            nbLignes1 = res.RecordCount
            If (nbLignes1 > 0) Then
                res.MoveFirst
                While res.EOF <> True
                    res.Fields(0).Value = counter
                    res.Update
                    counter = counter + 1
                    res.MoveNext
                Wend
                res.Close
            Else
                res.Close
            End If
     
            counter = 1
            rs.MoveNext
        Wend
    End If
    End Sub
    Mes questions sont:
    1. est-ce que la code est correct?
    2. comment je pourrai améliorer l'efficacité (797 013 lignes en totale)?
    3. comment je pourrai afficher un message box pour afficher l'état d'avancement de programme (par exemple, afficher le numéro de "CIR_IDE"), svp?

    Merci beaucoup!
    Images attachées Images attachées  

Discussions similaires

  1. Compter nombre lignes générées par GROUP BY
    Par Trunks dans le forum Langage SQL
    Réponses: 2
    Dernier message: 26/03/2006, 16h52
  2. Nombre de pages par groupe dans un état
    Par loutsky dans le forum Access
    Réponses: 5
    Dernier message: 15/03/2006, 14h04
  3. Réponses: 7
    Dernier message: 23/09/2005, 20h58
  4. Trier les fichiers par type et les afficher par groupe ...
    Par KneXtasY dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 18/09/2005, 18h50
  5. concaténer par GROUP BY des champs text/varchar
    Par Fredobdx dans le forum Requêtes
    Réponses: 1
    Dernier message: 12/07/2005, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo