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 :

Requery qui fonctionne 1 fois sur 2


Sujet :

IHM

  1. #1
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 47
    Points
    47
    Par défaut Requery qui fonctionne 1 fois sur 2
    Bonjour à tous,

    J'aimerais comprendre pourquoi l'instruction requery fonctionne 1 fois sur 2 ...

    J'ai un formulaire principal (frm_reportsValidation) dans lequel se trouve un sous-formulaire (frm_missing_infos_RECOVERY_PARTS) en mode "Datasheet".

    Or dans ce sous-formulaire, j'ai fixé les propriétés "Allow Edits", "Allow Deletions", "Allow Additions" et "Data entry" à No. De plus, le "Recordset Type" est réglé à "Snapshot". Bref, je voulais être sûr que les usagers n'allaient pas entrer n'importe quoi.

    Afin de suggérer différentes modifications possibles, j'utilise l'événement "On Dbl Click" sur différents textbox du "datasheet". Je fais alors afficher les suggestions parmis lesquelles l'usager doit faire un choix.

    Voici une partie du 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
    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
     
      Private Sub MODEL_TRP_DblClick(Cancel As Integer)
     
        Dim db As Database
        Dim rs As Recordset, rsSearch As Recordset
        Dim msg As String           'Message pour msgbox
        Dim tempValue As Variant    'Variable temporaire
        Dim curRecord As Long       'Position absolue enregistrement courant
     
        Dim totalLines As Long
     
        On Error GoTo catch
     
        'Enregistrement courant
        curRecord = Me.Recordset.AbsolutePosition
        If (curRecord = -1) Then
            curRecord = 1
        End If
     
        totalLines = Me.Recordset.RecordCount
     
        Set db = CurrentDb
        Set rs = db.OpenRecordset("SELECT [AC_Model], [AC_Model_Final] " & _
                                  "FROM TBL_RECOVERY_PARTS " & _
                                  "WHERE [PO_Number] = '" & [PO_Number] & "' " & _
                                  "AND [PO_Item] = " & [PO_Item] & " " & _
                                  "AND [Goods_Receipt_Doc] = '" & [Goods_Receipt_Doc] & "' " & _
                                  "AND [Invoice_Doc] = '" & [Invoice_Doc] & "' AND " & _
                                  "[DELETED] = FALSE;", _
                                  dbOpenDynaset)
     
      '... ici je fais les modifications du recordset en fonction du choix de l'usager
      '    avec un rs.edit et rs.update
     
      me.requery
     
         'retour enregistrement courant
        If (Me.Recordset.RecordCount > 0) And (curRecord > 0) Then
            If (curRecord > Me.Recordset.RecordCount) Then
                Me.Recordset.AbsolutePosition = Me.Recordset.RecordCount
            Else
                Me.Recordset.AbsolutePosition = curRecord
            End If
        End If
     
        If (totalLines = Me.Recordset.RecordCount) Then
            Me.RecordSource = "QRY_SELECT_MISSING_INFOS_RECOVERY_PARTS"
            Me.Refresh
            Me.Requery
        End If
     
      '... Gestion des erreurs ici (Je n'ai aucune erreur lorsque le requery ne fonctionne pas.
     
      end sub
    J'ai vérifié à plusieurs reprises que, même si à l'écran la modification n'était pas prise en compte, la modification avait réellement été faite dans la table.

    Est-ce que je devrais utiliser : set rs = me.recordset et rs.findfirst au lieu d'un select query?

    Bref, j'aimerais comprendre pourquoi le requery ne fonctionne pas. Si je met un break point sur le "me.requery", il fonctionne à tous coups. On dirait que l'exécution du code va trop vite pour le requery ou quelque chose comme ca...

    J'espère que j'ai été suffisament clair pour que vous puissiez m'aider...

    M'enfin, merci beaucoup d'avance pour vos réponses.

    Bonne journée

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Essayes d'utiliser l'instruction DoEvents, à mettre avant le requery.

    Philippe

  3. #3
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 47
    Points
    47
    Par défaut
    Merci, d'accord! J'essaye...

  4. #4
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 47
    Points
    47
    Par défaut
    si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    doevents
    me.requery
    ca ne semble pas régler mon problème...

    Par contre, si je double le requery avec un "me.recordsource = "..." comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        DoEvents
     
        Me.RecordSource = "QRY_SELECT_MISSING_INFOS_CLAIMS"
        Me.Requery
    Ca semble fonctionner sur la dizaine de test que j'ai fait ...
    Je continue les tests de masse ... Et je reviens confirmer.

    Merci encore pour la réponse, et s'il y a quelqu'un qui peut expliquer le phénomène, j'aimerais bien le connaître. En principe, je dit bien "en principe" et corrigez-moi si je me trompe, on ne devrait avoir besoin que du "me.requery" pour mettre a jour l'affichage, non?

  5. #5
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 47
    Points
    47
    Par défaut
    Finalement, le DoEvents ne suffit pas... le problème est revenu aujourd'hui avec la nouvelle modification.

    Quelqu'un d'autre a une idée?
    ...
    S.V.P.

Discussions similaires

  1. Un post qui fonctionne 9 fois sur 10
    Par FoxNounours dans le forum Langage
    Réponses: 10
    Dernier message: 28/10/2011, 10h40
  2. Lien vers un fichier qui fonctionne une fois sur deux
    Par jmsch dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/10/2011, 21h00
  3. IIS sous Windows 7 qui fonctionne 1 fois sur 2
    Par fhelene30 dans le forum IIS
    Réponses: 2
    Dernier message: 06/12/2010, 16h53
  4. [HTML 4.0] Un formulaire qui fonctionne 1 fois sur 10 sur IE
    Par barbuslex dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 05/10/2010, 11h18
  5. Requête qui fonctionne 1 fois sur 100
    Par nicotine002 dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2006, 11h42

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