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

IHM Discussion :

message erreur à ouverture formulaire base compilée [AC-2016]


Sujet :

IHM

  1. #1
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 485
    Points : 124
    Points
    124
    Par défaut message erreur à ouverture formulaire base compilée
    Bonjour à tous,

    Encore un souci

    J'ai créé une base frontale et une dorsale et j'ai ensuite compilé la frontale en .mde

    Lorsque l'on ouvre le formulaire "F_T_operation_sur_carte" en mode suivi d'opération, j'ai le pop-up ci-dessous.
    Nom : Capture.JPG
Affichages : 69
Taille : 157,5 Ko
    Il ne semble pas etre bloquant mais gène les utilisateurs et je n'ai pas ce message lorsque la base n'est pas compilée.
    Je mets ci-dessous le code qui permet son ouverture afin que vous en voyez sa composition.

    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
    Private Sub but_lancer_Click() ' ouverture formulaire en mode: Suivi d opération sur carte affaire sur critère
     
    'teste si il y a bien des enregistrement avant ouverture
    If DCount("*", "T_operation_sur_carte", "id_statut_operation < " & 2) = 0 Then
        MsgBox "Il n'y a pas de dossier en cours"
        Else
    'filtre le formulaire sur le nom sélectionné dans la liste déroulante
     
        Call DoCmd.OpenForm("F_T_operation_sur_carte", acNormal, , "matricule_porteur_carte=""" & Me.lst_R_selection_nom_suivi_operation_carte.Column(2) & """", DataMode:=acFormEdit)
        ' passe le formulaire en modification de donnée et ne permet pas de faire de nouvelles saisies
            [Forms]![F_T_operation_sur_carte].AllowAdditions = False
        ' masquer les champs non nécessaire à ce formulaire
            [Forms]![F_T_operation_sur_carte].txt_nom_porteur_carte.SetFocus
            [Forms]![F_T_operation_sur_carte].Étiq_Operation_sur_carte.Visible = False
            [Forms]![F_T_operation_sur_carte].etiq_rech_nom.Visible = False
            [Forms]![F_T_operation_sur_carte].lst_R_selection_nom_F_operation_sur_carte.Visible = False
     
        ' Affiche les champs nécessaire à ce formulaire
            '[Forms]![F_T_operation_sur_carte].Étiq_titre_suivi_demande_CAF.Visible = True
            '[Forms]![F_T_operation_sur_carte].but_cloture_fiche.Visible = True
     
    'Bloque les champs déjà renseignés
    'txt_matricule_porteur_carte
        If [Forms]![F_T_operation_sur_carte].txt_matricule_porteur_carte <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_matricule_porteur_carte.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_matricule_porteur_carte.Locked = False
        End If
    'txt_nom_porteur_carte
            If [Forms]![F_T_operation_sur_carte].txt_nom_porteur_carte <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_nom_porteur_carte.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_nom_porteur_carte.Locked = False
        End If
    'txt_prenom_porteur_carte
            If [Forms]![F_T_operation_sur_carte].txt_prenom_porteur_carte <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_prenom_porteur_carte.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_prenom_porteur_carte.Locked = False
        End If
    'txt_CIV
            If [Forms]![F_T_operation_sur_carte].txt_civ <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_civ.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_civ.Locked = False
        End If
    'txt_mail
            If [Forms]![F_T_operation_sur_carte].txt_mail <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_mail.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_mail.Locked = False
        End If
    'txt_service
            If [Forms]![F_T_operation_sur_carte].txt_service <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_service.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_service.Locked = False
        End If
    'txt_CA
            If [Forms]![F_T_operation_sur_carte].txt_CA <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_CA.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_CA.Locked = False
        End If
    'txt_statut_pops
            If [Forms]![F_T_operation_sur_carte].txt_Statut_pops <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_Statut_pops.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_Statut_pops.Locked = False
        End If
    'txt_numero_carte
            'If [Forms]![F_T_operation_sur_carte].txt_numero_carte <> "" Then
            '[Forms]![F_T_operation_sur_carte].txt_numero_carte = True
        'Else
            '[Forms]![F_T_operation_sur_carte].txt_numero_carte = False
        'End If
    'txt_statut_carte
            If [Forms]![F_T_operation_sur_carte].txt_statut_carte <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_statut_carte.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_statut_carte.Locked = False
        End If
    'txt_echeance_carte
            If [Forms]![F_T_operation_sur_carte].txt_echeance_carte <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_echeance_carte.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_echeance_carte.Locked = False
        End If
    'txt_numero_contrat
            If [Forms]![F_T_operation_sur_carte].txt_numero_contrat <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_numero_contrat.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_numero_contrat.Locked = False
        End If
    'txt_numero_prestation
            If [Forms]![F_T_operation_sur_carte].txt_numero_prestation <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_numero_prestation.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_numero_prestation.Locked = False
        End If
    'lst_type_operation
            If [Forms]![F_T_operation_sur_carte].lst_type_operation <> "" Then
            [Forms]![F_T_operation_sur_carte].lst_type_operation.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].lst_type_operation.Locked = False
        End If
    'txt_date_demande_operation
            If [Forms]![F_T_operation_sur_carte].txt_date_demande_operation <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_date_demande_operation.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_date_demande_operation.Locked = False
        End If
    'txt_date_opération
            If [Forms]![F_T_operation_sur_carte].txt_date_opération <> "" Then
            [Forms]![F_T_operation_sur_carte].txt_date_opération.Locked = True
        Else
            [Forms]![F_T_operation_sur_carte].txt_date_opération.Locked = False
        End If
     
    End If
     
    End Sub
    Mon code semble bien compilé
    Nom : Capture1.JPG
Affichages : 59
Taille : 73,0 Ko

    Et j'ai une seconde question car elle est bloquante, comment peut on supprimer la croix des msgbox car les utilisateurs ferment la fenetre avec et du coup ne valident pas le processus de sauvegarde?
    Nom : Capture2.JPG
Affichages : 62
Taille : 16,2 Ko

    je vous remercie et vous souhaite une bonne journée.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    Le premier message est généralement du à une erreur dans du SQL ou dans l'expression d'un critère.
    Parfois le runtime n'exécute pas les instructions exactement dans le même ordre que la version complète (aucune idée pourquoi) mais cela peut impliquer que des variables sont non initialisées.
    Aussi il serait bon de savoir exactement quelle procédure événementielle produit cette erreur. Donc il faudrait mettre une gestion d'erreur dans chacun des code appellés sur OnClick et lui faire afficher son nom.

    Un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
       on error goto Err_MaSub_OnClick
     
       'ici ton code
     
    exit_MaSub_OnClick:
        exit sub
     
     
    Err_MaSub_OnClick:
        msgbox "Erreur : " & err.number & ", " & err.description & " dans MaSub_OnClick()"
        resume exit_MaSub_OnClick
    Tu peux essayer des simuler le comportement du runtime avec ta "vraie" appli en lançant Access depuis la ligne de commande DOS avec le paramètre /runtime.
    Ici une explication https://support.microsoft.com/en-us/...EAABAAA=Access

    Bon tu peux aussi déployer ta version avec VBA :-), perso c'est ce que je préfère, de mon expérience les utilisateurs ne vont jamais mettre le nez dans le code et cela te fait une sauvegarde d ton appli à chaque fois. Rappel il n'y a pas d'outil fourni par M$ qui permette de revenir d'un .mde à un .mdb donc ne pert pas ton original. Il y a (avait pas vérifié récemment) une firme anglaise qui faisait cela.

    Pour le message box, je n'avais jamais remarquer la croix. Je ne pense pas qu'on puisse car c'est un objet Access sur lequel on a peut de contrôle.
    Ma suggestion, remplacer le MsgBox() par ton propre formulaire, là tu pourras contrôler la croix. C'est un peu de travail notamment si tu veux reproduire toutes les fonctionnalités et le "look" mais c'est faisable.
    Ceci dit si tu en as besoin que dans certaine circonstance tu peux te contenter d'un truc plus simple.

    Ou alors que tu ajoutes un message du genre : "Attention fermer ce formulaire par la croix annulera vos modifications.".

    A+

  3. #3
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 485
    Points : 124
    Points
    124
    Par défaut
    Merci marot_r,
    Je vais tester tout cela. je préférerai ne pas laisser le VBA visible car je vais surement avoir des utilisateurs avertis et ne souhaite pas qu'il y ai des modification non centralisées.
    Par contre en préparant mes tests, je me suis aperçu qu'en faisant "enregistrer sous" et choisissant .mde ma frontale .mdb existait toujours ce qui n'était pas le cas avant.

    Nom : Capture.JPG
Affichages : 62
Taille : 20,3 Ko

    Pour la msgbox, dans un premier temps je vais ajouter votre suggestion "Attention fermer ce formulaire par la croix annulera vos modifications." et verrai ensuite pour faire un petit formulaire.

  4. #4
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 962
    Points : 1 151
    Points
    1 151
    Par défaut message erreur à ouverture formulaire base compilée
    Bonjour,

    Pour info, je ne compile plus mes projets en mde ou accde pour les raisons soulevées par marot_r, par contre tu peux limiter la casse en protégeant ton projet par un mot de passe dans l'éditeur VBE.
    Les objets (formulaires...) ne seront plus modifiables et le code ne sera disponible que sur saisie du mot de passe.
    Si tes utilisateurs ne disposent pas d'access mais seulement du runtime, tu peux renommer tes bases en accdr ou mde (donc avec possibilité de les ouvrir en modification en faisant l'opération inverse). Idem avec access.

    Nom : Capture.PNG
Affichages : 62
Taille : 8,4 Ko

    Bonne journée !

  5. #5
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 485
    Points : 124
    Points
    124
    Par défaut
    Merci Ric500,
    je prends note aussi car je constate qu'il y a pas mal de soucis avec la runtime et un bon mot de passe pourra faire l'affaire.
    Une chose que je n'ai pas encore testé mais souhaiterai mettre en place c'est le MDW. Celui-ci permettrait de bien brider les accès.

  6. #6
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 962
    Points : 1 151
    Points
    1 151
    Par défaut message erreur à ouverture formulaire base compilée
    Si tu en as la possibilité, je te conseille de porter tes bases en Access 7 minimum, le mdw n'y est plus implémenté, mais de mémoire çà ne m'avait apporté que des galères.

    Un peu de doc ici.

  7. #7
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 485
    Points : 124
    Points
    124
    Par défaut
    je te remercie,
    C'est pour le mettre en place que j'ai décidé de mettre ma base en mdb.
    Lors d'une formation en début d'année, j'avais évoqué le sujet avec le formateur et nos essais étaient concluent.
    Maintenant en passant dans la pratique si je constate une instabilité ou trop de bug, je lâcherai le mdw.

  8. #8
    Membre éprouvé Avatar de Ric500
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 962
    Points : 1 151
    Points
    1 151
    Par défaut message erreur à ouverture formulaire base compilée
    Je crois me rappeler que la sécurité niveau utilisateur a été abandonnée dans les versions d'access depuis 2007. En tous cas conserve bien une copie de tes fichiers system.mda avant et après mise en place de la sécurité.

    Outre une capacité supérieure pour les tables, Access 2007 a vu son vba évoluer et certaines instructions "pré-historiques" ne sont plus supportées.

  9. #9
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 485
    Points : 124
    Points
    124
    Par défaut
    encore merci, je vais me noter tout cela et mettre en pratique avant une prod finale.

  10. #10
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Oui je confirme la sécurité a été totalement abandonnée à partir de la version 2007.
    Et généralement il faut "Tout faire sauter" avant de pouvoir convertir de .mdb à .accdb.

    On peut encore s'en servir en conservant le format .mdb.

    Et je pense que Ric500 fait référence au fichier system.mdw (qui garde les droits) et non system.mda (les .mda étant des "libraries" access).

    Je reviens à mon point sur les utilisateurs, même avancés, généralement tout ce qu'ils veulent c'est que cela marche et faire le travail pour lequel ils sont payés. Ils ne vont ni voir les codes ni les requêtes, ni rien. Ils utilisent les menus et râlent quand cela ne fonctionne pas.

    De plus si tu gardes une version par devers toi, quand tu pousses une mise à jour tout ce qu'ils auraient pu changer est écrasé donc ce n'est pas franchement un problème.
    Et tu devrais avoir en place un mécanisme de sauvegarde de tes données permettant de revenir en arrière pour la partie data.

    Généralement celui qui est le plus embêté par les sécurités c'est le développeur.
    J'ai eu un cas il a fallut refaire une partie du travail parce qu'un programmeur partit depuis longtemps avait verrouillé le code avec un mot de passe que personne ne connaissait.
    Donc si tu veux mettre un mot de passe assure-toi qu'au moins une autre personne (ex : ton boss ou dépose une enveloppe fermée à la compta (ils ont l'habitude de garder des papiers les comptables :-)) y ai accès.

    A+

  11. #11
    Membre régulier Avatar de mgascult
    Homme Profil pro
    Logistique Immobilière
    Inscrit en
    Août 2013
    Messages
    485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Logistique Immobilière
    Secteur : Finance

    Informations forums :
    Inscription : Août 2013
    Messages : 485
    Points : 124
    Points
    124
    Par défaut
    Bonjour à tous,

    Merci marot_r pour ces conseils précieux.

    Pour ma part deux semaines de vacances et ensuite je reprendrai le cours de mon dev.
    Je penses dupliquer ma base lorsqu'elle sera fini et faire une comparaison entre la .mde et .accde.

    Le choix devra se faire entre la sécurité et la stabilité.

    Encore merci pour votre et de bonnes vacances à ceux qui partent et courage à ceux qui reste.

    @ bientôt

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

Discussions similaires

  1. [AC-2000] Message erreur entre formulaire et sous-formulaire
    Par tibogaet dans le forum IHM
    Réponses: 1
    Dernier message: 06/10/2009, 10h46
  2. erreurs ouverture formulaire et execution code
    Par padawanette dans le forum InfoPath
    Réponses: 5
    Dernier message: 21/08/2008, 16h30
  3. message erreur DANS formulaire
    Par débutante77 dans le forum Langage
    Réponses: 4
    Dernier message: 23/05/2008, 18h24
  4. Réponses: 19
    Dernier message: 09/04/2008, 17h05
  5. Message d'ouverture de base en lecture seule
    Par jlc1006 dans le forum Access
    Réponses: 3
    Dernier message: 15/12/2006, 10h17

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