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 :

Code SQL dans une table


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    A mon compte
    Inscrit en
    Décembre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : A mon compte

    Informations forums :
    Inscription : Décembre 2015
    Messages : 53
    Par défaut Code SQL dans une table
    Bonjour à tous,

    J'ai un programme utilisé sur différents sites, avec des paramètres différents sur chaque site. Lorsque je fais une mise à jour quelconque, il faut donc que je modifie le code VBA des forms de chaque programme, pour que les variables contenues ne soient pas affectées.

    Est-il possible, qu'un champ des table contienne un code sql a exécuter en VBA ? Si oui, comment l'appeler sous VBA pour qu'il s'exécute ?
    ceci me rendrait la vie plus facile, car il me suffirait de glisser le formulaire modifié lors d'une MAJ sur chacun des programmes de chaque site, sans avoir a les ouvrir un par un pour modifier le code VBA. (sinon les requetes SQL sont écrasées elle aussi)

    Voici le code VBA qui est censé appeler la requête contenue dans la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Form_Activate()
    Dim CODESQL As String
     
    CurrentDb.Execute "DELETE * FROM [T_AJOUT TABLEAU DE BORD];"
     
    CODESQL = DLookup("[CODE SQL]", "[T_PARAMETRES_TACHES_MG]", "[N°] = 10")
     
    CurrentDb.Execute CODESQL

    J'ai testé, mais j'ai une erreur :
    Nom : Capture d’écran 2018-11-19 à 10.51.56.png
Affichages : 185
Taille : 124,4 Ko

    Merci de votre aide

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 977
    Par défaut
    bonjour,
    Est-il possible, qu'un champ des table contienne un code sql a exécuter en VBA ?
    oui sans problème, pour autant que la syntaxe est correcte.

    Peut-on voir un exemple de ce que contient le champ [CODE SQL] ? On dirait que dans le message d'erreur le code SQL commencerait par: Currentdb.Execute ce qui pourrait expliquer le plantage.

  3. #3
    Membre averti
    Homme Profil pro
    A mon compte
    Inscrit en
    Décembre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : A mon compte

    Informations forums :
    Inscription : Décembre 2015
    Messages : 53
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    bonjour,

    oui sans problème, pour autant que la syntaxe est correcte.

    Peut-on voir un exemple de ce que contient le champ [CODE SQL] ? On dirait que dans le message d'erreur le code SQL commencerait par: Currentdb.Execute ce qui pourrait expliquer le plantage.
    Bonjour,

    Merci pour ta réponse, ça m'a mis sur la voie direct !!

    Effectivement, le code contenu dans la table était un copier / coller du code VBA !! Il fallait juste retirer CurrentDb.execute, les guillemets et parenthèses

    Pour le lancer sous VBA, il faut aussi passer par Docmd.RunSQL VARIABLE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INSERT INTO [T_AJOUT TABLEAU DE BORD] ( [N° AFFAIRE], NOM1, NOM2, TACHE, N°TACHE )
    SELECT [RQ_TB_FACTURE RETROCOMMISSION].N°AFFAIRE, [RQ_TB_FACTURE RETROCOMMISSION].NOM1, [RQ_TB_FACTURE RETROCOMMISSION].NOM2, [RQ_TB_FACTURE RETROCOMMISSION].Expr1, [RQ_TB_FACTURE RETROCOMMISSION].Expr2
    FROM [RQ_TB_FACTURE RETROCOMMISSION];
    Problème résolu, merci

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

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 977
    Par défaut
    Pour le lancer sous VBA, il faut aussi passer par Docmd.RunSQL VARIABLE
    Currentdb.Execute(VARIABLE, dbFailOnError) fonctionne aussi

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

Discussions similaires

  1. Afficher le code SQL d'une table access | Possible ? |
    Par beegees dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 18/01/2019, 17h30
  2. Afficher le code SQL d'une table MYSQL : Possible ?
    Par beegees dans le forum Débuter
    Réponses: 2
    Dernier message: 24/11/2008, 15h29
  3. Enregistrer code barre dans une table
    Par lucienkany dans le forum Access
    Réponses: 2
    Dernier message: 03/03/2007, 15h08
  4. Stocker une requête SQL dans une table
    Par dmk04 dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 05/02/2007, 16h24
  5. [MySQL] Insertion de code HTML dans une table, avec UPDATE
    Par Daedalus31 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/02/2007, 13h19

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