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

Requêtes et SQL. Discussion :

Requete qui reprend les champs d'un formulaire, oui, mais pas tous


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut Requete qui reprend les champs d'un formulaire, oui, mais pas tous
    Bonjours, je souhaiterai effectuer une requete qui reprend des champs rentrés dans un formulaire par l'utilisateur pour afficher le resultat dans ce meme formulaire: les champs a reprendre sont:
    -un site que l'utilisateur choisit dans le formulaire parmi une liste
    -un nombre qu'il rentre lui même dans a un autre endroit


    Dans la ligne champ de ma requête, je rentre donc les expressions permettant de reprendre les champs en question du formulaire. Et quand je test la requête elle m'affiche bien un champ ou il y a le site, mais elle m'affiche des petits carrés a la place du nombre contenu dans le deuxième champs

    Bug ou mauvaise manip ?

    Merci

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonsoir,

    Peux-tu nous montrer le code SQL de ta requête ?
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Forms]![Space Report]![Location] AS Expr1, [Forms]![Space Report]![Space occupied] AS Expr2;


    pour l'instant, y a même pas encore de requête, j'essaye juste de reprendre les champs du formulaire, mais pour "Space occupied" il aime pas...

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Certainement à cause de l'espace.

    Essai de changer le nom et de remplacer l'espace par '_'
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ca marche dans tout le reste de ma table avec l'espace, j'ai moyennement envie de tout changer maintenant ^^
    Si j'y arrive pas comme ca, je le ferai en VBA, mais faut que je familiarise un peu avec le langage d'abord

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    ESt-ce que tu as essayé les doubles [[ et ]] ou en mettant des [" et "]
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  7. #7
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    Nan, il aime pas avec [[ ]] ou [" "].

    Sinon, en VBA si je veux faire une opération qui utilise le résultat d'une requete, comment je l'invoque ? J'ai essayé [Query]![Nom requete]![Nom Champs], ca lui plait pas beaucoup non plus

  8. #8
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Sinon, en VBA si je veux faire une opération qui utilise le résultat d'une requete, comment je l'invoque ?
    C'est à dire ?
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  9. #9
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ba je veux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variable = variable2 - [résultat d'une requête]
    le seul problème, c que dans mon code VBA, je n'arrive pas a reprendre la valeur du résultat de la requête. En mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Query].[nom requête].[champs]
    ça ne marche pas. Il faut rajouter un ".value" a la fin ??

  10. #10
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Si ta requête passe par un recordset (rst),

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Variable = variable - rst.fields("NomChampsReponse")

    Je crois
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  11. #11
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    heu, c surement ca, mais est-ce que tu pourrai développer un poil plus la procédure, parce que j'ai écris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst.NomRequete("Champs")
    et ca marche pas

  12. #12
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    En fait dans ton code tu utilise un recordset, bon là je l'ai appelé rst

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    rst.Open " SELECT TonChamps1... " _
           & " FROM ... " _
           & " WHERE... ;"
    Puis les champs ou Alias (si tu en as) correspondent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst.fields("TonChamps")
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    Bon, j'ai bien essayé, mais la je coince, voila mon 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
    Private Sub Space_occupied_Exit(Cancel As Integer)
     
    Dim rst As New ADODB.Recordset
     
    rst.Open " SELECT TOP 1 [Space Report].Location, [Space Report].[Space available], [Space Report].[Space occupied], [Space Report].[Space contracted], [Space Report].C_Date, [Space Report].[Drawing's link] " _
           & " FROM [Space Report] " _
           & " WHERE ((([Space Report].Location)=[Forms]![Space Report]![Location])) " _
           & " ORDER BY [Space Report].C_Date DESC; "
     
    Dim calc As Single, old_value As Single
     
    old_value = rst.Fields("[Space Report].[Space occupied]")
    calc = Me.Space_occupied
     
    If calc <> 0 Then
       Me.Result = (calc - old_value)
    End If
     
    End Sub
    La requête au milieu sert a récupérer le résultat le plus récent, mais le code bug précisément la dessus quand je l'exécute.

  14. #14
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Utilise un Alias sur ton champs (Du style "occupé"), puis en executant pas à pas ta requête, vois si ta variable old_value récupére bien la valeur du recordset...

    Pour ta requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = '" & [Forms]![Space Report]![Location] & "'))
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  15. #15
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    Encore une fois, je vais te demander plus de détails, car malheureusement je ne sais pas faire un alias, et la comme ca, j'ai pas trouvé dans la faq.

    Par ailleur, mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = '" & [Forms]![Space Report]![Location] & "'))
    n'a rien changé.

    Merci de m'aider, c vraiment sympa

  16. #16
    Membre expérimenté

    Profil pro
    Inscrit en
    Mars 2006
    Messages
    1 350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 350
    Points : 1 701
    Points
    1 701
    Par défaut
    Bonjour,

    On peut essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [Forms]![Space Report]![Location] AS Expr1,
    Val([Forms]![Space Report]![Space occupied]) AS Expr2;
    Cordialement.
    Questions techniques par MP
    Le peu que je sais, c'est à mon ignorance que je le dois.
    ...............................................................................Sacha Guitry

  17. #17
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Comme le montre très bien francishop ( Bonjour et Merci) un Alias comme son nom l'indique correspond à un nom d'emprunt donc soit comme francishop le marque tu mets "Expr1" ou un nom autre comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT ..., [Space Report].[Space occupied] AS Occupe, ...
    Ensuite le nom de la colone recordset sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    old_value = rst.Fields("Occupe")
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  18. #18
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    ha oui, cela marche pour la requete Merci beaucoup

    Je vais donc essayer de mixer tout ca

  19. #19
    Membre à l'essai
    Inscrit en
    Juillet 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 49
    Points : 15
    Points
    15
    Par défaut
    Bon, ca marche toujours pas

    j'ai essayé ca:

    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
    Private Sub Space_occupied_Exit(Cancel As Integer)
     
    Dim rst As New ADODB.Recordset
     
    rst.Open " SELECT TOP 1 [Space Report].Location, [Space Report].[Space available], [Space Report].[Space occupied] AS Expr1, [Space Report].[Space contracted], [Space Report].C_Date, [Space Report].[Drawing's link] " _
           & " FROM [Space Report] " _
           & " WHERE ((([Space Report].Location)=Forms![Space Report]!Location)) " _
           & " ORDER BY [Space Report].C_Date DESC; "
     
    Dim calc As Single, old_value As Single
     
    old_value = rst.Fields("Expr1")
    calc = Me.Space_occupied
     
    If calc <> 0 Then
       Me.Result = (calc - old_value)
    End If
     
    End Sub

    et aussi ca:

    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
    Private Sub Space_occupied_Exit(Cancel As Integer)
     
    Dim rst As New ADODB.Recordset
     
    rst.Open " SELECT Val([Forms]![Space Report]![Space occupied]) AS Expr2; "
     
    Dim calc As Single, old_value As Single
     
    old_value = rst.Fields("Expr2")
    calc = Me.Space_occupied
     
    If calc <> 0 Then
       Me.Result = (calc - old_value)
    End If
     
    End Sub
    A chaque fois le message d'erreur me ramène a la ligne rst.Open " SEL ...

    Une idée (encore )

  20. #20
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    " SELECT Val( '" & [Forms]![Space Report]![Space occupied] & "') AS Expr2; "
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



Discussions similaires

  1. les champs de mon formulaire ne sont pas reconnu
    Par molo1987 dans le forum Langage
    Réponses: 9
    Dernier message: 28/02/2011, 21h25
  2. Réponses: 5
    Dernier message: 04/10/2008, 17h15
  3. Réponses: 3
    Dernier message: 04/04/2008, 17h48
  4. [MySQL] Problème pour récupèrer les champs d'un formulaire qui se trouve dans un while
    Par mademoizel dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 21/03/2008, 14h59
  5. Réponses: 10
    Dernier message: 13/08/2007, 16h12

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