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 :

Crash avec FindFirst [AC-2013]


Sujet :

IHM

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut Crash avec FindFirst
    Bonjour à tous,

    Une petite question concernant un crash avec l'utilisation de 'FindFirst'.

    Dans ma petite base, j'ai un formulaire de fiches clients et un autre formulaire qui est la liste de ces clients.

    Dans le formulaire liste, le clic sur le nom d'un client fait se positionner sur la fiche de ce client dans l'autre formulaire.

    J'avais l'habitude d'utiliser OpenForm pour faire cela mais comme ces deux formulaires restent ouverts en permanence (je veux que ça reste comme ça), il me semble que ce n'est pas très pertinent.

    A la place de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_Clients", acNormal, , "[id_client]=" & Me.id_client
    j'ai donc mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![F_Clients].Recordset.FindFirst "[id_client]=" & Me.id_client
    Ce code fonctionne parfaitement sauf dans le cas suivant : Après l'ouverture de la base, si je modifie un champ d'une fiche client et que je clique directement sur le nom d'un autre dans le formulaire liste, je me prends soit un 'Microsoft Access a cessé de fonctionner', soit 'La méthode findfirst de l'objet recordset2 a echoué -2147417848'.
    Dans le cas du deuxième message d'erreur, Access ne ferme pas et si je retente la même opération (autant de fois que je veux), ça ne plante plus.

    J'ai essayé un code un peu plus élaboré mais le problème reste le même.

    Qu'est ce qui ne va pas ?

    Merci

  2. #2
    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,

    Et si on mettait le Focus sur le formulaire Fiche avant ce code?

    Cordialement,
    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

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Merci madefemere, je viens de tester avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms![F_Clients].SetFocus
    avant le code, c'est toujours pareil

  4. #4
    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
    On peut voir la totalité du code parce que j'ai pas de souci en imitant.
    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

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Le strict minimum (trop peut-être)

    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 np_Click()
    On Error GoTo err_np_Click
     
        Forms![F_Clients].Recordset.FindFirst "[id_client]=" & Me.id_client
     
    Exit_np_Click:
    Exit Sub
     
    err_np_Click:
        MsgBox Err.Description & Chr(13) & Err.Number
        Resume Exit_np_Click
     
    End Sub
    J'ai aussi essayé avec un module

    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
    Function ChercherEnregistrement( _
        frm As Access.Form, _
        strCritere As String) _
        As Boolean
     
        ' 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
     
        ' Libérer les objets
        Set rst = Nothing
        ChercherEnregistrement = blnResultat
    End Function
    et

    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
    Private Sub np_Click()
    On Error GoTo err_np_Click
     
    Dim strCritere As String
     
        ' Le critère
        strCritere = "[id_client] = " & Me.id_client
     
        ' Recherche de l'enregistrement
        If Not ChercherEnregistrement(Forms![F_Clients], strCritere) Then
            MsgBox "Flux introuvable !", vbExclamation
        End If
     
    Exit_np_Click:
    Exit Sub
     
    err_np_Click:
        MsgBox Err.Description & Chr(13) & Err.Number
        Resume Exit_np_Click
     
    End Sub
    avec le même résultat

  6. #6
    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,

    Je suis désolé mais je n'arrive pas à reproduire l'erreur. J'ai le résultat escompté "à priori" dans la base minimale ci-jointe.

    Cordialement,
    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

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    En effet ça fonctionne sur la tienne.

    Je mets le squelette de la mienne si tu veux bien regarder pourquoi ça plante madefemere...
    Fichiers attachés Fichiers attachés

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Je viens de remarquer que ton exemple de base en mdb plante aussi si on le save en accdb madefemere...
    La j'avoue que je nage

  9. #9
    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,

    Est-ce que c'est une question de version d'Access ? Parce que ta base ne crashe pas sur Access 2010.

    EDIT :

    Remplaces le code par celui-ci pour voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With Forms![F_Clients]
                .RecordsetClone.FindFirst "[id_client]=" & Me.[id_client]
                .Bookmark = .RecordsetClone.Bookmark
        End With
    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

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 421
    Points : 132
    Points
    132
    Par défaut
    Ah bon sur la 2010 ça marche ?

    Avec ton code ça ne plante plus madefemere, mais j'aimerais quand même bien comprendre ce qui ne va pas avec l'autre

    En tous cas je te remercie.

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

Discussions similaires

  1. Crash avec GenericDirCtrl
    Par tool69 dans le forum wxPython
    Réponses: 3
    Dernier message: 20/11/2006, 19h56
  2. [Installation] Crash avec la commande cvs init
    Par Pseudo01 dans le forum CVS
    Réponses: 1
    Dernier message: 19/11/2006, 09h35
  3. Probleme avec FindFirst?
    Par Jayceblaster dans le forum Delphi
    Réponses: 2
    Dernier message: 06/07/2006, 14h30
  4. problème avec findfirst
    Par philpas dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 23/11/2005, 15h43
  5. Problème avec FindFirst
    Par etranger dans le forum Langage
    Réponses: 4
    Dernier message: 19/09/2005, 01h07

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