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 :

Sélection en fonction de requête en VBA [AC-2007]


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
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Par défaut Sélection en fonction de requête en VBA
    Bonjour à tous,

    je vous explique ma problématique
    le titre du forum n'est pas très parlant mais je ne savais pas trop comment nommer celui-ci


    voila ce que j'aimerais faire
    sous access j'ai un formulaire qui me permet de choirir une date (année) dans un champ:

    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
     
     
    Private Sub Cmd_recherche_annee_Click()
    Dim sql_annee As String
    Dim rs As DAO.Recordset
    sql_annee = "SELECT * FROM T_echafaudage WHERE YEAR(date_pose) ='" & Me.Annee & "' ;"
    Set rs = CurrentDb.OpenRecordset(sql_annee)
    If Not rs.EOF Then
     'On supprime les enregistrements de la table avant de la remettre à jour
     DoCmd.SetWarnings False
     DoCmd.RunSQL "DELETE * FROM T_synthese;"
     
     
     'DoCmd.OpenReport "ES_SyntheseAnnee", acViewPreview
    Else
      MsgBox "Année incorrecte ", vbInformation, "Année"
    End If
    rs.Close
    Set rs = Nothing
    End Sub

    je me suis créer une nouvelle table T_synthese que je vide à chaque fois afin de pouvoir la remplir avec les données que j'aimerais pouvoir récupérer

    en gros mon premier select me fait une sélection des lignes de la table T_echafaudage en fonction de l'année passée en paramètre

    ce que j'aimerais maintenant c'est pouvoir faire des sélections dans les entrées afin de pouvoir insérer les données que je veux dans T_synthese

    en gros faire une boucle sur tous les enregistrements et garder ceux que je veux en fonction de critères

    par exemple insérer dans ma nouvelle table, pour chaque ligne parcourue le numero_echaufaudage et d'autres critères par exemple si un champ =4 alors ajouter dans ma table "toto"

    merci de votre aide car je mouline
    Blado_sap

  2. #2
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Blado_sap,

    regarde la réponse dans cette faq : http://access.developpez.com/faq/?page=SQL#Parcourirrst

    une fois récupéré les champs souhaités un insert dans ta table temporaire

    pour l'insertion ici : http://access.developpez.com/faq/?page=SQL#DiffRstSQL

    pour ta requête :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    sql_annee = "SELECT * FROM T_echafaudage WHERE YEAR(date_pose) ='" & Me.Annee & "' ;"

    à mettre en numérique

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    sql_annee = "SELECT * FROM T_echafaudage WHERE YEAR(date_pose) =" & Me.Annee & " ;"

    Cldt

    jimbolion

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Par défaut
    Bonjour Jim,

    merci de ton aide

    par contre comment je fais pour récupérer mes champs dans des variables?

    par exemple dans temp_mois je voudrais récupérer le mois de mon champ date_pose qui est dans ma table T_echafaudage
    et idem dans temp_urgence qui contiendrait le champ urgence de ma table T_echafaudage??

    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
     
     
    Private Sub Cmd_recherche_annee_Click()
    Dim sql_annee As String
    Dim rs As DAO.Recordset
    'On supprime les enregistrements de la table avant de la remettre à jour
    DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE * FROM T_synthese;"
    sql_annee = "SELECT * FROM T_echafaudage WHERE YEAR(date_pose) =" & Me.Annee & " ;"
    Set rs = CurrentDb.OpenRecordset(sql_annee)
     
    If Not rs.EOF Then
      rs.MoveFirst
      While Not rs.EOF
         ' Code
         Dim temp_mois As Integer
         Dim temp_urgence as Integer
         temp_mois = Month( ??? )
         temp_urgence = ???
     
         rs.MoveNext
      Wend
    Else
      MsgBox "Année incorrecte ", vbInformation, "Année"
    End If
     
      'DoCmd.OpenReport "ES_SyntheseAnnee", acViewPreview
     
    rs.Close
    Set rs = Nothing
    End Sub

    D'avance merci
    Blado_sap

  4. #4
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Blado_sap


    Très simplement exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp_urgence = rs![temp_urgence]
    si temp_urgence est le champ de ta table

    Jimbolion

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2007
    Messages : 116
    Par défaut
    Merci Jim

    effectivement j'avais la tete ailleurs lors de ma question

    par contre quelle est la différence entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
         Dim temp_mois As String
         temp_mois = Month(rs("date_pose"))
    et ce que tu proposes avec le !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    temp_urgence = rs![temp_urgence]
    Merci
    Blado_sap

  6. #6
    Expert confirmé
    Avatar de jimbolion
    Homme Profil pro
    Moulticien
    Inscrit en
    Janvier 2013
    Messages
    3 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Moulticien
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 3 150
    Billets dans le blog
    2
    Par défaut
    Blado_sap,

    c'était juste un exemple soulevé par ton code temp_urgence = ???.

    J'en ai donc déduit que temp_Urgence était une variable à alimenter par rapport à la récupération d'un champ.


    La bonne syntaxe est donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim temp_mois As String
         temp_mois = Month(rs("date_pose"))
    Cela dit puisque la requête répond à ton filtre tu aurais aussi bien pu mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim temp_mois As String
         temp_mois =Me.Annee

    JimboLion

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/08/2013, 13h29
  2. [AC-2007] Requête sélection et fonction SI
    Par Stoo69 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 04/05/2011, 06h20
  3. [AC-2002] Fonction requête récursive VBA
    Par jobe3141 dans le forum Access
    Réponses: 11
    Dernier message: 24/02/2011, 16h30
  4. [SQL] Élaborer une requête de sélection en fonction d'un formulaire
    Par encore_php dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/02/2008, 08h10
  5. Requête de sélection avec fonction "compte"
    Par KEROZEN dans le forum Access
    Réponses: 3
    Dernier message: 25/05/2006, 10h11

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