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 :

Insert into {matable} select {champs from matable2} avec access ne s'exécute pas


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17
    Points : 14
    Points
    14
    Par défaut Insert into {matable} select {champs from matable2} avec access ne s'exécute pas
    Bonjour à tous,

    J'exécute une requête insert into...select pour une base access (access m'est imposé comme bdd!) dans un programme en vb.net (donc avec visual studio).

    Mon souci est le suivant. Lorsque j'exécute la requête sql directement dans le sgbd (access donc), celle-ci s'exécute parfaitement MAIS en m'ayant envoyé au préalable un msgbox de confirmation de l'insertion des 985 lignes concernées par ladite requête. Il n'y a donc pas d'erreur dans ma requête sql.

    Par contre, lorsque je tente d'exécuter la requête à partir du déboguage du programme, aucune insertion ne se fait. J'imagine que la raison tient au fait que l'insertion n'a pas été confirmée...

    Et c'est donc là que je coince! Quelqu'un peut-il m'aider à résoudre ce léger désagrément???

    Par acquis de conscience, je joint tout de même l'extrait de code concerné :

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    InsertOle.Connection = MaconnexionOle
                        InsertOle.CommandText = "insert into clients_maintenance (Code_cli, Nom_cli, Cp_cli, Ville_cli, Tel_cli, Fax_cli, Port_cli, Courriel_cli, Site_cli) select " & code & ", " & nom & ", " & cp & ", " & ville & ", " & tel & ", " & fax & ", " & port & ", " & mail & ", " & siteinter & " from " & tab_client & ""
                        InsertOle.ExecuteNonQuery()

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 598
    Points : 34 283
    Points
    34 283
    Par défaut
    salut,

    si la requete doit etre access compatible, il faudrait :
    - ajouter des quotes autour des valeurs de type texte si tu passes des valeurs fixes,
    - s'assurer que les noms de champs sont sans espaces, sinon obligation de mettre des crochets

    Je suppose que ExecuteNonQuery est la fonction qui execute la requete
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    Dans le texte de la requête , que contiennent les variables code, nom, cp, ville, tel, fax, port, mail, siteinter ? Moi j'aurais écrit simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    InsertOle.CommandText = "insert into clients_maintenance (Code_cli, Nom_cli, Cp_cli, Ville_cli, Tel_cli, Fax_cli, Port_cli, Courriel_cli, Site_cli) select code, nom, cp, ville, tel, fax, port, mail, siteinter from tab_client"
    Pour vérifier que la requête est juste, le mieux est de faire un debug.print de InserOle.CommandText et de récupérer le SQL pour l'exécuter dans Access.

Discussions similaires

  1. INSERT INTO dans un champ avec contrainte.
    Par Brofestor dans le forum SQL
    Réponses: 7
    Dernier message: 16/09/2011, 14h34
  2. Réponses: 15
    Dernier message: 27/01/2011, 11h00
  3. Insert into matable (Chp1, Chp2, Chp3) select distinct
    Par Perplexe dans le forum Requêtes
    Réponses: 6
    Dernier message: 25/09/2009, 14h52
  4. Réponses: 9
    Dernier message: 07/02/2008, 13h44
  5. Probleme avec INSERT INTO et select
    Par jmjmjm dans le forum Requêtes
    Réponses: 9
    Dernier message: 28/01/2007, 22h51

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