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

Access Discussion :

ma base gonfle sans raison !!!


Sujet :

Access

  1. #1
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut ma base gonfle sans raison !!!
    bonjours,

    j'ais une routine qui me permet de redonner une reference à des articles contenus dans ma base de donné (elle est sencée tournée plusieurs heures avant de finir l'oppération) je l'ais deja faite tournée une fois sans reconter de problèmes et elle as fait le travaille.

    le problème qui se pose est que j'ais (par erreur supprimé la base que la routine à modifié) je me retrouve donc avec l'ancienne base...

    vous vous dites c'est pas grave il as juste a relancer sa jolie petite routine . mais voila contrairement a la première fois la base gonfle d'une maniere telle que la base n'est pas modifié complètement par maque de place (il me reste 1,3 Go de place avant l'opération) et je ne comprend pas pourquoi.

    si il est deja arrivé a quelqu'un qu'un code ne se comporte pas de la meme mainière d'une fois sur l'autre et qui à resolu se problème peut il m'aider ? plz !

    si vous avez une idée sur se qui se passe se serait gentil mais bon si il y a pas de solution dite le moi omoin.

    voici le code (il n'as pas été modifier entre la permière modification de la base) :

    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
    Private Sub nv_N°_article_Click()
     
    Dim db As Database
     
    'declaration des pointeurs ancien n° article
    Dim DCC As Recordset
    Dim DT As Recordset
     
    Set db = CurrentDb
     
    'affectation des pointeurs
    Set DCC = db.OpenRecordset("Détail carnet de commande")
     
    DCC.MoveFirst
     
    While Not DCC.EOF
        'recherche des enregestrements qui ont la meme reference que celui de la table Détail carnet de commande
        Set DT = db.OpenRecordset("Select * FROM [Détail traitements] where [N° article] = " & DCC![N° article])
     
        'vérification du fait qu'il y a des enregistrements ouverts
        If Not (DT.EOF And DT.BOF) Then
            DT.MoveFirst
        End If
     
        'modfication des enregistrements ouverts
        While Not DT.EOF
            DT.Edit
            DT![nv N° article] = DCC![nv N° article]
            DT.Update
            DT.MoveNext
        Wend
     
        DCC.MoveNext
    Wend
    End Sub
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

  2. #2
    ARO
    ARO est déconnecté
    Membre habitué

    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 74
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    As-tu compacté ta base de données avant de faire tourner ta routine ?

  3. #3
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut
    biensur que je l'ais fait !

    mais elle grossi au bout d'une heur d'execution environ alors je me demande surtout ce que c'est qui fait gonfler les table.

    est ce que c'est les recherche d'enregistrement ou les manipulation sur les enregistrements (edit et update) ?
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut Re: ma base gonfle sans raison !!!
    Tu peut optimiser ton code pour qu'utilise moins de ressource

    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
    Private Sub nv_N°_article_Click()
     
    Dim db As Database
     
    'declaration des pointeurs ancien n° article
    Dim DCC As Recordset
    Dim DT As Recordset
    Dim Critere, NouvNum as Variant, Msql as String
     
    Set db = CurrentDb
     
    'affectation des pointeurs
    Set DCC = db.OpenRecordset("Détail carnet de commande")
     
    DCC.MoveFirst
     
    While Not DCC.EOF
     
        Critere=DCC![N° article]
        NouvNum=DCC![nv N° article]
     
        Msql="Update [Détail traitements] Set [nv N° article]=NouvNum Where [N° article] = " & Critere & ";"
      DoCmd.RunSQL Msql
     
       DCC.MoveNext
    Wend
    End Sub
    Amicalement

  5. #5
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut Re: ma base gonfle sans raison !!!
    Citation Envoyé par DMboup
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub nv_N°_article_Click()
     
        Critere=DCC![N° article]
        NouvNum=DCC![nv N° article]
     
        Msql="Update [Détail traitements] Set [nv N° article]=NouvNum Where [N° article] = " & Critere & ";"
      DoCmd.RunSQL Msql
     
       DCC.MoveNext
    Wend
    End Sub
    je voudrai comprende ce code avant de remplacer le mien pour pouvoir en apprendre un peut plus (je suis un newbee )

    bon alors c'est pour executer la comande qui est dans Msql

    on arrait pas pus faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.runSQL "Update [Détail traitements] Set [nv N° article]=NouvNum Where [N° article] = " & Critere & ";"
    bon maintenant on décortique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Update[Détail traitements] Set [nv N° article] = NouvNum
    ca c'est pour affecter le nv N° article dans Détail traitements.

    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Where [N° article] = " & Critere & ";
    ca c'est une requete pour ne modifier que les enregistrement qui on la meme valeur entre leurs champs [N° article]

    c'est bien ca ?

    sinon on a toujours pas repondu a ma question qui est :

    qu'est ce qui fait gonfler une base de donné le fait modifier les donnés ou de parcourir les donnés ?
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    J'ai simplement changer ta deuxieme boucle en une instruction SQL Update
    Dans l'aide Access et même dans la faq tu trouveras toutes les explications nécessaire. Sinon tu l'as très bien décortiquée

    sinon on a toujours pas repondu a ma question qui est :

    qu'est ce qui fait gonfler une base de donné le fait modifier les donnés ou de parcourir les donnés ?
    Nous n'avons pas ta base àportée de main pour l'analyser correctement. Le problème peut être tout simple ou très compliqué.
    Peut être des tables non indexées, peut être trop d'enregistrements sur lesquels tu applique deux boucles.

    Tout ce qu'on peut faire c'est au moins alléger le temps d'éxécution et encore que l'instruction Update n'est qu'un test.

    PS: Tu ne change pas tout tout de suite. Tu sauvegarde ton code original et tu fais des test avec l'update et tu compares les temps d'exécution
    Amicalement

  7. #7
    Membre habitué Avatar de hiul dragonfel
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    199
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 199
    Points : 155
    Points
    155
    Par défaut
    merci!

    ne t'inquiète pas je fait toujours une sauve garde avant de faire quoi que ce soit.

    sinon ma base est en deux partis je ne compactais que les tables et non pas les tables et l'application. quand j'ais compacter l'appli tout a coup sa à fonstionné.

    merci encore !
    Le langage de programmation le plus vieux, le plus optimiser et le plus efficace est l'ADN quelqu'un d'extrêmement intelligent l'a obligatoirement inventé.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ma base grossit dangereusement et sans raison apparente
    Par fred1234 dans le forum Modélisation
    Réponses: 3
    Dernier message: 16/12/2007, 19h50
  2. [ACCESS] connexion base ACCESS sans VC++ ou BC++ ni wizard
    Par roce dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 18/03/2007, 23h13
  3. [MSSQL 2000] Ma base augmente sans "raison"
    Par thehush dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 22/09/2006, 14h01
  4. Base de donnée très grosse 1 gig et sans raison
    Par kissmytoe dans le forum Access
    Réponses: 5
    Dernier message: 29/03/2006, 07h31
  5. base MSSQL sans SQL SERVEUR
    Par coucoucmoi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/06/2004, 08h12

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