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 :

resultat erroné ramené par une requête


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 41
    Points : 37
    Points
    37
    Par défaut resultat erroné ramené par une requête
    Bonjour Tous,
    J’ai un souci avec le résultat (faux) ramené par une requête.
    J’ai une zone de liste (combobox) qui contient la liste des produits se trouvant dans (sacs) 03 magasins (mag1, mag2, mag3)
    Je veux que lorsque je sélectionne un élément de la zone de liste s’affiche automatiquement le magasin (mag1, mag2, mag3) ou il se trouve, le poids en magasin, le nombre de sacs dans les différentes zones de textes appropriées
    Voila donc comment je procède
    code1
    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
    Private Sub ZDL_BeforeUpdate(Cancel As Integer)
    Dim rs As DAO.Recordset
    Const magasin1 as string=”mag1”
    Const magasin2 as string=”mag2”
    Const magasin3 as string=”mag3”
     
    Set rs = CurrentDb.OpenRecordset("select  * from mouvement where codprod=" & Me.ZDL and magasin=’” & magasin1 &”’ or magasin=’” & magasin2 &”’ or magasin=’” & magasin3 &”’, dbOpenDynaset)
    	If not rs.eof then
    		Me.txt1=rs!magasin
    		Me.txt2=rs!sac
    		Me.txt3=rs!poids
    	Else
    		Msgbox “attention”
     
       	endif		
     
     
    End Sub
    Le problème est qu’avec ce code les résultats ramenés lors de la sélection du produit dans la zone de liste ne sont pas ceux concernant le produit dans ma table.
    Par contre lorsque je fais ce code
    Code2
    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
    Private Sub ZDL_BeforeUpdate(Cancel As Integer)
    Dim rs As DAO.Recordset
    Const magasin1 as string=”mag1”
    Const magasin2 as string=”mag2”
    Const magasin3 as string=”mag3”
     
    Set rs = CurrentDb.OpenRecordset("select  * from mouvement where codprod=" & Me.ZDL &”’, dbOpenDynaset)
    	If not rs.eof then
    		Me.txt1=rs!magasin
    		Me.txt2=rs!sac
    		Me.txt3=rs!poids
    	Else
    		Msgbox “attention”
     
       	endif		
     
    End Sub
    Les résultats ramenés par la requête de ce code sont correctes.
    Mais ce code n’est pas tout le temps VRAI pour mon application. Car un produit (constitué de sacs) dans mon application peut être dans plusieurs magasins

    Veuillez bien m’aider à trouver ce qui bug dans mon code1

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Rien qu'en lisant ton code, on se rend compte que la coloration syntaxique est mal appliquée dans la chaine de la requête. C'est donc que les " et ' sont mal placés.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Février 2010
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    Merci pour votre éclairage
    ce recorset fonctionne correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set rs = CurrentDb.OpenRecordset("select  * from mouvement where codprod=" & Me.ZDL and (magasin=’” & magasin1 &”’ or magasin=’” & magasin2 &”’ or magasin=’” & magasin3 &”)', dbOpenDynaset)

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

Discussions similaires

  1. Ajouter par une requête un nouvel enregistrement vide
    Par Thomzz dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 10/06/2006, 17h45
  2. Réponses: 2
    Dernier message: 10/02/2006, 14h46
  3. [SQL] Valeur retournée par une requête...
    Par Empty_body dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 04/01/2006, 22h13
  4. colonne définie par une requête imbriquée
    Par lper dans le forum Langage SQL
    Réponses: 10
    Dernier message: 02/09/2005, 16h41
  5. Récuparation des années par une requête
    Par 973thom dans le forum Access
    Réponses: 3
    Dernier message: 14/06/2005, 18h33

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