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 :

BDD presque finalisée [AC-2010]


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut BDD presque finalisée
    Bonjour à tous,

    Je travaille actuellement sur une BDD que je vous mets en pièce jointe.
    Cette BDD est assez simple et sert à faire un pont entre notre service commercial et R&D afin de classer et archiver les questions techniques relatifs à nos produits.

    J'ai finalisé l'interface mais j'ai cependant 3 problèmes que je n'arrive pas à résoudre :

    1 - Problème de mise à jour des sous-formulaires dans un contrôle de navigation

    Mon formulaire central (Principal) contient un contrôle de navigation à 2 onglets.
    Le premier onglet regroupe les questions ouvertes. Le second les questions clôturées.
    L'ajout de nouvelles questions se fait via le formulaire "Nouvelle_Question". La modification via "Question".

    Lorsque je modifie un champ tel que "Émetteur" ou "DateDemande", tout va bien : Les sous-formulaires se mettent à jour en temps réel dans "Principal".
    Par contre, lorsque j'ajoute une nouvelle question ou que je modifie son état (De "Ouvert" à "Clôturé" et vice-versa), alors là plus de mise à jour. Je suis obligé d'appuyer sur F5 pour que la mise à jour à l'écran soit effective.
    C'est déroutant !! J'ai bien essayé de forcé les MAJ par vba mas rien à faire.

    2 - Impossibilité de sélectionner le champ d'un formulaire dans le corps d'un email

    Deuxième souci : A chaque nouvelle question, j'envoie un email automatique au service R&D.
    Le problème est que je souhaite indiquer dans le corps du mail le délai de réponse demandé. Encore une fois, j'ai tout essayé mais impossible de récupérer cette fichue valeur dans le formulaire "Nouvelle_Question" puis de l'intégrer dans le corps du mail.

    3 - Détection de modification d'un champ dans le formulaire "Question"

    Lors de modification des questions via le formulaire "Question", je souhaite qu'un commentaire soit généré automatiquement en fonction du champ modifié.
    Par exemple, si l'état est modifié, un commentaire du style "Etat modifié sur ---" est généré.
    Attention, mes modifications ne sont prises en compte que si l'utilisateur appuie sur le bouton "Valider"
    Ici, c'est plus mes compétences en vba qui pêchent car je vois pas bien comment détecté la modification d'un champ lors de la validation.

    Voilà, désolé pour ce gros pavé et j'espère que vous serez en mesure de m'aider

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Bonjour,

    Peux-tu convertir ta BdD en une version compatible Access2000 ?
    http://claudeleloup.developpez.com/F...access2000.pdf
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour Claude,

    Malheureusement, j'ai des erreurs "schéma" lors de la conversion donc impossible d’enregistrer en *.mdb

  4. #4
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    Eh bien ce sera pour une prochaine fois !

    Bonne continuation.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 249
    Points
    34 249
    Par défaut
    Hello,
    Claude, si je nettoie pour vous la bdd des champs et formats incompatibles avec le format mdb, est-ce suffisant pour travailler ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 282 192
    Points
    282 192
    Par défaut
    re-Bonjour Jean-Philippe,

    Merci pour ta proposition, c'est sympa !

    Cependant, cela risque de créer des problèmes pour la suite : les propositions que je transmettrai dans la base modifiée ne seront pas directement récupérables.

    Merci encore.
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Merci à vous 2.

    Pour info, j'avais essayé de nettoyer la BDD en supprimant certains de tables mais le gros problème vient du fait qu'une base *.mdb ne prend pas en charge le contrôle de navigation dans un formulaire.
    Sans ce contrôle, la BDD n'a plus aucun intérêt.

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour tout le monde,

    1- Pour le point un, il faut comprendre qu'un formulaire de navigation n'est qu'un formulaire avec sous formulaire.
    Donc wizard0147, tes sous-formulaires "Questions_Ouvertes" et "Questions_Cloturees" sont des sous-formulaires du formulaire de navigation qui est lui-même sous-formulaire de ton formulaire principal.
    Aussi, pour les actualiser, il faut mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Forms!Principal.SousFormulaireNavigation.Form.Tbl_Qestions_Ouvertes.Form.Requery    
    Forms!Principal.SousFormulaireNavigation.Form.Tbl_Questions_Cloturees.Form.Requery
    à la place de tes Recalc.

    2- Il faut creuser parce qu'à priori la syntaxe est bonne, mais il doit y avoir un problème dans le délai de rafraichissement des données.

    Tes DoCmd.RunCommand acCmdSaveRecord t'empêchent d'utiliser la propriétés OldValue de tes contrôles. Ils sont même inutiles dans un formulaire lié. OldValue qui te permet de connaître la valeur précédente d'un contrôle.
    3- Il faut tester la différence entre OldValue et la valeur actuelle. Si différent, insérer le commentaire.
    Ce qui donnerait :
    Une procédure pour insérer les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Procédure pour ajouter un commentaire dans la table si changement
    Private Sub InjecterComm(NomContModifie As Object)
    Dim ssql As String
    Dim ValCommentaire As String
    'Insérer le changement de la date de demande
        ValCommentaire = "Etat modifié sur --- " & NomContModifie.Name
        'Construire le code SQL pour la requête ajout-insertion
        ssql = "INSERT INTO Commentaires ( ID_Question, DateCommentaire, Commentaire, Emetteur )" _
               & " VALUES (" & Me.ID_Question & ",Now(),'" & ValCommentaire & "', '" & Application.TempVars(User) & "')"
        DoCmd.SetWarnings False 'Inhiber les avertissements
        DoCmd.RunSQL ssql 'Exécuter la requête insertion
        DoCmd.SetWarnings True 'Rétablir les avertissements
    End Sub
    Des codes à rajouter dans l'évènement de validation (Code qui aurait pu être plus simple si tu avais mis en place une certaine convention de nommage de tes contrôles
    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
    Private Sub Valider_Click()
    ............
    ............
    'J'ai mis le test sur 2 champs, mais il faut rajouter les tests pour les autres champs
    If Me.DateDemande.OldValue <> Me.DateDemande Then
    MsgBox "verifier date "
        InjecterComm Me.DateDemande
    End If
     
    If Me.Priorite.OldValue <> Me.Priorite Then
        InjecterComm Me.Priorite
    End If
        DoCmd.RunCommand acCmdSaveRecord
        DoCmd.Close
        Forms!Principal.SousFormulaireNavigation.Form.Tbl_Qestions_Ouvertes.Form.Requery
        Forms!Principal.SousFormulaireNavigation.Form.Tbl_Questions_Cloturees.Form.Requery
     
    End Sub
    Si j'ai des nouvelles sur le point 2, je reviens.

    Bonne continuation
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour wizard0147, madefemere,

    madefemere, j'avais commencé à regarder la bd plus spécialement le formulaire Nouvelle_Question. Quelques remarques pour compléter ce que tu as dit:

    1- En début de chaque module on devrait voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database
    Option Explicit
    Ce qui permet d’éliminer beaucoup d'erreur. Pour que Option Explicit soit inscrit par défaut dans la barre des menus, dans Outils, dans Options tu coches "Déclaration des variables obligatoires".
    2- La commande : On Error Resume Next est à éliminer. Si tu n'avais pas cette commande tu verrais que le DoCmd ne fonctionne pas. Tu aurais vu aussi que tu n'appelais pas les sous-formulaires de la bonne façon.
    3- Ton formulaire aurait grand avantage à être un formulaire indépendant. Cela éviterait de créer des lignes inutilement dans la table Questions.
    4- Ta manière de déclarer ton objet Outlook est en late binding, y a t'il une raison pour cela? Avec un code comme celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        ' Envoyer un email
        Dim outobj As Outlook.Application
        Dim outappt As Outlook.MailItem
        Set outobj = CreateObject("outlook.application")
        Set outappt = outobj.CreateItem(olMailItem)
        With outappt
            .To = L'adresse email
            .Body = Le message
            .Subject = Le sujet
            .Display 'Pour ouvrir la fenêtre outlook avant d'envoyer le message
            .Send 'Pour envoyer sans ouvrir la fenêtre outlook
        End With
       ' Libérez la variable objet Outlook.
       Set outobj = Nothing
    Tu n'aurais pas besoin d'intercepter si Outlook est ouvert ou non. De plus tu profites de l'intelliscience d'Access. C'est à dire dès que tu tapes le "." l'outil te donne les choix possibles.
    5- Tu ne peux récupérer la valeur de ton champ "Delai" qui est indépendant et associé à une requête. Le moyen le plus simple est de mettre dans le champ "Priorité" une deuxième colonne de largeur = 0 et tu récupères la valeur avec le : Me.Priorite.Column(1)

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  10. #10
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Bonjour Robert1957, madefemere,

    Tout d'abrod, un grand merci à tous les deux pour vos retours et désolé pour ma réponse tardive.

    En utilisant la méthode de Robert (2 colonnes dont une cachée), j'ai solutionné le problème 2
    Madefemere, ton code pour les commentaires marchent super. Je l'ai un peu modifié mais problème résolu également

    Il me reste donc le problème de la mise à jour des sous formulaires. Pour info, j'ai un peu modifié la BDD mais lorsque j'utilise le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms!Principal.SousFormulaireNavigation.Form.Tbl_Qestions_Ouvertes.Form.Requery
    Il me met une erreur 2465 sur la ligne

    Des idées ? Un réglage dans le formulaire peut-être ?

  11. #11
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Petite information supplémentaire. Voici le message d'erreur:
    "Erreur définie par l'application ou par l'objet"

  12. #12
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    As-tu changé le nom de ton sous-formulaire ou c'est resté la même table en mode sous-feuille de données initiale. Il faut utiliser le Nom dans la propriété Autres de ton sous-formulaire quand tu le sélectionnes dans le formulaire principal.
    Je te conseille de lire le tuto ICI pour faire référence aux sous-formulaires ou leurs contrôles
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  13. #13
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 17
    Points : 10
    Points
    10
    Par défaut
    Un énorme merci madefemere, c'était bien le problème

    Je vais potasser ton lien

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

Discussions similaires

  1. Finalisation d'une application utilisant une BDD Oracle
    Par anubis55 dans le forum Import/Export
    Réponses: 2
    Dernier message: 24/02/2013, 22h51
  2. portabilité et BDD
    Par delire8 dans le forum C++Builder
    Réponses: 7
    Dernier message: 04/07/2002, 10h59
  3. connection a une BDD MySql
    Par delire8 dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2002, 18h18
  4. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26
  5. Probleme de filtre dans bdd
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/06/2002, 10h43

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