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

Modélisation Discussion :

Modélisation base de données pour la gestion des Aidants-Accueillant [AC-2013]


Sujet :

Modélisation

  1. #1
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut Modélisation base de données pour la gestion des Aidants-Accueillant
    Bonsoir,

    Voilà j'ai récupéré la base de donnée de l'association/fédération. J'en ai déjà parlé sur ce forum au mois d'octobre. Je dois tout revoir car la base actuelle est un vrai "bordel". Hyper lente, la personne qui l'a développé, a mon avis trop utiliser l'assistant, aucune fonction nommé correctement. Je suis un vrai débutant sous access. Si vous me demander sur la gestion serveur réseau, virtualisation, maintenance pc/système, développement linux, oui je serai plus à l'aise. Mais comme ce sont de très bon amis, j'ai remis à neuf le serveur (esxi, et les installations clients windows, avec une gestion en domaine).

    Donc je fais appel à la communauté de développeur Access de developpez.com pour un coup de main.

    La base actuel aurait été développer sous 2003, je pense. Je tourne sous 2013, je dois la développer en mode multi-utilisateur et pour version 32 et 64 bit. Pour le mode multi-utilisateur, j'ai trouvé un tuto très bien fait ici :http://dolphy35.developpez.com/artic.../basesreseaux/. Pour le 32 et 64, ici : http://arkham46.developpez.com/artic...ice/vba64bits/

    Actuellement, la fnaaf gère les départements de Gironde, Ain, 06, Dordogne, lot et Garonne, Gard, Landes, Lot, Indre et d'autres, mais les plus gros sont le 33, Gard, et Lot et Garonne.

    Le principe est le suivant :

    1 - Un accueilli (personne âgé) est accueilli chez l'accueillant familiale.
    2 - L'accueillant familiale peut accueillir plusieurs personnes âgées.
    3 - L'accueillant principal peut avoir un à 4 remplaçants. Chose qui n'est pas simple pour la gestion actuel.
    4 - A partir du formulaire de l'accueilli, on accède par un bouton macro au formulaire de l'accueillant. (Problème macro pas des plus simple, cause assistant AMHA)
    5 - Du formulaire de l'accueillant, on peut voir les différents accueillants, on peut lancer le bulletins de salaire, là on passe par excel, mais cela fera l'objet d'un autre sujet dans le forum adequate. On la aussi les déclarations nominatives trimestrielle aussi sous excel..
    6 - De plus, aucune possibilité d'archivés les accueillis qui sont parties de chez l’accueillant pour X raisons ou tout simplement décédés.

    Mon but donc est de mettre en multi-utilisateurs et transposer une fois la base bien faite, la partie excel dans la BDD. Et que les utilisateurs accèdent à la base par la base frontale juste avec le runtime.

    Voici la modélisation actuelle :

    Nom : Relation BDD.png
Affichages : 2289
Taille : 60,1 Ko

    Je peux donner en MP un lien vers les deux bases en version 2007 - 2013, je ne peux la fournir en version antérieur car elles utilisent des fonctions non disponible. Malheureusement je ne vois pas comment modifier en masse les données sensibles, n°SS, adresse, Nom Prénom, mail, tel... car il y a beaucoup de monde...

    Je remercie par avance tous les développeurs aguéri et expert qui m'aideront dans cette tache.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut Je suis désepéré !!
    Bonjour,

    Je relance tout d'abord mon post, et j'avoue être déçu de n'avoir aucune réponse sur une soixantaine de lecture.

    Au plus, j'avance dans la découverte de la BDD, au moins j'y comprends le fonctionnement, c'est un vrai bordel.

    Je vous joins rien que la modèle relationnel complet. Nom : Relation BDD 01.png
