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 :

Utiliser SQL, VB ou ADO ?


Sujet :

Requêtes et SQL.

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

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 49
    Points
    49
    Par défaut Utiliser SQL, VB ou ADO ?
    Bonjour à tous,

    Une fois de plus, j'ai besoin de vous ! Comme je ne les maitrise vraiment pas, je ne sais pas quel langage utiliser pour permettre la mise à jour des champs des tables de ma base.

    Je m'explique :
    J'ai une table "TableFlore" avec les champs NomVegetal ; NiveauProtection
    Une autre table "TableFlore2" avec NomVegetal; NiveauProtectionLocal; CodeDepartementRegion

    - Si un Végétal a un niveau de protection nationale le code NiveauProtection est 1, si le niveau de protection est départemental ou régional il est de 9
    - Si le code NiveauProtection est 9, la table Flore2 recense son nom, le niveau de protection départemental ou régional; les codes des régions ou départements où il est protégé.

    Des requetes me permettent ainsi d'obtenir pour chaque département une liste de Flore avec les niveaux de protection selon le département où l'on est.

    Pour mettre à jour la liste de Flore, je dois donc intervenir sur ces deux tables.
    Par exemple, pour une faute d'orthographe dans le nom du végétal; je dois donc modifier le nom du végétal dans la table "TableFlore2" pour que les infos de cette table soit toujours en lien avec le végétal de "TableFlore" au nom corrigé.
    Je pensais sur un formulaire :
    - Variable1 : recuperer le nom de l'espèce floristique avant changement dans la table "TableFlore1"
    - Variable2 : Recuperer le nom de l'espèce floristique après changement dans la table "TableFlore"
    - Executer une requete sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Update [TableFlore2]
    Set NomVegetal = Variable2
    Where [NomVegetal] = Variable1
    Mais cette requete SQL ne reconnait pas les variables... Est-ce que l'on peut la "forcer" à les prendre en compte ? Est-ce que ce que je veux faire est faisable en VB ? ou est-on obligé de passer par le langage ADO (avec qui jai peu d'affinité )

    Merci d'avance pour toutes vos remarques !
    Julie

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    Tu peux exécuter une instruction SQL UPDATE en VBA:
    Code vb : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim strAncienNom As String, strNouveauNom As String
    Dim strSQL As String
     
    strAncienNom = "Ancien Nom"
    strNouveauNom = "Nouveau Nom"
     
    strSQL = "UPDATE [TableFlore2]" & vbCrLf & _
             "Set [NomVegetal]='" & strNouveauNom & "'" & vbCrLf & _
             "WHERE ([NomVegetal])='" & strAncienNom & "'"
     
    'DoCmd.SetWarnings False
    DoCmd.RunSQL strSQL
    'DoCmd.SetWarnings True
    Si tu ne veux pas voir les messages d'avertissement, tu actives les deux lignes que j'ai mis en commentaire,
    en retirant le '.

    A+

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Julie!!!, salut LedZeppII

    c'est pour cela que l'on utilise pas des noms mais des indices/code/référence... comme lien.

    cela dit, l'utilisation de l'intégrité référentielle avec une maj en cascade te résout ce soucis: sans code...


  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bonjour !

    Merci pour vos réponses !

    En effet, vodiem, j'ai modifié mes tables pour utiliser l'intégrité référentielle

    Par contre, j'ai bien besoin d'utiliser les requetes SQL en VBA pour modifier d'autres champs de ces tables... Merci LedZeppII pour m'avoir montré comment faire !

    A +
    Julie

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/03/2010, 16h39
  2. Utiliser SQL = (Comme "blabla*") mais En VBA sur I
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/10/2005, 19h30
  3. Application utilisable avec plusieurs SGBD - ADO ou DBX ?
    Par RamDevTeam dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/12/2004, 08h25
  4. Utilisation des API MySQL // ADO ou BDE ? (sujet 2)
    Par rohstev dans le forum C++Builder
    Réponses: 8
    Dernier message: 07/11/2003, 10h50

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