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 :

Requête de création avec critères


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Points : 41
    Points
    41
    Par défaut Requête de création avec critères
    Bonjour,

    Voici mon soucis.
    J'aimerais créer une requête de création mais que les champs soient copiés si une case est cochée.

    Exemple : j'ai un champ1 et un champ 2 dans une table1 et ma requête de création doit créer une table2 avec soit le champ1, le champ2 ou les deux champs suivant qu'est cochée check1 ou check2 est cochée sur un formulaire.

    J'ai essayé de mettre un critère du genre :

    [forms]![Form1]![check1]=true
    Mais çà ne fonctionne pas

    Si quelqu'un a une piste je suis preneur.

    Bien à vous

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 977
    Points
    14 977
    Par défaut
    Bonsoir,
    Tu as 2 méthodes pour construire ta requète, soit avec une variable de type string qui contient l'instruction SQL (très pratique pour déboguer) ou l'exécution directe (moins facile à déboguer).
    Quelque soit ton choix, les 2 fonctionnent :
    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
    ' Solution 1
    If Me.Check1 = True Or Me.Check2 = True Then
        strSQL = "INSERT INTO table2 ("
        strSQL = strSQL & IIf(Me.Check1 = True, "champ1", "")
        strSQL = strSQL & IIf(Me.Check2 = True, ",champ2", "") & ")"
        strSQL = strSQL & " SELECT "
        strSQL = strSQL & IIf(Me.Check1 = True, "table1.champ1", "")
        strSQL = strSQL & IIf(Me.Check2 = True, ",table1.champ2", "")
        strSQL = strSQL & " FROM table1;"
     
        CurrentDb.Execute strSQL, dbFailOnError
    ' Solution 2
     
        DoCmd.RunSQL "Insert into table2 (" & (IIf(Me.Check1 = True, "champ1", Null) & IIf(Me.Check2 = True, ", champ2", Null)) & _
        ") SELECT " & (IIf(Me.Check1 = True, "table1.champ1", Null) & IIf(Me.Check2 = True, ", table1.champ2", Null)) & " from table1;"
    End If

  3. #3
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 859
    Points : 14 977
    Points
    14 977
    Par défaut
    S'il s'agit d'une création de table, c'est encore plus simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim strSQL As String
    If Me.Check1 = True Or Me.Check2 = True Then
    ' Solution 1
        strSQL = "SELECT " & (IIf(Me.Check1 = True, "table1.champ1", Null) & IIf(Me.Check2 = True, ", table1.champ2", Null)) & " INTO Table2 FROM Table1;"
        CurrentDb.Execute strSQL, dbFailOnError
    ' OU
    ' Solution 2
        DoCmd.RunSQL "SELECT " & (IIf(Me.Check1 = True, "table1.champ1", Null) & IIf(Me.Check2 = True, ", table1.champ2", Null)) & " INTO Table2 FROM Table1;"
    End If

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Déja un grand merci pour ton code qui fonctionne à merveille, j'utilise la solution 2 que tu m'as proposé et aucun soucis.

    Mais je voudrais pouvoir prendre des informations dans plusieurs tables et la je plante lol

    Voici le code que j'ai inscrit et comme tu t'en doute ca ne fonctionne pas sniff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DoCmd.RunSQL "SELECT " & (IIf(Me.Check90 = True, "Personnel.Matricule", Null) & IIf(Me.Check92 = True, ", Personnel.Nom", Null)) & " INTO Tmp_listing FROM Personnel;"
    DoCmd.RunSQL "SELECT " & (IIf(Me.Check115 = True, "Medic.Groupe_sanguin", Null) & IIf(Me.Check117 = True, ", Medic.CMAR", Null)) & " INTO Tmp_listing FROM Medic;"
    Auriez vous une idée ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Re bonjour,

    Voici ce que j'essaye de faire

    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
     
     
    If Me.Check90 = True Then
     
        strSQL = "SELECT " & (IIf(Me.Check90 = True, "Personnel.Grade", Null) & IIf(Me.Check90 = True, ", Personnel.Nom", Null)) & " INTO Tmp_listing FROM Personnel;"
     
    If Me.Check92 = True Then
     
        strSQL = "SELECT " & (IIf(Me.Check92 = True, "Personnel.Domicile", Null) & IIf(Me.Check90 = True, ", Personnel.Telephone", Null)) & " INTO Tmp_listing FROM Personnel;"
     
    If Me.Check94 = True Then
     
        strSQL = "SELECT " & (IIf(Me.Check94 = True, "Medic.Groupe_sangin", Null) & IIf(Me.Check94 = True, ", Medic.Rhesus", Null)) & " INTO Tmp_listing FROM Medic;"
     
    CurrentDb.Execute strSQL
    End If
    End If
    End If
    Mais il ne ce passe strictement rien

    Voyez vous ou est mon problème ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 80
    Points : 41
    Points
    41
    Par défaut
    Voila ou j en suis dans ma recherche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    If Me.Check90 = True Or Me.Check92 = True Then
     
        strsql = "SELECT " & (IIf(Me.Check90 = True, "Personnel.Grade", Null) & IIf(Me.Check90 = True, ",Personnel.Nom", Null) & IIf(Me.Check92 = True, ",Medic.CMAR", Null)) & " INTO Tmp_listing FORM " & (IIf(Me.Check90 = True, "Personnel", Null) & IIf(Me.Check92 = True, ",Medic", Null)) & ";"
     
        CurrentDb.Execute strsql
     
     
    End If
    Le soucis c 'est que j'ai une cinquantaire de check different et que cela doit inserer dans une nouvelle table les données de tables differentes.

    Le but est de données à l'utilisateur la possibilité de créer des listings personnalisés.

Discussions similaires

  1. Requête Père-Enfant avec critères multiples sur enfants
    Par gtaman dans le forum Langage SQL
    Réponses: 6
    Dernier message: 30/10/2013, 22h57
  2. Requête de stocks avec critères de dates
    Par fred_vannes56 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 13/05/2008, 17h15
  3. Différence de requêtes avec critères
    Par Nicola dans le forum Access
    Réponses: 7
    Dernier message: 07/09/2006, 19h08
  4. Requêtes sur enregistrements avec critères dates
    Par Aliveli dans le forum Access
    Réponses: 10
    Dernier message: 05/06/2006, 14h41
  5. Pb requête avec critères dans projet Access
    Par laville dans le forum Access
    Réponses: 4
    Dernier message: 19/04/2006, 21h09

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