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

VB.NET Discussion :

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


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Possible d'avoir la valeur de CommandText après son affectation?

    Et de préciser s'il y a un message d'erreur.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Tu es sûr que ce n'est pas ton propre code qui afficher cette MessageBox ?

    Ca me semblerait bizarre que ce soit Access... je viens de faire un test similaire (copier beaucoup de lignes d'une table à une autre), et il m'a rien demandé.

    Apparemment il existe en VBA une fonction DoCmd.SetWarnings pour activer ou désactiver ces warnings, mais je pense que ça ne concerne que l'exécution à partir d'Access... Je sais pas si on peut utiliser cette fonction en VB.NET.

    Tu utilises quel provider ? OleDB ? ODBC ? Il n'y a pas un truc particulier dans ta chaine de connexion ?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    291
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 291
    Points : 390
    Points
    390
    Par défaut
    Bonjour,

    mais je pense que ça ne concerne que l'exécution à partir d'Access
    Oui la manipulation d'ACCESS via le code ne tient pas compte de la prévention d'exécution des requêtes d'insertion ou de création.

    Il faudrait comme l'a indiqué Sinople avoir la copie du command.text à l'exécution.

    J'ai eu ce problème lorsque le nom d'un champs de la table était un mot réservé de .Net (Section en l'occurrence). Mais là a priori je ne vois pas de mot réservé.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Points : 2 201
    Points
    2 201
    Par défaut
    Je pense que le messageBox dont il parle et celui que Access (le programme pas la bd) affiche lors d'une insertion multiple et à priori ça n'a aucun rapport avec le problème.

    Je penche sur un problème de la requête SELECT de l'INSERT qui ne renvoie aucun résultat (et par conséquent n'ajoute aucune ligne mais pas d'erreur).

  6. #6
    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
    Bonjour,
    Je vais tenter de répondre à tous à la fois, et de préciser ma demande :

    Citation Envoyé par sinople Voir le message
    Et de préciser s'il y a un message d'erreur.
    Non, il n'y a aucune message d'erreur.

    Citation Envoyé par tomlev Voir le message
    Tu es sûr que ce n'est pas ton propre code qui afficher cette MessageBox ?
    Tu utilises quel provider ? OleDB ? ODBC ? Il n'y a pas un truc particulier dans ta chaine de connexion ?
    Non, ce n'est pas mon propre code qui affiche cette messagebox. Je pense m'être mal exprimée en disant qu'access 'm'envoyait' une msgbox. J'ai en fait fait un copié-collé de la requête de vb vers access et je l'ai exécuté. Ce qui a provoqué le déclenchement de la fenêtre de confirmation dans access totalement indépendament de mon appli.
    J'utilise le provider OleDb et ma chaine de connexion me permet d'exécuter des select, le problème ne se situe donc pas là!

    Citation Envoyé par Geo2A Voir le message
    Il faudrait comme l'a indiqué Sinople avoir la copie du command.text à l'exécution.
    Là, je crains ne pas comprendre ce que vous avez voulu dire. Comment avoir la copie du command.text à l'exécution ?

    Cordialement

  7. #7
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 156
    Points : 25 075
    Points
    25 075
    Par défaut
    Citation Envoyé par guznat Voir le message
    Là, je crains ne pas comprendre ce que vous avez voulu dire. Comment avoir la copie du command.text à l'exécution ?
    avec un point d'arret, tu peux alors faire un espion express sur le commandtext pour récupérer le résultat de la concaténation
    et donc vérifier si correspond à ce que tu voulais
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par guznat Voir le message
    Non, ce n'est pas mon propre code qui affiche cette messagebox. Je pense m'être mal exprimée en disant qu'access 'm'envoyait' une msgbox. J'ai en fait fait un copié-collé de la requête de vb vers access et je l'ai exécuté. Ce qui a provoqué le déclenchement de la fenêtre de confirmation dans access totalement indépendament de mon appli.
    Ah, mais ça change tout... ce n'est pas du tout un problème VB alors !
    Tu auras sans doute des meilleures réponses dans le forum 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: 2
    Dernier message: 27/01/2011, 16h42
  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