Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/01/2011, 18h00   #1
Invité de passage
 
nathalie muelas
Inscription : janvier 2011
Messages : 14
Détails du profil
Informations personnelles :
Nom : nathalie muelas

Informations forums :
Inscription : janvier 2011
Messages : 14
Points : 3
Points : 3
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 :
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()
guznat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 14h45   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
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
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2011, 16h42   #3
Membre Expert
 
Femme
Ingénieur développement logiciels
Inscription : juin 2007
Messages : 480
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France, Ain (Rhône Alpes)

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

Informations forums :
Inscription : juin 2007
Messages : 480
Points : 1 024
Points : 1 024
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 :
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.
tedo01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h40.


 
 
 
 
Partenaires

Hébergement Web