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 :

Syntaxe ds SQL qui utilise des variables [AC-2000]


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 222
    Points
    222
    Par défaut Syntaxe ds SQL qui utilise des variables
    Bonjour à tous.

    Soit un code - ci-dessous - dans un formulaire. A de nombreux endroits, il me faut utiliser le même code, j'ai donc choisi de le mettre dans une sub spécifique.

    Mais je n'arrive pas à utiliser mes variables dans mon instruction SQL. Au début du sql, comme il y a des "", j'y arrive, mais pas après. J'ai mis en gras la partie qui me pose problème.

    Si quelqu'un peut m'expliquer quelles sont les règles de syntaxe

    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
    Option Explicit
    Option Compare Database
    
    Dim CheminFichier As String 'Variable pour sélection fichier à ouvrir
    Dim TypeFichier As String   'Type de fichier utilisé pour compléter le titre de boite _
                                sélection du fichier, dans le TransfertText et dans la sub ci dessous
    Dim NomChamps As String     'Utilisation dans la sub ci-dessous pour nom du champs dans la table
    
    Public Sub SupprLignesVides()
            'Utilisation du module "BoiteOuvrirFichier pour sélectionner le fichier
    CheminFichier = OuvrirUnFichier(Me.hwnd, "Sélection du fichier " & TypeFichier & "", 1, "Fichier Texte", "txt")
            'Importation des données dans la table
    DoCmd.TransferText acImportDelim, "", "tbl" & TypeFichier & "", CheminFichier, True, ""
            'Suppression des lignes de saut de pages et autres lignes inutiles DoCmd.SetWarnings False
        DoCmd.RunSQL "DELETE tbl" & TypeFichier & ".* FROM tbl & TypeFichier & WHERE ((tblLBL.F2) Is Null)"
    DoCmd.SetWarnings True
            'Suppression table import Erreur - utilise le module VideTablesErreurs
    PurgeErreurs
    End Sub
    
    Public Sub btnImportLBL_Click()
    On Error GoTo Err_btnImportLBL_Click
            
    TypeFichier = "LBL"
    NomChamps = "F2"
    
    SupprLignesVides
    
    Exit_btnImportLBL_Click:
        Exit Sub
    
    Err_btnImportLBL_Click:
        MsgBox err.Description
        Resume Exit_btnImportLBL_Click
        
    End Sub
    Vous en remerciant par avance, veuillez agréer l'expression de mes sincères salutations.

    Bruno
    Salutations

    Bruno


  2. #2
    Membre habitué

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    155
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 155
    Points : 196
    Points
    196
    Par défaut
    Bonjour,

    Je vois 2 problèmes :
    1. D'abord TypeFichier est une variable, il manque donc un " et un espace avant le WHERE et un " après le 2ème Tbl
    2. Ensuite qu'est-ce que TblLBL ? Je crois que le nom de la table est "Tbl" & TypeFichier


    La bonne écriture doit don être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "DELETE tbl" & TypeFichier & ".* FROM tbl" & TypeFichier & " WHERE tblL" & TypeFichier & ".F2 Is Null"
    ou plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.RunSQL "DELETE * FROM tbl" & TypeFichier & " WHERE F2 Is Null"

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 227
    Points : 222
    Points
    222
    Par défaut Ca y est, c'est OK
    Re bonjour à tous

    Merci à ALAIN36 pour sa réponse.

    En effet, cela fonctionne grace à son aide. Voici ma syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        DoCmd.RunSQL "DELETE * FROM tbl" & TypeFichier & " WHERE " & NomChamps & " Is Null"
    Le nom de la table est tblLBL et le champ de table s'appelle F2 dans le cas cité plus haut, sachant que cela change (c'est bien pour cela que je le met dans une sub à part appelée depuis différents évènements du formulaire, et non dans l'évènement du bouton avec le code en dur) - tous mes noms de tables commencent par tbl ou TypeFichier est la fin du nom de la table (ici LBL) et NomChamps est le nom du champ de table (ici F2)

    Encore merci.

    A bientôt et bonne journée à tous.
    Salutations

    Bruno


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

Discussions similaires

  1. Syntaxe d'utilisation des variables
    Par Touma02 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/02/2011, 12h09
  2. Réponses: 2
    Dernier message: 01/07/2009, 10h33
  3. Comment utiliser des variables dans une requête SQL ?
    Par Ragnarok85 dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 12/02/2007, 16h23
  4. Afficher sous Word des données SQL qui contient des retours
    Par samoht dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 30/09/2005, 16h12
  5. Utiliser des variables d'environnements
    Par Xam335 dans le forum C++Builder
    Réponses: 2
    Dernier message: 14/08/2004, 14h15

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