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 :

Requête avec VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut Requête avec VBA
    Bonjour,

    Je suis un novice en VBA. Depuis quelques temps, je cherche un moyen de créer une requête en VBA et y intégrer du code SQL. J'ai créer un requête (Union joint) avec Access qui pige des informations dans deux tables. J'ai ensuite copier ce code dans du VBA. Voila la source de mon problème. La requête en VBA depuis l'intégration de code de la requête.

    Il me donne un message d'erreur de compilation. Je crois que l'erreur est causé pas des " dans mon code. Je me demande s'il a une meilleur facon de l'écrire.

    Voici mon code en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT DISTINCTROW(1 & format(tbl_Niveau1.WO,"00")), tbl_Niveau1.DateCreation, tbl_Niveau1.Client, tbl_Niveau1.Description FROM tbl_Niveau1 UNION SELECT (2 & format(tbl_Niveau2.WO_,"00")), tbl_parent.DateCreation, tbl_parent.Client,tbl_parent.Description FROM tbl_Niveau2"
    Le problème est au niveau des "00" utilisés pour donner un format précis dans les numéros WO (ou ID de l'enregistrement).

    Est-ce qu'il a une facon de modifier ce code tous en gardant un résultat voulu ?

    Merci,

    Egg3774

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

    Soit tu doubles les guillemets dans la chaine, soit tu mets des ' à la place (personnellement je mets des ').

    Access interpréte mal, car pour lui tu veux mettre des string bout à bout, et elles ne sont pas séparés par des caractères de concaténation (&).

    Starec

  3. #3
    Membre éclairé Avatar de moicats
    Inscrit en
    Mars 2006
    Messages
    299
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 299
    Par défaut
    salut,

    a tu essayé avec des cotes plutot : '00'

    bonne continuation

  4. #4
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Utilise des guillemets simples ' à la place des doubles "

    Philippe

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Modifier mon code en insérant un ' au lieu du " a fait disparaitre l'erreur de compilation. Cependant, je n'obtiens plus rien a l'exécusion du code. Ma liste de rechercher est vide. Je crois que le code utiliser n'est pas bien adapté. Le seul façon pour moi d'avoir des informations dans ma liste de recherche est en modifiant de code de cette façon:

    Avant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT DISTINCTROW(1 & format(tbl_Niveau1.WO,'00')), tbl_Niveau1.DateCreation, tbl_Niveau1.Client, tbl_Niveau1.Description FROM tbl_Niveau1 UNION SELECT (2 & format(tbl_Niveau2.WO,'00')), tbl_parent.DateCreation, tbl_parent.Client,tbl_parent.Description FROM tbl_Niveau2"
    Après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT DISTINCTROW tbl_Niveau1.WO, tbl_Niveau1.DateCreation, tbl_Niveau1.Client, tbl_Niveau1.Description FROM tbl_Niveau1 UNION SELECT tbl_Niveau2.WO, tbl_parent.DateCreation, tbl_parent.Client,tbl_parent.Description FROM tbl_Niveau2
    Je crois qu'il a quelques chose qui cloche avec cette parti de code
    (2 & format(tbl_Niveau2.WO,'00'))
    sauf bien sur les '00', mais je ne peux pas trouver de solution.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Oui je n'ai pas tout vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCTROW(1 "& format(tbl_Niveau1.WO,'00'))" & ,
    Cela vient du fait du concaténage des chaines, car dans une string tu rajoutes des variables, il faut que tu les sortes.

    A faire pour tout l'ensemble.

    Starec

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Citation Envoyé par Starec Voir le message
    Re

    Oui je n'ai pas tout vu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCTROW(1 "& format(tbl_Niveau1.WO,'00'))" & ,
    Cela vient du fait du concaténage des chaines, car dans une string tu rajoutes des variables, il faut que tu les sortes.

    A faire pour tout l'ensemble.

    Starec
    Merci pour ton aide.

    Mais ca ne fonctionne pas. j'ai plein d'erreur de compilation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT DISTINCTROW (1 "& format(tbl_Niveau1.WO,'00'))" & , tbl_Niveau1.DateCreation, tbl_Niveau1.Client, tbl_Niveau1.Description_1 UNION SELECT (2 "& format(tbl_Niveau2.WO,'00'))"& , tbl_Niveau2.DateCreation, tbl_Niveau2.Client,tbl_Niveau2.Description_1 FROM tbl_Niveau2"
    j'obtiens un erreur de compilation "end of statment". la première ' simple semble est la cause de l'erreur. Désolé je suis null en VBA ! Quelqu'un peu m'aider ?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 167
    Par défaut
    Voici le code que j'utilise dans ma requête en VBA.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT DISTINCTROW (1 & Format(WO_Niveau1,'00')), DateCreation, Client, Description FROM tbl_grand UNION SELECT (2 & Format(WO_Niveau2,'00')), DateCreation, Client, Description FROM tbl_Niveau2"
    Tous fonctionne bien jusqu'au moment que j'insère la partie de code UNION SELECT (2 & Format ( Wo....

    Qu'elle la syntaxe pour inclure le code ' UNION SELECT...' dans du VBA ?

Discussions similaires

  1. nommer une requête avec VBA
    Par ivoratparis dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/06/2013, 10h37
  2. Souci Requête avec Vba.
    Par jeanmichel0404 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/06/2013, 10h06
  3. [AC-2003] Modifier critére de requête avec VBA
    Par Max02 dans le forum IHM
    Réponses: 6
    Dernier message: 14/02/2013, 09h24
  4. [AC-2003] Problème création de requête avec VBA
    Par Sylas dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/11/2012, 14h35
  5. Réponses: 2
    Dernier message: 17/10/2005, 14h58

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