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 :

Lancer une requête


Sujet :

VBA Access

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut Lancer une requête
    Bonsoir,

    Qq1 pourrait me dire ce qui ne vas pas dans mon code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Prénom_KeyPress(KeyAscii As Integer)
    DoCmd.RunSQL "SELECT proper(Prénom) AS Prénom_in_Proper_Case "
    FROM DETAIL;"
     
    End Sub
    Erreur de syntaxe.

    La requête à lancer est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT testText, proper(testText) AS testText_in_Proper_Case
    FROM MyTestTextList;
    Merci

  2. #2
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    euh j'ai oublié de préciser que bien évidemment dans la requête, test Text est remplacé par Prénom et elle fonctionne.
    La requête que je vous ai mise était l'exemple que j'ai trouvé dans la FAQ...

    Quel est la bonne syntaxe pour lancer cette requête ?

    Merci bcp

  3. #3
    Membre habitué Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Points : 175
    Points
    175
    Par défaut
    salut,

    le principe du docmd.runsql("la requête") est que tu ne peux éxecuter que des requêtes "d'action" (insertion, modification, suppression).

    Le code que tu utilises ne va pas pour un select.

    1.Le mieux est d'afficher le resultat de ta requête SQL dans une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sql = "SELECT proper(Prénom) AS Prénom_in_Proper_Case FROM DETAIL;"
     
    Me![list].RowSource = sql
    Me.Repaint
    tu actionnes ce code via un button sur click et logiquement ça fonctionne

    2.sinon tu crées un formulaire via ta requête avec l'assistant d'Access et tu crée un bouton qui ouvre ce formulaire c'est une autre solution simple également

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 86
    Points : 42
    Points
    42
    Par défaut
    Bonsoir,

    Pour lancer une requete dans une fonction, j'utilise ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
        Dim rst As DAO.Recordset
     
        Set rst = CurrentDb.OpenRecordset("SELECT proper(Prénom) AS Prénom_in_Proper_Case FROM DETAIL;")
     
        rst.Close
    Après sur rst tu as des fonctions comme EOF, MoveFirst, MoveNext pour te déplacer sur les enregistrements..
    Chez moi sa marche bien, mais je ne suis pas expert en vba ! xD

    Bon courage !

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par berti Voir le message
    salut,


    1.Le mieux est d'afficher le resultat de ta requête SQL dans une liste

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sql = "SELECT proper(Prénom) AS Prénom_in_Proper_Case FROM DETAIL;"
     
    Me![list].RowSource = sql
    Me.Repaint
    tu actionnes ce code via un button sur click et logiquement ça fonctionne
    Qu'entends-tu par afficher le résultat dans une liste ?

  6. #6
    Membre actif Avatar de tribaleur
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 401
    Points : 237
    Points
    237
    Par défaut
    Juste comme ça...J'ai déja eu une erreur d'éxecution de requête dans VBA.
    Cette erreur venais du mots AS dans la requette (le mots Sql ). Apparement VBA n'aimais qu'on l'utilise.
    Rien n'est rien!!! ... Tout est quelque chose!!!

    Petits liens utiles :
    -Chaine de connexion : http://www.connectionstrings.com/
    -ADO et ADO.net : Tuto ADO et ADO.net

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Vi mais moi qui n'y connait rien, je dois faire quoi ?

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Je reprends :

    Mon est de mettre automatiquement en majuscule les premières lettres de prénoms et prénom composés, à la saisie dans mon form.

    La requête, elle fonctionne mais je voudrais la mettre (et je ne suis pas sûre d'ailleurs que ce soit comme ça) au niveau de mon champs "Prénom".

    Est-ce la bonne démarche ?

  9. #9
    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
    Tu t'y prends mal.
    Le mieux serait de lancer la fonction sur l'évènement 'après mise à jour' et nom sur pression de la touche. Par contre, je ne crois pas que Proper soit une fonction Access (tout au moins sur la version 97)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Texte4_AfterUpdate()
     
        Me.Texte4 = StrConv(Me.Texte4, vbProperCase)
     
    End Sub

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Ah ? euh aucune idée j'ai vu cette requête je ne sais plus où, (pas ici dans la FAQ, je me suis trompée) sur le site je crois.

    J'ai office 2003.

    En tout cas la requête fonctionne

  11. #11
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Tu t'y prends mal.
    Le mieux serait de lancer la fonction sur l'évènement 'après mise à jour' et nom sur pression de la touche. Par contre, je ne crois pas que Proper soit une fonction Access (tout au moins sur la version 97)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Texte4_AfterUpdate()
     
        Me.Texte4 = StrConv(Me.Texte4, vbProperCase)
     
    End Sub
    Ok, donc sur l'évènement AFterUpdate mais je la lance finalement comment ? Comme ça je vous dirai si ça marche.

    PS : si proper n'est pas une fonction access, aurais-je un message d'erreur ? Car j'ai déjà essayer de la lancer, elle ne fonctionne pas mais pas de message d'erreur..

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Lou Pitchoun Voir le message
    Tu t'y prends mal.
    Le mieux serait de lancer la fonction sur l'évènement 'après mise à jour' et nom sur pression de la touche. Par contre, je ne crois pas que Proper soit une fonction Access (tout au moins sur la version 97)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Texte4_AfterUpdate()
     
        Me.Texte4 = StrConv(Me.Texte4, vbProperCase)
     
    End Sub
    Autre chose, si je ne m'abuse (arrêtez-moi si je me trompe) et d'après mes lectures, StrConv permet de mettre en majuscule la première lettre mais ne prend pas en charge des casse comme les traits d'union
    expl : jean luc -> Jean Luc OK
    mais jean-luc -> Jean luc pas OK
    La requête que j'ai trouvée elle permet la conversion qq soit la casse...

  13. #13
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Essaye UCase(xxx)

  14. #14
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par lvr Voir le message
    Essaye UCase(xxx)
    Connais pas !
    Tu m'expliques stp ?

  15. #15
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Connais pas !
    Tu m'expliques stp ?
    J'avais pas bien lu le problème
    Tu peux faire ça en plusieurs fois. Tu coupes à chaque éléments non alphabétique, tu mets la majuscule, tu remets l'élement, tu passes au morceau suivant.

  16. #16
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Toujours pas compris...

  17. #17
    Expert éminent sénior
    Avatar de Domi2
    Homme Profil pro
    Gestionnaire
    Inscrit en
    Juin 2006
    Messages
    7 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Suisse

    Informations professionnelles :
    Activité : Gestionnaire
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 194
    Points : 16 040
    Points
    16 040
    Par défaut
    Bonjour,

    Si j'ai bien compris, tu cherches à vérifier la saisie de noms propres.

    jean-luc ==> Jean-Luc

    Je ne pense pas qu'une requête (du moins simple), soit suffisante.

    Regarde cette fonction.

    Domi2
    Vous avez des montres, nous avons le temps ! (citation attribuée à L.-S. Senghor)

    Ici, on ne perd pas de temps ! On en passe...


    Access : créer des codes-barres 128 en VBA
    Access : les commandes intégrées des menus

    Ce message (ou un autre) vous a aidé ? Votez pour lui avec

  18. #18
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Bonjour Domi,

    Je cherchais à lancer une requête que j'ai trouvée je ne sais plus où, qui me permettait effectivement de mettre automatiquement les prénoms en majuscules, y compris ceux composés.
    Ma requête, elle fonctionne, mais je voulait la mettre dans mon form de saisie, dans le champs "Prénom" et je ne savais pas comment faire...

    Je vais essayer d'appliquer ton lien et je te tiens au courant.

    Merci.

  19. #19
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Tu dois combiner une fonction du type de celle que Domi2 t'a montré et l'event After_Update de ton champs prénom.

  20. #20
    Débutant  
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 887
    Points : 206
    Points
    206
    Par défaut
    Citation Envoyé par Domi2 Voir le message
    Bonjour,

    Si j'ai bien compris, tu cherches à vérifier la saisie de noms propres.

    jean-luc ==> Jean-Luc

    Je ne pense pas qu'une requête (du moins simple), soit suffisante.

    Regarde cette fonction.

    Domi2
    Bonjour,

    Je me suis penchée su la fonction que tu m'as donnée et ça ne fonctionne pas.
    Je ne sais plus quoi faire

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Lancer une requête à heure fixe
    Par antoine1504 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/07/2007, 16h28
  2. Lancer une requête paramétée en VBA
    Par bybelos33 dans le forum VBA Access
    Réponses: 5
    Dernier message: 18/06/2007, 15h13
  3. macro pour lancer une requête
    Par Kleer dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/02/2007, 21h16
  4. [WINDEV10] Bouton pour lancer une requête
    Par Milanber9999 dans le forum WinDev
    Réponses: 2
    Dernier message: 10/01/2007, 11h46
  5. Réponses: 1
    Dernier message: 13/12/2006, 03h16

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