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 :

[Formulaire][VBA]morceau de code qui ne fonctionne pas


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut [Formulaire][VBA]morceau de code qui ne fonctionne pas
    Salut tt le monde !
    j'ai un bout de code qui marche pas (c'est sur un bouton de formulaire), probleme de syntaxe peut-etre.. est ce que vous pouvez me dire ce qui cloche ?
    somme_Test1 et somme_Test2 , ce sont des requetes avec deux champs chacunes (sommedeF1 et sommedeF2)...


    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
    Private Sub Commande0_Click()
     
    Select Case somme_Test2.[SommeDeF1]
    Case Is < somme_Test2.[SommeDeF2]
    stDocName = "Ajout_Test2_norm"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    Case Is > somme_Test2.[SommeDeF2]
    stDocName2 = "Ajout_Test2_invers"
    DoCmd.OpenQuery stDocName2, acNormal, acEdit
     
    end select 
     
    Select Case somme_Test1.[SommeDeF1]
    Case Is < somme_Test1.[SommeDeF2]
    stDocName = "Ajout_Test1_norm"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    Case Is > somme_Test1.[SommeDeF2]
    stDocName2 = "Ajout_Test1_invers"
    DoCmd.OpenQuery stDocName2, acNormal, acEdit
     
    end select
    end sub
    Merci à qui peut me dire le pourquoi du comment !!

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Il te manque un End Select et l'autre tu as mis End Case au lieu de End Select.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    pardon, c'etait une faute de frappe...

    quand je lance ce code, la première erreur c'est "'objet requis", et surligne en jaune
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case somme_Test2.[SommeDeF1]

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    A quoi correspond somme_Test2.[SommeDeF1] ??

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    somme_Test2 est une requete dans laquelle se trouve 2 champs : sommedeF1 et sommedeF2

    (meme concept avec somme_Test1)

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Désolé.. je doute que cela soit possible de faire référence directement aux champ d'une requête.
    Il te faut faire référence à ces champs via le formulaire et ainsi obtenir quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case Me.Monchamp
    Edit : ouvres des recordset pour chaque requête. Et là ça devrait être possible.

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    Ben j'avais fais ça pour tester, sur un formulaire basé sur somme_test1 et ça marchait bien:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Select Case Me.SommeDeF1
    Case Is < Me.SommeDeF2
    stDocName = "Ajout_Test1_norm"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    case is >Me.SommeDeF2
    stDocName2 = "Ajout_Test1_invers"
    DoCmd.OpenQuery stDocName2, acNormal, acEdit
     
    End Select
     
    End Sub
    ça marchait bien... mais moi je voulais mettre tout dans la foulée ( j'ai aussi somme_test2) et la c'est chaud parce que je peux pas lier le formulaire sur 2 requetes differentes...

  8. #8
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par Kikof
    Edit : ouvres des recordset pour chaque requête. Et là ça devrait être possible.
    Là tu peux faire les deux.
    Il suffit juste de positionner les recordsets sur le bon enregistrement, ou alors de filtrer un enregistrement pour chaque requête.

    Tu auras ainsi quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim rstRequete1 As DAO.Recordset
    Dim rstRequete2 As DAO.Recordset
     
    Set restRequete1 = CurrentDB.OpenRecordset("SQL ou nom requête")
    restRequete1.Movefirst 'position sur le 1er enregistrement
    Select Case restRequete1![nomChamp]
    Cours DAO très utile

  9. #9
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    j'ai fais ça :
    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
     
    Dim rstRequete1 As DAO.Recordset
    Dim rstRequete2 As DAO.Recordset
    Set restRequete1 = CurrentDb.OpenRecordset("somme_Test1")
    Set restRequete2 = CurrentDb.OpenRecordset("somme_Test2")
    restRequete1.MoveFirst 'position sur le 1er enregistrement
    Select Case restRequete1![SommeDeF1]
    Case Is < SommeDeF2
    MsgBox "Bien"
    stDocName = "Ajout_Test1_norm"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    Case Is > SommeDeF2
    MsgBox "Mal"
    stDocName2 = "Ajout_Test1_invers"
    DoCmd.OpenQuery stDocName2, acNormal, acEdit
    End Select
     
    Select Case restRequete2![SommeDeF1]
    Case Is < SommeDeF2
    MsgBox "Bien"
    stDocName = "Ajout_Test2_norm"
    DoCmd.OpenQuery stDocName, acNormal, acEdit
     
    Case Is > SommeDeF2
    MsgBox "Mal"
    stDocName2 = "Ajout_Test2_invers"
    DoCmd.OpenQuery stDocName2, acNormal, acEdit
    End Select
    marche po
    la première partie oui, mais il merde avec restRequete2 , il me dit objet requis

  10. #10
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    T'y es presque
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set restRequete1 = CurrentDb.OpenRecordset("somme_Test1")
    Set restRequete1 = CurrentDb.OpenRecordset("somme_Test2")
    Y a pas comme un soucis là ???

    Ensuite à chaque fois que tu fais référence à un champ de la somme_Test1,
    tu dois écrire :
    somme_Test1![NomChamp]
    Même chose pour somme_Test2

    Oublie pas le movefirst pour rstRequete2

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 127
    Points : 56
    Points
    56
    Par défaut
    ça marche !!! j'vais fais une erreur de frappe....
    Merci beaucoup de ton aide !

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

Discussions similaires

  1. Code qui ne fonctionne pas
    Par egg3774 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/06/2007, 19h00
  2. [Language] Code qui ne fonctionne pas
    Par kevinf dans le forum Langage
    Réponses: 2
    Dernier message: 21/11/2006, 22h08
  3. Code qui ne fonctionne pas
    Par maxti dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/10/2006, 12h45
  4. [VBA-E]Select case qui ne fonctionne pas :(
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 31/01/2006, 13h13
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 12h08

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