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

VBA Access Discussion :

Se positionner dans un formulaire plante de temps en temps (aléatoire)


Sujet :

VBA Access

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut Se positionner dans un formulaire plante de temps en temps (aléatoire)
    Bonjour à tous,

    pour me positionner dans un endroit précis du formulaire, j'utilise une fonction que j'ai trouvée il y a quelques temps dans le forun
    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
    Public Function ChercherEnregistrementFormulaire( _
        frm As Access.Form, _
        StrCritere As String) _
        As Boolean
    ' se positionne au bon endroit dans un formulaire ou sous formulaire
    On Error GoTo ErreurDetectee
     
        ' Variables
        Dim Rst As dao.Recordset
        Dim blnResultat As Boolean
     
        ' Le Recordset
        Set Rst = frm.Recordset
     
        ' Chercher l'enregistrement
        blnResultat = False
        Rst.FindFirst StrCritere
        If Not Rst.NoMatch Then
            frm.Bookmark = Rst.Bookmark
            blnResultat = True
        End If
    Et je l'appelle ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StrCritere = "[Niveau2]= '.'"
       If Not ChercherEnregistrementFormulaire(Me.[DQENiv2 Sous-formulaire1].Form, StrCritere) Then
            MsgBox "Positionnement impossible !", vbExclamation
       End If
    De temps en temps (1 fois sur 50), l'appel plante et ma base Data se retrouve en vrac.
    Je suis obligé de faire une réparation.

    1) avant de mettre le ON ERROR dans la fonction, l'erreur est sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rst = frm.Recordset
    L'expression comporte une référence non valide à la propriété Recordset
    2) avec le ON ERROR
    J'ai une erreur=3420
    Et obligé de faire une réparation.

    Merci pour vos lumières

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    On ne voit pas la fin de la fonction. Peux-tu la poster en entier ?

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Bonjour Loufab: merci de intéresser à mon pb.

    La voici
    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
    Public Function ChercherEnregistrementFormulaire( _
        frm As Access.Form, _
        StrCritere As String) _
        As Boolean
    ' se positionne au bon endroit dans un formulaire ou sous formulaire
    On Error GoTo ErreurDetectee
     
        ' Variables
        Dim Rst As dao.Recordset
        Dim blnResultat As Boolean
     
        ' Le Recordset
        Set Rst = frm.Recordset
     
        ' Chercher l'enregistrement
        blnResultat = False
        Rst.FindFirst StrCritere
        If Not Rst.NoMatch Then
            frm.Bookmark = Rst.Bookmark
            blnResultat = True
        End If
        GoTo FinF
     
    ErreurDetectee:
    MsgBox "Erreur:" & Err
    blnResultat = False
     
    FinF:
        ' Libérer les objets
        Set Rst = Nothing
        ChercherEnregistrementFormulaireOLD = blnResultat
     
    End Function
    Et pour savoir si c'est vraiment cette fonction qui fait planter (et pas ce que je fais avant), j'ai remplacé cette fonction par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       Forms![DQENiv2 Sous-formulaire]![DQENiv2 Sous-formulaire1].Form.Recordset.FindFirst "[Niveau2]= '.'"
    Chez moi, les 2 appels marchent de la même façon.
    Le client va tester dans son environnement, mais je n'ai pas encore de retour.

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    2 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 878
    Points : 4 754
    Points
    4 754
    Par défaut
    Bonjour,

    Une idée, utiliser de préférence recordsetclone

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rst = frm.RecordsetClone
    Cdlt
    "Always look at the bright side of life." Monty Python.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2013
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Services à domicile

    Informations forums :
    Inscription : Décembre 2013
    Messages : 150
    Points : 98
    Points
    98
    Par défaut
    Bonjour,
    alors voilà le résultat.
    Avec ma nouvelle méthode de positionnement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![DQENiv2 Sous-formulaire]![DQENiv2 Sous-formulaire1].Form.Recordset.FindFirst "[Niveau2]= '.'"
    le client n'a plus d'erreur.

    Donc, je laisse en place cette méthode.
    Mais, je ne vois pas pourquoi la 1ere méthode marchait de façon aléatoire chez le client.

    Vous avez un début d'idée ?

    Bon WE à tous

Discussions similaires

  1. [AC-2010] Positionnement dans un formulaire continu
    Par ortiz dans le forum IHM
    Réponses: 7
    Dernier message: 17/09/2015, 14h08
  2. [AC-2010] Appeler et se positionner dans un formulaire type feuille de données
    Par PhilC dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/04/2013, 18h06
  3. [IE/FF] différence de positionnement dans un formulaire
    Par franculo_caoulene dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 30/01/2008, 15h40
  4. VBA et positionnement dans un formulaire
    Par langelot222 dans le forum VBA Access
    Réponses: 5
    Dernier message: 23/05/2007, 09h53
  5. Réponses: 1
    Dernier message: 04/04/2006, 14h50

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