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 :

Création d'une requete en VBA


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Par défaut Création d'une requete en VBA
    Bonjour,

    J'ai lu de nombreux message mais sans y trouver une réponse adaptable à mon problème (notons que je débute dans l'utilisation d'access).

    J'ai créé un formulaire avec plusieurs listes déroulantes qui me permettent de créer une requete SQL en VBA: code ci dessous. Or, dans ce type de code, je ne peux pas utiliser la fonction doCmd.RunSQL. Comment puis je exécuter cette commande simplement. En outre, si j'utilise un lien avec des critères d'une requete préenregistrée, se pose le problème si je ne souhaite pas filtrer sur l'un des champs. Enfin, je cherche à afficher mon résultat dans un rapport.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub Commande45_Click()
     Dim SQL As String
     
     
    SQL = "SELECT total_entreprise.NUMERO_APPEL, total_entreprise.Raison," & _
    "total_entreprise.Adresse, total_entreprise.[Code postal], total_entreprise.Ville," & _
    "total_entreprise.Département, total_entreprise.CST, total_entreprise.Effectifs," & _
    "total_entreprise.[Masse salariale], total_entreprise.[Type de dossier]," & _
    "total_entreprise.[Versement total], total_entreprise.FNDMA, total_entreprise.[Taxe CDA]," & _
    "total_entreprise.[Affecté A], total_entreprise.[Affecté B], total_entreprise.[Affecté C]," & _
    "total_entreprise.[Affecté quota obligatoire], total_entreprise.[Affecté quota]," & _
    "total_entreprise.[Libre A], total_entreprise.[Libre AB], total_entreprise.[Libre B]," & _
    "total_entreprise.[Libre BC], total_entreprise.[Libre C]," & _
    "total_entreprise.[Libre Non Soumis], total_entreprise.[Libre Quota]" & _
    "FROM total_entreprise WHERE total_entreprise.Effectifs <> 0 "
     
     
     If Me.coche_effect = True Then
        SQL = SQL & "AND total_entreprise.Effectifs BETWEEN " & Me.Effect_entre & " AND " & Me.effect_et
     End If
     If Me.coche_masse = True Then
        SQL = SQL & "AND total_entreprise.[Masse salariale] BETWEEN " & Me.masse_entre & "AND " & Me.masse_et
     End If
     If Me.coch_cst = True Then
        SQL = SQL & "AND total_entreprise.CST ='" & Me.list_cst & "'"
     End If
     If Me.coch_cp = True Then
        SQL = SQL & "AND total_entreprise.[Code postal] ='" & Me.list_cp & "'"
     End If
     If Me.coch_dept = True Then
        SQL = SQL & "AND total_entreprise.Département ='" & Me.list_dept & "'"
     End If
     
    SQL = SQL & " ;"
     
     
    DoCmd.RunSQL SQL
     
    End Sub


    par avance merci

  2. #2
    Membre Expert
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Par défaut
    Bonjour,

    Pour les requêtes de sélection il faut utiliser les recordSet pour en exploiter les résultats, tu trouveras plus d'info dans la FAQ.

    Tu trouveras également bon nombre d'utilisation des RecordSet avec la fonction rechercher du forum.

    En espérant t'aider.

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    salut, et bienvenu sur le forum

    pourrais tu étayer:
    je ne peux pas utiliser la fonction doCmd.RunSQL
    ?

  4. #4
    Expert confirmé
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Par défaut
    Hello,

    il ne peut pas car c'est un SQL sélection et pas un SQL action ...

    il suffit d'affecter le SQL à une requête et de l'ouvrir après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sNomRequete = "toto"
    Currentdb.QueryDefs(sNomRequete).SQL = strChaineSQL
    DoCmd.OpenQuery sNomRequete
    Citation Envoyé par vodiem Voir le message
    salut, et bienvenu sur le forum

    pourrais tu étayer:


    ?

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Par défaut
    bonsoir cafeine,

    il ne peut pas car c'est un SQL sélection et pas un SQL action ...
    ben oui, evidemment ca explique bien des choses

  6. #6
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Citation Envoyé par artnquaist Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    "total_entreprise.[Libre Non Soumis], total_entreprise.[Libre Quota]" & _
    "FROM total_entreprise WHERE total_entreprise.Effectifs <> 0 "
    Juste un détail mais cela va te pourrir l'existence : ton code SQL ne fonctionnera pas si tu oublies ci-et-là les espaces.

    Le mot FROM doit avoir un espace devant un autre derrière.
    ==> "total_entreprise.[Libre Non Soumis], total_entreprise.[Libre Quota] " & _

    (c'est-à-dire avec un espace derrière le crochet)

Discussions similaires

  1. Création d'une feuille en VBA
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/07/2006, 14h23
  2. Erreur création d'une requete
    Par puppusse79 dans le forum Access
    Réponses: 1
    Dernier message: 18/05/2006, 23h50
  3. création d'une requete sql
    Par tounsi dans le forum Oracle
    Réponses: 15
    Dernier message: 22/02/2006, 16h12
  4. FAQ : problème avec création d'une requete en VBA
    Par Oluha dans le forum VBA Access
    Réponses: 14
    Dernier message: 14/02/2006, 12h05
  5. Réponses: 2
    Dernier message: 24/11/2005, 11h46

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