Affichages : 3690
Taille : 74,7 Ko

    J'aimerai vraiment un coup de main pour l’épurer-nettoyer, ne pas devoir passer par des macros complexe pour afficher un formulaire en relation avec les données d'un autre formulaire , exemple de ce que ce la me fait quand je veux accéder au formulaire d'un accueillant lorsque je suis sur un accueilli :

    1 - Vous allez exécuter une requête création de table qui modifiera le données de votre table. Etes-vous sur de vouloir exécuter ce type de requête action ?
    2 - Vous allez coller 1 ligne dans une nouvelle table
    3 - Affichage du formulaire avec les détails de l'accueillant

    Il y a des Tables masqués, formulaires masqués en doublon. des requêtes étendus.... Aucun nommage logique. J'ai essayé rien que de créer une macro pouvant archivés les accueillis qui ne doivent plus apparaître dans les tables principales ça bug sur la suppression des lignes concernés dans la table principale.

    Je désire fractionner la base, chose que j'ai déjà faite mais impossible d'ouvrir la base dorsale contenant les tables car non signé pour Access.

    J'espère vraiment que vous pourriez m'aider. Car je n'avance pas du tout.

  3. #3
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Le problème c'est que ton chantier est important.
    Sur ce genre de forum, _il faut poser des questions simples les unes après les autre pour pouvoir avancer.
    Analyse et décompose ton problème.
    Pose une question à la fois et tu verras que tu auras des réponses.
    Quand on lit ton post, on ne sait pas par ou commencer.
    Le projet est vaste.
    On sens bien que tu semble démuni face à un tel travail (et je te comprends) car c'est très difficile de repasser derrière une autre personne.
    C'est parfois plus simple de créer soi même une appli.
    De plus, il y aura forcement des contraintes lièes à la conception de la base qui ne t'incombe pas/
    De plus si je comprend bien elle est utilisée et donc avec des données.

    Dans un premier temps, je te conseil de la "deboguer" afin de la prendre en main, et ensuite tu pourras rajouter des fonctionalité et petit à petit te l'approprier.
    Mais je ne te cache pas que cela risque d'être long et fastidieux.

    Pour essayer de répondre à une de tes questions :
    1 - Vous allez exécuter une requête création de table qui modifiera le données de votre table. Etes-vous sur de vouloir exécuter ce type de requête action ?
    2 - Vous allez coller 1 ligne dans une nouvelle table
    3 - Affichage du formulaire avec les détails de l'accueillant
    Ces messages arrivent chaque fois que l'on exécute une requête "action".
    TRouve la macro ou le code VBA qui lance cette requête et selon si c'est du code ou une macro la réponse sera différente:
    Pour une macro, avant la ligne "Ouvrir la requête" insert une ligne "avertissement" et met la propriété à faux, et après la ligne "ouvrir la requête"
    insert une seconde ligne "avertissement" et met la propriété à vrai.

    Si c'est du code VBA tu aura peut-être une ligne du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    Docmd.OpenQuery "MarequêtecréationdeTable"
    ...
    Bon courage

    Soit tu rajoutes les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ...
    Docmd.SetWarnings False
    Docmd.OpenQuery "MarequêtecréationdeTable"
    Docmd.SetWarnings True
    ...
    Soit tu modifies le code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    Currentdb.execute "MarequêtecréationdeTable"
    ...
    @+


    Pensez au tag

  4. #4
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Bonjour Didier,

    Tout d'abord merci d'avoir pris le temps de me répondre. Et oui, je suis complètement démuni face à la situation. Mais je ne baisserai pas les bras, ce n'est pas mon genre. Pour cela, j'ai décidé de repartir de 0. Voir mon nouveau poste.

    Car la partie Access n'est que la plus petite par rapport au classeur Excel + VBA qui permet de faire les bulletins de salaires qui faudrait passer totalement sous access.

    Rien que pour ceux qui veulent jeter un oeil : http://ovh.to/iwTpEwi Attention lien disponible pour 10 jours

    Pour en revenir à tes réponses me permettant de déboguer, je prends un exemple concret.

    Lors de l'ouverture de la base, on arrive automatiquement sur le formulaire "Détails de l'Accueilli Simple" (Personne Agé), ce formulaire est composé de 5 onglets : Général, Informations sur l'Accueilli (2 onglets), Informations Famille naturelle/Tuteur et les informations en cas d'urgence. Avec des champs obligatoires à remplir.

    Lorsque nous sommes sur le Formulaire Détail de l'accueilli simple ou sont affichés l’accueilli et son accueillant en information. Un bouton "Accéder à l'accueillant Familial" ouvre un nouveau formulaire "Détail de l'Accueillant Familial" composé de lui même de 4 onglets (général, accueillis loges chez l'accueillant, informations sur les remplaçants, infos en cas d'urgence). De cette fiche, on a un bouton qui lance la rémunération sous excel (voir fichier ci dessus).

    Donc en étant sur l'accueilli, le bouton qui ouvre le formulaire de l’accueillant comprend ce code :

    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
    Private Sub Commande692_Click()
    On Error GoTo Macro5_Err
     
        Dim Accueillant
        [Accueillant] = [Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]
        [Accueillant] = [Accueillant] * 1
        'DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        DoCmd.DeleteObject acTable, "Liste Accueillis Simples"
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.DeleteObject acTable, "Accueilli sélectionné"
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
     
     
    Macro5_Exit:
        Exit Sub
     
    Macro5_Err:
        MsgBox "Erreur"
        Resume Macro5_Exit
     
     
    End Sub
    Déjà première chose, le nom de la macro ou de la fonction n'est vraiment pas du tout parlant. Ensuite, pourquoi la deuxième ligne sur erreur il va à la fonction Macro5_Err.
    Après pourquoi multiplier par 1 alors que le résultat sera le même. Et pourquoi ces requêtes juste pour afficher le formulaire de l'accueillant. D'après ce que je comprends, il supprime la table Accueillis simple, il ouvre une requete création qui je suppose va ajouter des infos dans la table supprimer, supprime la table accueilli sélectionné, ouvre une 2e requete création qu'il ajoute, et ouvre le formulaire avec le bon accueillant.

    Il y a pas plus compliqué ? Et c'est comme ça pour tout.

    Donc pour en revenir à ta proposition Didier, j'ai désactivé les messages dans les options d'Access.

    Je vous met le code VBA contenu dans le Formulaire détail accueillis, je ne sais même pas si tout est fonctionnel :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    Option Compare Database
     
    Private Sub Guardian_Information_Page_Click()
     
    End Sub
     
    Private Sub cmdOpenExcel_Click()
    Dim xls As Excel.Application
    On Error GoTo errHnd
    Set xls = CreateObject("Excel.Application")
    xls.Workbooks.Open "Z:\PIECES COMPTABLES\" & [ID Accueilli simple] & ".xls"
    xls.Visible = True
    Exit Sub
    errHnd:
    MsgBox "Erreur N° " & Err.Number & vbLf & Err.Description, , Err.Source
    End Sub
     
    Private Sub Commande491_Click()
     
    Dim MonExcel As New Excel.Application
      MonExcel.Visible = True
      MonExcel.Workbooks.Open "Z:\PIECES COMPTABLES, SW_SHOWNORMAL\habitants90.xls"
     
    End Sub
     
    Private Sub Accéder_à_la_Facturation_Click()
     
        Dim nomfichier As Variant
        nomfichier = Forms![Détails de l'Accueilli Simple]![ID Accueilli simple]
     
        'DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=nomfichier", , acNormal
        DoCmd.DeleteObject acTable, "Liste Accueillis Simples"
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.DeleteObject acTable, "Accueilli sélectionné"
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.RunSavedImportExport "Exportation-Classeur1"
     
     
        'Dim nomfichier As Variant
        'nomfichier = Forms![Détails de l'Accueilli Simple]![ID Accueilli simple]
        Dim MonExcel As New Excel.Application
        MonExcel.Visible = True
        'On Error GoTo toto:
        'MonExcel.Workbooks.Open "Z:\communs\BASE DE DONNEES FNAAF\FACTURATION\" & nomfichier & ".xlsm"
        'GoTo tata
    toto:
        MonExcel.Workbooks.Add "Z:\FACTURATION\MACRO FACTURES FNAAF.xlsm"
    tata:
     
    End Sub
     
    Private Sub Commande492_Click()
    Dim nomfichier As Variant
    nomfichier = Forms![Détails de l'Accueilli Simple]![ID Accueilli simple]
    nomfichier = nomfichier * 1
     
    Dim MonExcel As New Excel.Application
      MonExcel.Visible = True
        On Error GoTo toto:
      MonExcel.Workbooks.Open "Z:\PIECES COMPTABLES\" & nomfichier & ".xlsm"
        GoTo tata
    toto:
        MsgBox "L'EXTRAIT N'EXISTE PAS ENCORE....        IL VOUS FAUT LANCER UNE PREMIERE FACTURATION SUR CET ACCUEILLI POUR LE CREER....        APPUYEZ SUR LE BOUTON ACCEDER A LA FACTURATION"
    tata:
     
    End Sub
     
    Private Sub Commande848_Click()
     
    Dim nomfichier As Variant
    nomfichier = Forms![Détails de l'Accueilli Simple]![ID Accueilli simple]
    Dim MonExcel As New Excel.Application
      MonExcel.Visible = True
      MonExcel.Workbooks.Open "Z:\PIECES COMPTABLES\" & nomfichier & ".xls"
    End Sub
     
     
    Private Sub Commande692_Click()
    On Error GoTo Macro5_Err
     
        Dim Accueillant
        [Accueillant] = [Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]
        [Accueillant] = [Accueillant] * 1
        'DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        DoCmd.DeleteObject acTable, "Liste Accueillis Simples"
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.DeleteObject acTable, "Accueilli sélectionné"
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
     
     
    Macro5_Exit:
        Exit Sub
     
    Macro5_Err:
        MsgBox "Erreur"
        Resume Macro5_Exit
     
     
    End Sub
     
    Private Sub Commande859_Click()
    Dim MonExcel As New Excel.Application
      MonExcel.Visible = True
      MonExcel.Workbooks.Open "Z:\PIECES COMPTABLES\INTERROGATION SOLDES ACCUEILLIS.xlsm"
     
    End Sub
     
    Private Sub Commande861_Click()
     
    Dim MonExcel As New Excel.Application
      MonExcel.Visible = True
      MonExcel.Workbooks.Open "Z:\Liste par Accueillis Accueillants Remplaçants.xlsx"
     
    End Sub
     
    Private Sub Indemnités_de_Sujétions_Particulières__Nbre_de_MG__Exit(Cancel As Integer)
    End Sub
     
    Private Sub Informations_sur_l_Accueillant_Click()
     
    End Sub
     
    Private Sub Mise_à_Jour_de_la_Base_de_Données_Click()
     
    ' bouton de sortie
     
    'RSRE Journalière
    Dim RJJ As Variant
    RJJ = Forms![Détails de l'Accueilli Simple]![RSRE Journalière]
    Me.[RSR Journalière] = RJJ
    ''Me.Refresh
    'RSRE Mensuelle
    Dim RJM As Variant
    RJM = Forms![Détails de l'Accueilli Simple]![RSRE Mensuelle]
    Me.[RSR Mensuelle] = RJM
    ''Me.Refresh
    'ICPE Journalière
    Dim RJCP As Variant
    RJCP = Forms![Détails de l'Accueilli Simple]![ICPE Journalière]
    Me.[ICP Journalière] = RJCP
    ''Me.Refresh
    'ICPE Mensuelle
    Dim RMCP As Variant
    RMCP = Forms![Détails de l'Accueilli Simple]![ICPE Mensuelle]
    Me.[ICP Mensuelle] = RMCP
    ''Me.Refresh
    'STBURE Journalière
    Dim STBJ As Variant
    STBJ = Forms![Détails de l'Accueilli Simple]![STBURE Journalière]
    Me.[STBUR Journalière] = STBJ
    ''Me.Refresh
    'STBURE Mensuelle
    Dim STBM As Variant
    STBM = Forms![Détails de l'Accueilli Simple]![STBURE Mensuelle]
    Me.[STBUR Mensuelle] = STBM
    ''Me.Refresh
    'ISPE Journalière
    Dim SPJ As Variant
    SPJ = Forms![Détails de l'Accueilli Simple]![ISPE Journalière]
    Me.[ISP Journalière] = SPJ
    ''Me.Refresh
    'ISPE Mensuelle
    Dim SPM As Variant
    SPM = Forms![Détails de l'Accueilli Simple]![ISPE Mensuelle]
    Me.[ISP Mensuelle] = SPM
    ''Me.Refresh
    'FECSPE Journalière
    Dim VFECSPEQ As Variant
    VFECSPEQ = Forms![Détails de l'Accueilli Simple]![FECSPE Journalière]
    Me.[FECSP Journalière] = VFECSPEQ
    ''Me.Refresh
    'FECSPE Mensuelle
    Dim VVFECSPE As Variant
    VVFECSPE = Forms![Détails de l'Accueilli Simple]![FECSPE Mensuelle]
    Me.[FECSP Mensuelle] = VVFECSPE
    ''Me.Refresh
    'FECAPE Journalière
    Dim VFECAPE As Variant
    VFECAPE = Forms![Détails de l'Accueilli Simple]![FECAPE Journalière]
    Me.[FECAP Journalière] = VFECAPE
    ''Me.Refresh
    'FECAPE Mensuelle
    Dim VVFECAPE As Variant
    VVFECAPE = Forms![Détails de l'Accueilli Simple]![FECAPE Mensuelle]
    Me.[FECAP Mensuelle] = VVFECAPE
    ''Me.Refresh
    'IMDPRE Journalière
    Dim VIMDPRE As Variant
    VIMDPRE = Forms![Détails de l'Accueilli Simple]![IMDPRE Journalière]
    Me.[IMDPR Journalière] = VIMDPRE
    ''Me.Refresh
    'IMDPRE Mensuelle
    Dim VVIMDPRE As Variant
    VVIMDPRE = Forms![Détails de l'Accueilli Simple]![IMDPRE Mensuelle]
    Me.[IMDPR Mensuelle] = VVIMDPRE
    ''Me.Refresh
    'MTSPE Journalière
    Dim VMTSPE As Variant
    VMTSPE = Forms![Détails de l'Accueilli Simple]![MTSPE Journalière]
    Me.[MTSP Journalière] = VMTSPE
    ''Me.Refresh
    'MTSPE Mensuelle
    Dim VVMTSPE As Variant
    VVMTSPE = Forms![Détails de l'Accueilli Simple]![MTSPE Mensuelle]
    Me.[MTSP Mensuelle] = VVMTSPE
    ''Me.Refresh
    'MTAPE Journalière
    Dim VMTAPE As Variant
    VMTAPE = Forms![Détails de l'Accueilli Simple]![MTAPE Journalière]
    Me.[MTAP Journalière] = VMTAPE
    ''Me.Refresh
    'MTAPE Mensuelle
    Dim VVMTAPE As Variant
    VVMTAPE = Forms![Détails de l'Accueilli Simple]![MTAPE Mensuelle]
    Me.[MTAP Mensuelle] = VVMTAPE
    ''Me.Refresh
    'FAE Journalière
    Dim VFAE As Variant
    VFAE = Forms![Détails de l'Accueilli Simple]![FAE Journalière]
    Me.[FA Journalière] = VFAE
    ''Me.Refresh
    'FAE Mensuelle
    Dim VVFAE As Variant
    VVFAE = Forms![Détails de l'Accueilli Simple]![FAE Mensuelle]
    Me.[FA Mensuelle] = VVFAE
    ''Me.Refresh
     
    'TAUX SALARIAL BRUT
    Dim TSB As Variant
     
    TSB = Forms![Détails de l'Accueilli Simple]![TAUX SALARIAL BRUT]
    Me.[TTAUX SALARIAL BRUT] = TSB
    ''Me.Refresh
     
    'TAUX SALARIAL BRUT ABATTU
    Dim TSBA As Variant
    TSBA = Forms![Détails de l'Accueilli Simple]![TAUX SALARIAL BRUT ABATTU]
    Me.[TTAUX SALARIAL BRUT ABATTU] = TSBA
    ''Me.Refresh
     
    'TAUX PATRONAL BRUT
    Dim TSBB As Variant
    TSBB = Forms![Détails de l'Accueilli Simple]![TAUX PATRONAL BRUT]
    Me.[TTAUX PATRONAL BRUT] = TSBB
    ''Me.Refresh
     
    'TAUX PATRONAL BRUT ABATTU
    Dim TSBAA As Variant
    TSBAA = Forms![Détails de l'Accueilli Simple]![TAUX PATRONAL BRUT ABATTU]
    Me.[TTAUX PATRONAL BRUT ABATTU] = TSBAA
    ''Me.Refresh
     
    'URSSAF Part Salariale
    Dim VURSSAFPS As Variant
    VURSSAFPS = Forms![Détails de l'Accueilli Simple]![URSSAF Part Salariale]
    Me.[TURSSAF Part Salariale] = VURSSAFPS
    'Me.Refresh
     
    'URSSAF Part Patronale
    Dim VURSSAFPP As Variant
    VURSSAFPP = Forms![Détails de l'Accueilli Simple]![URSSAF Part Patronale]
    Me.[TURSSAF Part Patronale] = VURSSAFPP
    'Me.Refresh
     
    'URSSAF Cotisation Totale
    Dim VURSSAFCT As Variant
    VURSSAFCT = Forms![Détails de l'Accueilli Simple]![URSSAF Cotisation Totale]
    Me.[TURSSAF Cotisation Totale] = VURSSAFCT
    'Me.Refresh
     
     
    'MTSPEUR Journalière
    Dim VMTSPEUR As Variant
    VMTSPEUR = Forms![Détails de l'Accueilli Simple]![MTSPEUR Journalière]
    Me.[TMTSPEUR Journalière] = VMTSPEUR
    'Me.Refresh
    'MTSPEUR Mensuelle
    Dim VVMTSPEUR As Variant
    VVMTSPEUR = Forms![Détails de l'Accueilli Simple]![MTSPEUR Mensuelle]
    Me.[TMTSPEUR Mensuelle] = VVMTSPEUR
    'Me.Refresh
    'MTAPEUR Journalière
    Dim VMTAPEUR As Variant
    VMTAPEUR = Forms![Détails de l'Accueilli Simple]![MTAPEUR Journalière]
    Me.[TMTAPEUR Journalière] = VMTAPEUR
    'Me.Refresh
    'MTAPEUR Mensuelle
    Dim VVMTAPEUR As Variant
    VVMTAPEUR = Forms![Détails de l'Accueilli Simple]![MTAPEUR Mensuelle]
    Me.[TMTAPEUR Mensuelle] = VVMTAPEUR
    'Me.Refresh
     
    'Cotisation Proportionnelle
    Dim CPPNLE As Variant
    CPPNLE = Forms![Détails de l'Accueilli Simple]![Cotisation Proportionnelle]
    Me.[TCotisation Proportionnelle] = CPPNLE
    'Me.Refresh
     
     
    End Sub
     
    Private Sub Mise_à_Jour_de_la_Base_de_Données_Exit(Cancel As Integer)
     
    End Sub
     
    Private Sub Ville_Exit(Cancel As Integer)
     
    Dim VVFCP As String
    VVFCP = Forms![Détails de l'Accueilli Simple]![Communes_C_POSTAL]
    Me.[C_Postal  de l'Unité d'Accueil] = VVFCP
    ''Me.Refresh
     
    Dim VVFDE As String
    VVFDE = Forms![Détails de l'Accueilli Simple]![DEPARTEMENT]
    Me.[Département  de l'Unité d'Accueil] = VVFDE
    ''Me.Refresh
     
    Dim VVFRE As String
    VVFRE = Forms![Détails de l'Accueilli Simple]![REGION]
    Me.[Région  de l'Unité d'Accueil] = VVFRE
    ''Me.Refresh
     
     
    End Sub
     
    Private Sub Ville_Facturation_Exit(Cancel As Integer)
    Dim VVFCPfa As String
    VVFCPfa = Forms![Détails de l'Accueilli Simple]![cp]
    Me.[C_Postal  Facturation] = VVFCPfa
    'Me.Refresh
     
    End Sub

  5. #5
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Effectivement,

    Cela n'a pas l'air très bien écrit et on doit pouvoir simplifier.
    Mais ce n'est pas une mince tâche.
    Surtout sans avoir la base sous les yeux

    Déjà première chose, le nom de la macro ou de la fonction n'est vraiment pas du tout parlant.
    C'est parcequ'il n'a pas donné de nom a son bouton

    Ensuite, pourquoi la deuxième ligne sur erreur il va à la fonction Macro5_Err.
    Il met une gestion d'erreur pour éviter de faire planter, mais ne gère pas l'erreur. Donc si une erreur se produit, on ne sait ni ou ni ce qui s'est passé et surtout on ne fait rien
    Bref sortie intempestif du code sans savoir ce qui a été fait ni pas fait mais juste le message "erreur"

    Ceci étant le code semble servir uniquement à ouvrir un formulaire et à créer a la volé semble t'il deux table qui doivent être des table de travail temporaire

    Il détruits les tables "Liste Accueillis Simples" et "Accueilli sélectionné" et les recrée dans la foulé surement avec des information et des paramètre contenus dans ses requête création de table.

    Normalement la requête création de table écrase la table déjà existante, mais demande une confirmation. je suppose que comme il n'a pas pu intercepté le message c'est pour cela qu'il détruit la table avant.
    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Docmd.setWarnings False
    Aurais pu éviter ce genre de suppression. Mai bref une syntaxe ou une autre l'essentiel c'est que cela marche

    Mais plutôt que de supprimer un objet et de le recréer a chaque fois, je préfère exécuter une requête suppression, pour vider ma table et ensuite une requête Insert pour la remplir. Mais le résultat final est le même.

    En résumé ce code n'est pas des plus propre pour moi, mais a le mérite de fonctionner.
    Seule la gestion d'erreur ne semble pas très convaincante
    Ni l'utilisation de la variable [Acceuillant] ?
    A moins qu'il existe un champ [Acceuillant] dans le formulaire ???

    J'écrirais donc plutôt, pour éviter de désactiver les alerte au niveau complet de la base :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande692_Click()
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    Maintenant la question que l'on peut se poser, c'est pourquoi des tables temporaires ? N'y avait'il pas d'autre solution ?
    Mais pour pouvoir répondre, il faudrait pouvoir auditer la base au complet, comprendre son fonctionnement, et voir si certains traitement ne pourrait pas être supprimer ou simplifier.
    Mais la c'est un véritable travail et plus une aide proposée par ce forum pour déloquer des situations

    Il va falloir poser des questions et des questions a chaque fois sur des posts différents, problème par problème pour comprendre ta base.

    Pour le deuxième code, nous n'avons pas forécement le temps de tout lire et de tout analyser.
    En revanche si lors d'une exécution, il y a un plantage ou un message d'erreur, la nous pourrons t'aider et répondre à ta question.

    PS : Tu es sur quelle région ?
    @+


    Pensez au tag

  6. #6
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Didier L Voir le message

    Ceci étant le code semble servir uniquement à ouvrir un formulaire et à créer a la volé semble t'il deux table qui doivent être des table de travail temporaire
    Oui c'est effectivement ça. Je pense que l'on doit pouvoir afficher le 2e formulaire en récupérant juste les infos de l'accueillant dans le formulaire de l'accueilli.

    Exemple : Y est chez X, je clique, j'affiche le formulaire contenant les infos de X en récupérant les infos du précédent formulaires ?

    Voici la 1ere requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Accueillis Simples].[ID Accueilli simple], [Accueillis Simples].Civilité, [Accueillis Simples].Prénom, [Accueillis Simples].Nom INTO [Liste Accueillis Simples]
    FROM [Accueillis Simples]
    WHERE ((([Accueillis Simples].[ID Accueilli simple])=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]));
    La 2e requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT [Accueillis Simples (étendu)].[ID Accueilli simple], [Accueillis Simples (étendu)].[Nom de l'Accueilli simple], [Accueillis Simples (étendu)].Civilité, [Accueillis Simples (étendu)].Prénom, [Accueillis Simples (étendu)].Nom, [Accueillis Simples].[Famille Naturelle Tuteur].Value, [Accueillis Simples].[Civilité Facturation], [Accueillis Simples].[Prénom Facturation], [Accueillis Simples].[Nom Facturation], [Accueillis Simples].[Adresse Facturation], [Accueillis Simples].[Adresse Facturation2], [Accueillis Simples].[C_Postal  Facturation] AS [Code Postal  Facturation], [France Complète].COMMUNE AS [Ville  Facturation], [Accueillis Simples (étendu)].[Montant Fixe Mensuel] AS [Montant Fixe FG], [Accueillis Simples (étendu)].[Pourcentage Mensuel Base Rémunération] AS [Pourcentage Cotisation FG], [Accueillis Simples (étendu)].[TCotisation Proportionnelle] AS [Montant Cotisation FG Proportionnelle], [Accueillis Simples (étendu)].[N° de Cotisant URSSAF], [Accueillis Simples (étendu)].[N° Siret], [Accueillis Simples (étendu)].[Valeur du SMIC], [Accueillis Simples (étendu)].[Valeur du MG], [Accueillis Simples (étendu)].[Personne prise en charge dans une institution] AS [Prise en charge dans une institution], [Accueillis Simples (étendu)].[Rémunération p/ Services Rendus (Nbre de SMIC)], [Accueillis Simples (étendu)].[Indemnités de Sujétions Particulières (Nbre de MG)], [Accueillis Simples (étendu)].[Frais d'Entretien Courant SANS Prise en Charge (Nbre de MG)], [Accueillis Simples (étendu)].[Frais d'Entretien Courant AVEC Prise en Charge (Nbre de MG)], [Accueillis Simples].[IMDPR Journalière], [Accueillis Simples (étendu)].[Frais Annexes], [Accueillis Simples (étendu)].[URSSAF Part Salariale], [Accueillis Simples (étendu)].[URSSAF Part Patronale], [Accueillis Simples (étendu)].[URSSAF Cotisation Totale], [Accueillants Familiaux].[ID Accueillant Familial], [Accueillants Familiaux].[Civilité AF], [Accueillants Familiaux].[Prénom AF], [Accueillants Familiaux].[Nom AF], [Accueillants Familiaux].[Adresse AF], [Accueillants Familiaux].[Adresse AF2], [Accueillis Simples].[C_Postal  de l'Unité d'Accueil], [France Complète_1].COMMUNE AS [Ville de l'Unité d'Accueil], [Accueillis Simples].[Département  de l'Unité d'Accueil], [Accueillis Simples].[Région  de l'Unité d'Accueil], [Accueillis Simples].[Accueillant Familial], [Accueillis Simples (étendu)].[Montant de l'allocation APL], [Accueillis Simples].[Date de naissance], [Liste des Départements d'origine].DEPARTEMENT AS [Département de naissance], [Accueillis Simples (étendu)].[Date d'entrée], [Accueillis Simples (étendu)].[Date de sortie] INTO [Accueilli sélectionné]
    FROM ((([Accueillants Familiaux] RIGHT JOIN ([Accueillis Simples] LEFT JOIN [Accueillis Simples (étendu)] ON [Accueillis Simples].ID = [Accueillis Simples (étendu)].ID) ON [Accueillants Familiaux].ID = [Accueillis Simples].[Accueillant Familial]) LEFT JOIN [France Complète] ON [Accueillis Simples].[Ville Facturation] = [France Complète].ID) LEFT JOIN [France Complète] AS [France Complète_1] ON [Accueillis Simples (étendu)].[Ville de l'Unité d'Accueil] = [France Complète_1].ID) LEFT JOIN [Liste des Départements d'origine] ON [Accueillis Simples].[Département d'origine] = [Liste des Départements d'origine].ID
    WHERE ((([Accueillis Simples].ID)=[Formulaires]![Détails de l'Accueilli Simple]![ID]));
    Et là, je dois m'accrocher, car il va chercher une requête "Accueillis Simples (étendu)" qui est ni plus ni moins que la table Accueillis Simples en relation avec Accueillant familiaux (étendu) et deux fois France complète, pour récupérer les informations.


    Citation Envoyé par Didier L Voir le message
    PS : Tu es sur quelle région ?
    Je suis en Métropole Lilloise.

    Par contre, je peux mettre à dispo la base sur laquelle je travail qui est une copie, car j'ai réussi à la passer de 280 Mo à 45 Mo en faisant un tri dans des doublons de doublons et j'en passe des meilleurs.

    Merci pour ton aide précieuse Didier.


    @+
    Aurélien.

  7. #7
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Le plus simple pour la base c'est de te l'envoyer avec WeTransfert et ensuite de copier le lien pour la récupérer dans ce post.
    J'essayerai de la regarder à temps perdu pour t'assister au maximum, mais il va falloir, bien commencer par un bout.
    Donc il faudra surement ensuite échanger par MP pour ne pas polluer le post. si nous trouvons des solution technique intéressante, cela vaudra le coup ensuite de les mettre dans le post.Mais il y aura surement des échanges stériles pour le forum, car j'aurais surement des question de pure fonctionnement pour comprendre la base.
    @+


    Pensez au tag

  8. #8
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Le plus simple pour la base c'est de te l'envoyer avec WeTransfert et ensuite de copier le lien pour la récupérer dans ce post.
    J'essayerai de la regarder à temps perdu pour t'assister au maximum, mais il va falloir, bien commencer par un bout.
    Donc il faudra surement ensuite échanger par MP pour ne pas polluer le post. si nous trouvons des solution technique intéressante, cela vaudra le coup ensuite de les mettre dans le post.Mais il y aura surement des échanges stériles pour le forum, car j'aurais surement des question de pure fonctionnement pour comprendre la base.
    Merci Didier,

    Voici un lien a la date de ce jour. http://ovh.to/Z4pt32j

    Répondre à tes questions, je pourrais suivant ce que je sais car au fur et à mesure, je pose mes propres questions à celui qui l'utilise depuis le début.
    Pour la suite des échanges, soit par MP ou tout autre moyen me convient.

  9. #9
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    J'ai récupéré la base
    Je jette un coup d’œil dessus la semaine prochaine car je ne suis pas dispo ce week-end

    On reprend la discussion ensuite en MP
    @+


    Pensez au tag

  10. #10
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Bien. Pas de soucis, faut profiter du Week-end de pâques.

    Je vais profiter aussi et me changer les idées un peu.

  11. #11
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Je remet un lien vers la base car celle plus déconne à l'ouverture du formulaire.

    http://ovh.to/BXaS9WX

  12. #12
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Ok
    @+


    Pensez au tag

  13. #13
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Salut Didier,

    Je te joins un fichier Excel pour rajouter une table nécessaire au bon fonctionnement de la base. En effet, dans mon nettoyage, je n'ai pas vérifié les dépendances de cette table.

    Liste des Départements d'origine.xlsx

    Pour la modification du code que tu propose plus, cela fonctionne mais il faut garder la première que je rajoute ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub Commande692_Click()
        DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    Le hic, c'est que l'affichage du formulaire de l'accueillant correspondant ne s'affiche pas instantanément.

    En remplaçant, la première ligne par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Accueillant
        [Accueillant] = [Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]
        [Accueillant] = [Accueillant] * 1
    Cela fonctionne aussi. Mais toujours long.

    Avant de me pencher sur les deux, requêtes, j'ai vraiment du mal à comprendre la logique de ce concepteur.

    Pour afficher l'accueillant familiale, il récupère "l'ID de l'accueilli" sur le formulaire d'information de l'accueilli qui affiche plusieurs information dont le nom et l'id de l'accueillant. Pourquoi ne pas récupérer l'ID de l'accueillant pour afficher les informations de l'accueillant dans son formulaire ? Ce qui serai plus logique. A moins que l'on est besoin des infos de l'accueilli pour lancer la création du Bulletin de l'accueillant. Dans ce cas, je comprendrai mieux mais c'est pas le chemin le plus rapide et je pense que la solution de que je pense et plus rapide et simple, suffirait de stocker les informations de l'accueilli en dans des variables temporaires ?

    Je lance des idées, je sais pas trop.

    Je vais me pencher sur les deux requêtes pour voir si on peut les simplifier.

  14. #14
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Le week-end a été long

    Merci pour le ien, je regarde cela dans l'après midi
    @+


    Pensez au tag

  15. #15
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonjour,

    Pas simple effectivement de comprendre ce qu'il voulait faire ??

    Première question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande692_Click()
        DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    Dans ce code la première ligne ne sert à rien car tu ré ouvre le formulaire sur lequel tu te trouve ?
    Aucun intérêt

    Ensuite, je ne vois pas dans le formulaire "Détails de l'Accueillant Familial" ou il se sert des table temporaires créées par les deux requêtes actions ?

    Peux t'on essayer de mettre ces lignes de code en commentaire pour voir éventuellement quelles informations manqueront ?

    La base semble pourtant simple, mais créée comme une usine a gaz !

    Toutes ces tables, toutes ces requêtes pour 3 malheureux formulaires ??
    je pense qu'il y a beaucoup de ménage à faire aussi dans le code

    Par exemple ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Ville_Exit(Cancel As Integer)
    Dim VVFCP As String
    VVFCP = Forms![Détails de l'Accueilli Simple]![Communes_C_POSTAL]
    Me.[C_Postal  de l'Unité d'Accueil] = VVFCP
    ''Me.Refresh
    Dim VVFDE As String
    VVFDE = Forms![Détails de l'Accueilli Simple]![DEPARTEMENT]
    Me.[Département  de l'Unité d'Accueil] = VVFDE
    ''Me.Refresh
    Dim VVFRE As String
    VVFRE = Forms![Détails de l'Accueilli Simple]![REGION]
    Me.[Région  de l'Unité d'Accueil] = VVFRE
    ''Me.Refresh
    End Sub
    Nous nous trouvons dans le formulaire "Détails de l'Accueilli Simple" qui est ouvert. Donc Me représente aussi le même formulaire. on pourrait donc écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Ville_Exit(Cancel As Integer)
    [C_Postal  de l'Unité d'Accueil] = [Communes_C_POSTAL]
    [Département  de l'Unité d'Accueil] = [DEPARTEMENT]
    [Région  de l'Unité d'Accueil] = [REGION]
    End Sub
    Et des comme cela il y en a à la pelle

    Déjà nettoyer le code le rendrai plus simple et plus lisible et on percevrai mieux ce qu'ils voulais faire ou plus simple, importer ses formulaires, effacer tout le code et tout réécrire

    Mais je pense que même la structure n'est pas forcément "propre".

    Bien souvent, des programmeurs, débutant ou stagiaire, complexifie leur base de données, pour contourner des problèmes auquel ils n'ont pas trouvé de solution, alors que souvent la solution est plus simple!

    Il faudrait reprendre l'appli bout a bout depuis le début et essayer de simplifier au max, mais je ne voies pas comment t'aider pour le moment.
    N’hésite pas à me poser tes questions les unes après les autres, et le plus précisément possible, par rapport à un problème simple. et nous avancerons peut-être petit a petit.

    Bon courage
    @+


    Pensez au tag

  16. #16
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Bonjour,

    Pas simple effectivement de comprendre ce qu'il voulait faire ??

    Première question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Commande692_Click()
        DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    Dans ce code la première ligne ne sert à rien car tu ré ouvre le formulaire sur lequel tu te trouve ?
    Aucun intérêt
    ça va, j'avais bien compris la 1ere ligne.

    Citation Envoyé par Didier L Voir le message
    Ensuite, je ne vois pas dans le formulaire "Détails de l'Accueillant Familial" ou il se sert des table temporaires créées par les deux requêtes actions ?
    Je n'ai pas pensé à regarder. Mais ça ne m'étonne pas plus que cela...

    Citation Envoyé par Didier L Voir le message
    Peux t'on essayer de mettre ces lignes de code en commentaire pour voir éventuellement quelles informations manqueront ?
    Le 6 Avril, j'avais fait les tests mais cela n'était pas concluant (voir mon poste de cette date plus

    Citation Envoyé par Didier L Voir le message
    La base semble pourtant simple, mais créée comme une usine a gaz !

    Toutes ces tables, toutes ces requêtes pour 3 malheureux formulaires ??
    Attention, affiche bien les objets cachés. Car il y a des surprises.

    Citation Envoyé par Didier L Voir le message
    Je pense qu'il y a beaucoup de ménage à faire aussi dans le code
    Oui, et je pense même que de le nettoyer et réutiliser comme base de travail dans la nouvelle base que je suis entrain de faire.

    Citation Envoyé par Didier L Voir le message
    Par exemple ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Ville_Exit(Cancel As Integer)
    Dim VVFCP As String
    VVFCP = Forms![Détails de l'Accueilli Simple]![Communes_C_POSTAL]
    Me.[C_Postal  de l'Unité d'Accueil] = VVFCP
    ''Me.Refresh
    Dim VVFDE As String
    VVFDE = Forms![Détails de l'Accueilli Simple]![DEPARTEMENT]
    Me.[Département  de l'Unité d'Accueil] = VVFDE
    ''Me.Refresh
    Dim VVFRE As String
    VVFRE = Forms![Détails de l'Accueilli Simple]![REGION]
    Me.[Région  de l'Unité d'Accueil] = VVFRE
    ''Me.Refresh
    End Sub
    Nous nous trouvons dans le formulaire "Détails de l'Accueilli Simple" qui est ouvert. Donc Me représente aussi le même formulaire. on pourrait donc écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Ville_Exit(Cancel As Integer)
    [C_Postal  de l'Unité d'Accueil] = [Communes_C_POSTAL]
    [Département  de l'Unité d'Accueil] = [DEPARTEMENT]
    [Région  de l'Unité d'Accueil] = [REGION]
    End Sub
    Et des comme cela il y en a à la pelle

    Déjà nettoyer le code le rendrai plus simple et plus lisible et on percevrai mieux ce qu'ils voulais faire ou plus simple, importer ses formulaires, effacer tout le code et tout réécrire
    Merci pour la nouvelle explication. Je vais faire le nécessaire sur celle que j'ai.

    Et je n'hésiterai pas venir te poser des questions. Je vais tester ce dimanche pour l'ouverture du formulaire et nettoyer le code comme tu me l'a expliqué.

    Merci Didier.

  17. #17
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Bonjour Didier,

    Je reviens pour l'ouverture du formulaire de l'Accueillant.

    Actuellement, la macro écrite de cette façon fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Commande692_Click()
        'Dim Accueillant
        '[Accueillant] = [Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]
        '[Accueillant] = [Accueillant] * 1
        'DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        'DoCmd.DeleteObject acTable, "Liste Accueillis Simples"
        DoCmd.SetWarnings False
        DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        'DoCmd.DeleteObject acTable, "Accueilli sélectionné"
        DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    Donc les 5 premières lignes comme tu le disait plus haut, ne sont pas nécessaire.

    La première requête "Liste Accueillis Simples Création" créé bien une table temporaire que tu vois sur mon screeshoot ci-dessous. L'ancienne avec off à la fin, la nouvelle avec son contenu venant de la requête.

    Nom : R1_2015-04-15_164913.png
Affichages : 1378
Taille : 16,7 Ko

    Il doit bien avoir la possibilité d'afficher le formulaire de l’accueillant sans devoir stocker les informations de l'accueilli dans une table temporaire ?

    Par contre la deuxième requête, la table temporaire c'est "Accueilli sélectionné" qui reprend plusieurs informations. J'avoue que la requête est imbuvable.

    Mais pourquoi exécuter deux requêtes complètement différentes pour afficher simplement les informations de l'accueillant ainsi que celle de l'accueilli.

    J'affiche la deuxième requête sous forme SQL réorganisé sous notepad++ mais avec les espaces et apostrophes c'est pas top mais c'est déjà plus claire pour moi (venant de la prog php et mysql, ça me parle un peu plus).

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    SELECT [Accueillis Simples (étendu)].[ID Accueilli simple],
           [Accueillis Simples (étendu)].[Nom de l'Accueilli simple],
           [Accueillis Simples (étendu)].Civilité,
           [Accueillis Simples (étendu)].Prénom,
           [Accueillis Simples (étendu)].Nom,
           [Accueillis Simples].[Famille Naturelle Tuteur].Value,
           [Accueillis Simples].[Civilité Facturation],
           [Accueillis Simples].[Prénom Facturation], 
           [Accueillis Simples].[Nom Facturation], 
           [Accueillis Simples].[Adresse Facturation], 
           [Accueillis Simples].[Adresse Facturation2], 
           [Accueillis Simples].[C_Postal  Facturation] AS [Code Postal  Facturation], 
           [France Complète].COMMUNE AS [Ville  Facturation], 
           [Accueillis Simples (étendu)].[Montant Fixe Mensuel] AS [Montant Fixe FG], 
           [Accueillis Simples (étendu)].[Pourcentage Mensuel Base Rémunération] AS [Pourcentage Cotisation FG], 
           [Accueillis Simples (étendu)].[TCotisation Proportionnelle] AS [Montant Cotisation FG Proportionnelle], 
           [Accueillis Simples (étendu)].[N° de Cotisant URSSAF], [Accueillis Simples (étendu)].[N° Siret],
           [Accueillis Simples (étendu)].[Valeur du SMIC], [Accueillis Simples (étendu)].[Valeur du MG], 
           [Accueillis Simples (étendu)].[Personne prise en charge dans une institution] AS [Prise en charge dans une institution],
           [Accueillis Simples (étendu)].[Rémunération p/ Services Rendus (Nbre de SMIC)], 
           [Accueillis Simples (étendu)].[Indemnités de Sujétions Particulières (Nbre de MG)],
           [Accueillis Simples (étendu)].[Frais d'Entretien Courant SANS Prise en Charge (Nbre de MG)],
           [Accueillis Simples (étendu)].[Frais d'Entretien Courant AVEC Prise en Charge (Nbre de MG)],
           [Accueillis Simples].[IMDPR Journalière], 
           [Accueillis Simples (étendu)].[Frais Annexes], 
           [Accueillis Simples (étendu)].[URSSAF Part Salariale], 
           [Accueillis Simples (étendu)].[URSSAF Part Patronale], 
           [Accueillis Simples (étendu)].[URSSAF Cotisation Totale], 
           [Accueillants Familiaux].[ID Accueillant Familial], 
           [Accueillants Familiaux].[Civilité AF], [Accueillants Familiaux].[Prénom AF], 
           [Accueillants Familiaux].[Nom AF], [Accueillants Familiaux].[Adresse AF], 
           [Accueillants Familiaux].[Adresse AF2], 
           [Accueillis Simples].[C_Postal  de l'Unité d'Accueil], 
           [France Complète_1].COMMUNE AS [Ville de l'Unité d'Accueil], 
           [Accueillis Simples].[Département  de l'Unité d'Accueil], 
           [Accueillis Simples].[Région  de l'Unité d'Accueil],
           [Accueillis Simples].[Accueillant Familial], 
           [Accueillis Simples (étendu)].[Montant de l'allocation APL], 
           [Accueillis Simples].[Date de naissance], 
     
    [Liste des Départements d'origine].DEPARTEMENT AS [Département de naissance], 
           [Accueillis Simples (étendu)].[Date d'entrée], 
           [Accueillis Simples (étendu)].[Date de sortie]
     
           INTO
           [Accueilli sélectionné]
     
           FROM (
                    (
                        (
                            [Accueillants Familiaux] 
                            RIGHT JOIN 
                            (
                                [Accueillis Simples] LEFT JOIN [Accueillis Simples (étendu)]
                                ON [Accueillis Simples].ID = [Accueillis Simples (étendu)].ID
                            )
                            ON [Accueillants Familiaux].ID = [Accueillis Simples].[Accueillant Familial]
                        ) 
                        LEFT JOIN [France Complète]
                        ON [Accueillis Simples].[Ville Facturation] = [France Complète].ID
                    )
                    LEFT JOIN [France Complète] AS [France Complète_1]
                    ON [Accueillis Simples (étendu)].[Ville de l'Unité d'Accueil] = [France Complète_1].ID
                ) 
                LEFT JOIN 
    [Liste des Départements d'origine]
                ON [Accueillis Simples].[Département d'origine] = 
    [Liste des Départements d'origine].ID
     
                WHERE
                (
                    (
                        ([Accueillis Simples].ID)=[Formulaires]![Détails de l'Accueilli Simple]![ID]
                    )
     
                );
    Plusieurs questions en découle :

    1 - Pourquoi dans la sélection des champs requis, j'ai deux tables : "Accueillis Simples étendu" et "Accueillis simples" ? Alors que je ne vois aucune table étendu ?
    2 - Tous ces champs, il les insert bien dans la table "Accueilli sélectionné temporaire" venant de jointures différentes qui pour moi sont redondantes.
    3 - La condition du WHERE qui n'est autre que l'ID de l'accueilli donc le Numéro de SS, ne peut pas être simplifié ? Ou on est obligé de préciser que cela vient du formulaire et nom de la table correspondante ?
    4 - La variable ID du formulaire Détails de l'Accueilli Simple correspond à quoi ?

    Je vais recréer cette requette en suppriment/remplaçant les étendues, d'une part car il va chercher des informations qu'il peut récupérer dans la première jointure.

    C'est un sacrée casse-tête !

    PS : j'ai modifié la sélection des champs en ne prenant que dans la table Accueillis Simples, cela fonctionne aussi. Je n'ai pas touché aux jointures. Si tu pouvais m'aider à les simplifier ?

  18. #18
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    Bonsoir,

    1 - Pourquoi dans la sélection des champs requis, j'ai deux tables : "Accueillis Simples étendu" et "Accueillis simples" ? Alors que je ne vois aucune table étendu ?
    Tu ne vois aucune table étendu car ce n'est pas une table mais une requête

    Pour moi, après avoir analysé le formulaire "Détails de l'Accueillant Familial" les deux requêtes création de table ne servent à rien pour ce formulaire.
    J'essayerai bien de les mettre aussi en commentaire et de vider les deux table temporaire ou de les supprimer, afin de voir comment le programme se comporte et si cela Bug quelque part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Commande692_Click()
        'Dim Accueillant
        '[Accueillant] = [Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]
        '[Accueillant] = [Accueillant] * 1
        'DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        'DoCmd.DeleteObject acTable, "Liste Accueillis Simples"
        'DoCmd.SetWarnings False
        'DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        'DoCmd.DeleteObject acTable, "Accueilli sélectionné"
        'DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        'DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    4 - La variable ID du formulaire Détails de l'Accueilli Simple correspond à quoi ?
    Je ne sais pas si tu parle de cette variable, utilisée dans la condition where de la requête, mais en tous cas elle ne semble pas exister dans le formulaire "Détails de l'Accueilli Simple"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WHERE
                (
                    (
                        ([Accueillis Simples].ID)=[Formulaires]![Détails de l'Accueilli Simple]![ID]
                    )
     
                );

    C'est un sacrée casse-tête !
    Ce n'est rien de le dire
    Et en restant poli, je dirai que c'est mais un gros B..

    Merci au créateur
    @+


    Pensez au tag

  19. #19
    Membre à l'essai
    Homme Profil pro
    Almeyric
    Inscrit en
    Octobre 2014
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2014
    Messages : 53
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par Didier L Voir le message
    Bonsoir,



    Tu ne vois aucune table étendu car ce n'est pas une table mais une requête

    Pour moi, après avoir analysé le formulaire "Détails de l'Accueillant Familial" les deux requêtes création de table ne servent à rien pour ce formulaire.
    J'essayerai bien de les mettre aussi en commentaire et de vider les deux table temporaire ou de les supprimer, afin de voir comment le programme se comporte et si cela Bug quelque part

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Commande692_Click()
        'Dim Accueillant
        '[Accueillant] = [Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]
        '[Accueillant] = [Accueillant] * 1
        'DoCmd.OpenForm "Détails de l'Accueilli Simple", acNormal, "", "[ID Accueilli simple]=[Forms]![Détails de l'Accueilli Simple]![ID Accueilli simple]", , acNormal
        'DoCmd.DeleteObject acTable, "Liste Accueillis Simples"
        'DoCmd.SetWarnings False
        'DoCmd.OpenQuery "Liste Accueillis Simples Création", acViewNormal, acAdd
        'DoCmd.DeleteObject acTable, "Accueilli sélectionné"
        'DoCmd.OpenQuery "Liste Accueilli sélectionné Création", acViewNormal, acAdd
        'DoCmd.SetWarnings True
        DoCmd.OpenForm "Détails de l'Accueillant Familial", acNormal, "", "[ID]=[Forms]![Détails de l'Accueilli Simple]![Modifiable248]", , acNormal
    End Sub
    Et ben surpprise, cela fonctionne. J'en ai même profiter pour modifier [Modifiable248] qui ne représente rien, en Liste_Nom_AF.


    Citation Envoyé par Didier L Voir le message
    Je ne sais pas si tu parle de cette variable, utilisée dans la condition where de la requête, mais en tous cas elle ne semble pas exister dans le formulaire "Détails de l'Accueilli Simple"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    WHERE
                (
                    (
                        ([Accueillis Simples].ID)=[Formulaires]![Détails de l'Accueilli Simple]![ID]
                    )
     
                );
    Oui, c'est bien cela. Et comme la requête ne sert à rien, je vais pouvoir supprimer les requêtes et tables. Cela va alléger la BDD. De plus, j'ai supprimer les boutons qui ne servent à rien sur les formulaires, je vais faire un tri dans le code VB qui ne sert pas, les formulaires et tables dont on a pas besoin. Ce qui devrait bien alléger la BDD et la recompacter.


    Citation Envoyé par Didier L Voir le message
    Ce n'est rien de le dire
    Et en restant poli, je dirai que c'est mais un gros B..

    Merci au créateur
    Que dire de plus...

    En tout cas, ça avance petit à petit. Je aussi remplacer le code de mise à jour de la BDD., ça fait nettement plus propre et moins lourd. Par contre, pas testé le fonctionnement.

  20. #20
    Membre éclairé
    Avatar de Didier L
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2004
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 503
    Points : 806
    Points
    806
    Par défaut
    C'est sur qu'en nettoyant, on risque parfois de casser quelque petits trucs, mais on pourra plus facilement les corriger et les réparer
    @+


    Pensez au tag

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AC-2013] [Tuto] Base de données d'exemple - Gestion des bugs de projets
    Par vduvernet dans le forum Contribuez
    Réponses: 4
    Dernier message: 16/11/2014, 23h08
  2. Réponses: 1
    Dernier message: 08/05/2014, 15h00
  3. Modélisation base de donnée pour site web
    Par harris_macken dans le forum Modélisation
    Réponses: 4
    Dernier message: 16/08/2010, 16h08
  4. Création d'une base de donnée pour la gestion des alertes
    Par Bandrax dans le forum Modélisation
    Réponses: 4
    Dernier message: 09/04/2009, 16h47
  5. Réponses: 4
    Dernier message: 31/08/2007, 18h58

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