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 :

Comment définir un nom de table sous forme d'une variable ? [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Comment définir un nom de table sous forme d'une variable ?
    Bonjour,

    Je souhâite creer une table avec une instruction SQL, dont les données proviennent d'une table dont le nom serait fournis par une variable.
    J'ai fait différents essais sans succés. Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     Function influtab(nomt As String, influ As String)
    Dim MonSql As String
    Dim MaDB As Database
    Set MaDB = CurrentDb()
     
     
    MonSql = "SELECT * INTO INFLXXZZZZN FROM " & nomt &" WHERE champ1 =" & influ & ";"
     
    MaDB.Execute MonSql
    MaDB.Close
     
    End Function
    J'ai un message concernant FROM.
    Y a t'il une solution ???

    J'ai essayé également aprés FROM: & nomt " IN 'C:\devis.accdb ' "
    mais j'ai un message sur 'C:\DEVIS.accdb ' qu'access considère comme un paramètre.
    Inutile de préciser que je suis débutant ! Merci pour toute suggestion.

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

    Il faut que ton nom de table soit mit par concaténation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonSql = "SELECT * INTO " & nomtable & " FROM " & nomt &" WHERE champ1 =" & influ & ";"
    nomtable est une variable comportant le nom de ta table.

    Philippe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Ca marche...à moitié !
    Merci pour la réponse.

    J'ai essayé la solution proposée. Je prends bien en compte le paramètre nomTN pour le nom de la table à créer. Par contre le paramètre nomt pour la table source n'est pas accepté. J'ai le message suivant:
    ERREUR EXECUTION 3131
    ERREUR DE SYNTAXE DANS LA CLAUSE FROM

    J'ai défini NomTN et nomt comme string. Est ce bien la solution pour nomt ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 324
    Points : 470
    Points
    470
    Par défaut
    Es-ce que ça marche si tu enlève la clause Where déjà? Es-ce que nomt est une table existante?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut Petit à petit...
    Tout d'abord merci de votre aide.

    En réponse à votre message, en enlevant la clause WHERE....ça marche !
    Je copie alors la totalité de la table ..bien sur !

    VOICI MON CODE:

    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
    Function influtab()
    Dim MonSql As String
    Dim MaDB As Database
    Set MaDB = CurrentDb()
    Dim nomTN As String
    Dim nomT As String
    Dim nomX
    nomTN = "INFLXXZZZZN"
    nomT = "INFLU544033N"
    nomX = "532"
     
    MonSql = "SELECT * INTO " & nomTN & " FROM " & nomT & "WHERE  Champ1 = " & nomX & ";"
     
    MaDB.Execute MonSql
    MaDB.Close
     
    End Function
    Donc avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonSql = "SELECT * INTO " & nomTN & " FROM " & nomT & "WHERE Champ1 = " & nomX & ";
    "

    erreur 3131
    erreur de syntaxe dans la clause FROM

    MAIS AVEC:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonSql = "SELECT * INTO " & nomTN & " FROM " & nomT  & ";"
    TOUT EST OK ...mais je copie la table entière !!

    Une idée ? J'ai vérifié Champ1 existe bien et rigoureusement sous le syntaxe indiquée.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 58
    Points : 57
    Points
    57
    Par défaut EUREKA

    J'ai trouvé dans mon SQL il manquait un 'blanc' avant WHERE !

    SQL MAUVAIS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonSql = "SELECT * INTO " & nomTN & " FROM " & nomT & "WHERE Champ1 = " & nomX & ";"
    =======

    SQL BON
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonSql = "SELECT * INTO " & nomTN & " FROM " & nomT & "  WHERE Champ1 = " & nomX & ";"                                                       =====
    Avec toutes mes excuses et mes remerciements à tout ceux qui ont perdu leur temps à cause d'une erreur aussi idiote.

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

Discussions similaires

  1. [AC-2007] Passer le nom d'un sous-formulaire dans une variable
    Par faroukvazaha dans le forum VBA Access
    Réponses: 10
    Dernier message: 30/12/2014, 12h56
  2. afficher les données d'une table sous forme d'une arbre
    Par combe_6 dans le forum Servlets/JSP
    Réponses: 0
    Dernier message: 30/07/2014, 13h55
  3. comment recuperer les noms de table de sa BDD ?
    Par toony.m dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 16/03/2006, 20h03
  4. Exporter le contenu d'une table sous forme d'un script SQL
    Par Invité dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 14/09/2005, 11h08
  5. Réponses: 21
    Dernier message: 18/08/2005, 17h06

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