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 :

Pb lié au fractionnement d'une BD


Sujet :

Access

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Pb lié au fractionnement d'une BD
    Bonjour, j'ai une BD que j'ai développé depuis 2 mois,le but est de la mettre sur un réseau partagé pour mutli-user (35 postes). Aujourd'hui, j'ai essayé de la fractionner, mais le prob est que ça rame bcp après le fractionnemt et il y a des fonctions qui ne marchent plus... j'espère que vous pouvez me dire où est mon pb? voici le détail:
    L'étape fractionnement:
    j'ai utilisé le fonction "fractionnement d'une base de données" de ACCESS pour fractionner une base en 2. J'ai mis BD principale sur le serveur et BD frontale sur les bureux.. ensuite j'ai essayé sur 2 postes simultanémt, du coup l'appli s'exécute plus lent que d'habitute ( avant le frac)..
    dysfonctionnement du code:
    j'ai un formulaire qui sert à enregistrer les info à partir une table existante (éviter la saisie manuellement), en complétant les champs ajoutés, les info vont être enregistré dans une autre table en affichant en même temps dans ma liste qui se situe en bas du formulaire.Avant le fractionnemt, il marche bien pourtant.. voici le code en VBA:
    Code sql : 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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    Private Sub bt_enregistrerDcDEF_Click()
    On Error GoTo err
    Dim oRst As DAO.Recordset
    Dim oDB As DAO.Database
    Set oDB = CurrentDb
    Set oRst = oDB.OpenRecordset("T_temp", dbOpenTable)
    'passe à l'ajout
    oRst.AddNew
    'Affecte les differents champs
    oRst.Fields("nDC") = Me.nDC
    oRst.Fields("DateReal") = Me.DateReal
    oRst.Fields("HrReal") = Me.HrReal
    oRst.Fields("DateEngaTheo") = Me.DateEngaTheo
    oRst.Fields("HrEngaTheo") = Me.HrEngaTheo
    oRst.Fields("DateSITE") = Me.DateSITE
    oRst.Fields("HrSITE") = Me.HrSITE
    oRst.Fields("DateLivr") = Me.DateLivr
    oRst.Fields("HrLivr") = Me.HrLivr
    oRst.Fields("DateAnnul") = Me.DateAnnul
    oRst.Fields("HrAnnul") = Me.HrAnnul
    oRst.Fields("MotifAnnul") = Me.motifAnnul
    oRst.Fields("Origine") = Me.Origine
    oRst.Fields("destination") = Me.destination
    oRst.Fields("etatDC") = Me.EtatDC
    oRst.Fields("Nom_CLIENT") = Me.NOM_CLIENT
    oRst.Fields("nbWag") = Me.nbWag
    oRst.Fields("LgUAF") = Me.lgUAF
    oRst.Fields("mUAF") = Me.mUAF
    oRst.Fields("charge") = Me.charge
    oRst.Fields("b_en_b") = Me.b_en_b
    oRst.Fields("DateReelEnga") = Me.DateReelEnga
    oRst.Fields("DEFPPC") = Me.DEFPPC
    oRst.Fields("ARectifier") = Me.ARectifier
    oRst.Fields("Secteur") = Me.Secteur
    oRst.Fields("Segment") = Me.Segment
    oRst.Fields("prenom_GDC") = Me.prenom_GDC
    oRst.Fields("nom_GDC") = Me.nom_GDC
    oRst.Fields("Inter") = Me.Inter
    oRst.Fields("RA") = Me.RA
    oRst.Fields("PUF") = Me.PUF
    oRst.Fields("Observation") = Me.Observation
    'met à jour
    oRst.Update
    oRst.Close
    oDB.Close
    Set oRst = Nothing
    Set oDB = Nothing
    Dim sql As String
    Dim nb As Recordset
    sql = "SELECT nDC,DEFPPC,Secteur,Segment,Origine,Destination,DateReal,DateEngaTheo,HrEngaTheo,DateReelEnga,nom_GDC,observation from T_temp where nom_GDC = " & Chr(34) & Forms!F_DC_DEF.nom_GDC & Chr(34) & " and DEFPPC= ""DEF"""
    'MsgBox SQL
    Me.list_temp_DEF.RowSource = sql
    Me.list_temp_DEF.Requery
    Refresh
    err:
        Select Case err.Number
            Case 3022: MsgBox "DC demandé a déjà enregistré !"
        End Select
    End Sub
    j'espère que j'ai bien expliqué ma question en éspérant que vous pouvez m'aider

  2. #2
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonsoir,

    Pour ce qui est de la lenteur, c'est clair que ça va fonctionner moins vite en réseau avec la dorsale sur serveur que lorsque toute l'appli est en local.

    Il est possible d'optimiser un certain nombre de chose. Un peu de lecture :

    Guide d'optimisation de vos applications Microsoft ACCESS.

    Pour ce qui est de l'erreur, sauf erreur de ma part, tu ne peux pas utiliser le type "dbOpentable" avec des tables liées (voir l'aide). Essaie avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET oRst = oDB.OpenRecordset("T_temp", dbOpenDynaset)
    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Merci pour ton aide,je vais essayer demain sur plusieurs postes, je te tiendrai au courant. bonne soirée

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Et pardon pour la critique.... mais...

    Une application multi-utilisateurs, ça se développe dans un environnement "fonctionnellement proche" de l'environnement réel.

    Déjà, on commence tout de suite par séparer l'application frontale de la base dorsale. M'enfin ! (comme dirait Gaston )
    _

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par =JBO= Voir le message
    Bonjour,

    Et pardon pour la critique.... mais...

    Une application multi-utilisateurs, ça se développe dans un environnement "fonctionnellement proche" de l'environnement réel.

    Déjà, on commence tout de suite par séparer l'application frontale de la base dorsale. M'enfin ! (comme dirait Gaston )
    _
    Merci pour ta réponse, mais j'ai pas très bien compris ce que tu veux dire.. Pour le moment,le pb lié à l'enregistrement est réglé merci à Domi2. Mais dès que je mes la dorsale en accdb sur réseau et je teste juste sur 2 postes simuletanément,ca me donne une lenteur insupportable , dès fois le prog ne répond pas .... je ne comprend pas ...
    Mais je suis au milieu de mon stage,il me reste 2 mois,je sais pas si j'aurai du temps de tous changer?
    Sinon, pour le fractionnemt, j'ai mis la dorsale sur le serveur, et frontale sur les bureux comme j'ai parlé en haut, est il correcte? Ou je dois mettre aussi le frontable sur le serveur et un raccourci sur les bureaux ? La dorsale est mieux en .accdb ou pas? Excuses moi pour ces questions un peu betes

  6. #6
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Plus lent, c'est clair et évident...

    De là à ce que l'appli ne réponde plus...

    A nouveau un peu de lecture...

    Comment utiliser une application en mode multi-utilisateurs

    Des fois que tu aurais "raté" quelque chose.

    Concernant le format des fichiers, je ne peux pas te répondre, je n'ai pas Access 2007.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Mon précédent message était un reproche (bien que je n'ai aucune animosté à ton égard, rassure-toi ) puisque en développant ton projet dans un seul MDB, tu as ignoré la réalité de l'environnement réel.

    C'est comme si tu disais:
    _ « Je développe dans mon MDB une application qui sera migrée (miraculeusement !) en projet ADP (donc SQL Server) à la fin du projet »...
    Ce n'est pas réaliste, ni "professionnel"...

    Tant que tu es en phase de développement (eh oui, il faut maintenant rectifier ton application pour qu'elle fonctionne en frontale-dorsale, donc c'est encore du développement), je te conseille de laisser les fichiers sur ton PC, pour ne pas être confronté simultanément à tous les problèmes (par exemple les Pb de lenteur) et que tu règleras au fur et à mesure.

    Par exemple, tu crées un dossier spécialement pour y placer ta BD dorsale, si possible directement à la racine d'un disque. C:\BD\dorsale.mdb

    Ensuite, tu rectifies ton application MDB frontale.

    Plus tard, pour les tests "réels" tu placeras le fichier MDB dorsale sur un serveur, et tu modifieras les liens des tables attachées pour qu'elles travaillent sur le MDB du serveur.

    Et finalement, tu déploieras une frontale sur chaque PC utilisateur, et la dorsale sera placée sur un serveur de fichiers.

    Quant au format ACCDB versus MDB, je n'ai pas non plus l'expérience d'Access 2007.
    Mais il me semble que certaines fonctionnalités des MDB ne sont plus disponibles dans les ACCDB (ex gestion de la sécurité) et que d'autres fonctionnalités sympas sont apparues (pièces jointes, champs multi-valués...).
    Ici le choix du format est une vraie question, qu'il faudra un minimum étudier pour voir les apports et les pertes, ainsi que les possibles besoins futurs et la capacité du format retenu à satisfaire ces futurs besoins.
    C'est un choix à faire avec les responsable du projet, en connaissance de cause.
    D'ailleurs une fois tous les desiderata posés, peut-être qu'il n'y aura pas le choix, et qu'un des formats s'imposera "naturellement".

    Vraiment, se poser la question du format en milieu de projet, ce n'est pas sérieux.
    Alors bon courage pour vite remonter tout ça !
    _

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 39
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par =JBO= Voir le message
    Bonjour,

    Mon précédent message était un reproche (bien que je n'ai aucune animosté à ton égard, rassure-toi ) puisque en développant ton projet dans un seul MDB, tu as ignoré la réalité de l'environnement réel.

    C'est comme-ci tu disais je développe dans mon MDB une application qui sera migrée (miraculeusement !) en projet ADP (donc SQL Server) à la fin du projet... ce n'est pas réaliste, ni "professionnel"...

    Tant que tu es en période de développement (eh oui, il faut maintenant rectifier ton application pour qu'elle fonctionne en frontale-dorsale, donc c'est encore du développement), je te conseille de laisser les fichiers sur ton PC, pour ne pas être confronté simultanément à tous les problèmes (par exemple les Pb de lenteur) et que tu règleras au fur et à mesure.

    Par exemple, tu crées un dossier spécialement pour y placer ta BD dorsale, si possible directement à la racine d'un disque. C:\BD\dorsale.mdb

    Ensuite, tu rectifies ton application MDB frontale.

    Plus tard, pour les tests "réels" tu placeras le fichier MDB dorsale sur un serveur, et tu modifieras les liens des tables attachées pour qu'elles travaillent sur le MDB du serveur.

    Et finalement, une frontale sur chaque PC utilisateur, une dorsale sur un serveur.

    Quant au format ACCDB versus MDB, je n'ai pas non plus l'expérience d'Access 2007.
    Mais il me semble que certaines fonctionnalités des MDB ne sont plus disponibles dans les ACCDB (ex gestion de la sécurité) et que d'autres fonctionnalités sympas sont apparues (pièces jointes, champs multi-valués...).
    Ici le choix du format est une vraie question, qu'il faudra un minimum étudier pour voir les apports et les pertes, ainsi que les possibles besoins futurs et la capacité du format retenu à satisfaire ces futurs besoins.
    C'est un choix à faire avec les responsable du projet, en connaissance de cause.
    D'ailleurs une fois tous les desiderata posés, peut-être qu'il n'y aura pas le choix, et qu'un des formats s'imposera "naturellement".

    Vraiment, se poser la question du format en milieu de projet, ce n'est pas sérieux.
    Alors bon courage pour vite remonter tout ça !
    _
    Merci JBO pour la précision.. Je vais relire le doc que tu m'as conseillée.

Discussions similaires

  1. [AC-2010] Problème de fractionnement d'une base de données
    Par dnlboss dans le forum Access
    Réponses: 4
    Dernier message: 26/03/2013, 14h52
  2. [AC-2003] Fractionnement d'une base
    Par Leehan dans le forum Access
    Réponses: 6
    Dernier message: 06/01/2012, 15h09
  3. fractionnement d'une db 2007
    Par aerosky dans le forum Access
    Réponses: 2
    Dernier message: 21/05/2011, 15h17
  4. Erreur lors du fractionnement d'une base
    Par Kayser Sosé dans le forum Access
    Réponses: 11
    Dernier message: 24/11/2006, 13h10
  5. Réponses: 4
    Dernier message: 14/05/2006, 11h51

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