|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité de passage
![]() Jonathan ColletÉtudiant Inscription : juin 2011 Messages : 3 ![]() |
Bonjour à tous !
Je rencontre l'erreur suivante lors de l'exéution d'un code VB sous Access 2003. Citation:
Code sql :
Le problème provient du rs.Addnew et du fait que la requête soit multiple. En effet, je l'ai testé avec une requête simple et donc un seul SELECT et ça marche. Est-ce que vous avez des idées sur la source du problème, parce que j'ai presque tout essayé et je suis à court d'idée. Merci d'avance ! |
|||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() |
Bonjour,
1/ On ne peut pas mettre à jour/ajouter des données d'une requête UNION 2/ Le mode d'ouverture de tes Recordsets doit être préciser selon ce que l'on veut faire. Donc tu dois procéder autrement. Entre (), je ne comprends pas ton code (les 2 RS ouvrent la même requête); explique ce que tu veux faire, on va trouver une alternative. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Jonathan ColletÉtudiant Inscription : juin 2011 Messages : 3 ![]() |
Tout d'abord, merci d'avoir donné une réponse aussi rapidement.
Ensuite, j'ouvre deux recordsets avec la même requête parce que je souhaite dupliquer une ligne en plusieurs lignes en répartissant la valeur de la colonne "Solde" entre toutes les lignes créées.(c'est un peu barbare peut-être comme méthode mais ça reste efficace sur d'autres procédures...) En effet, j'ai ma table Budget sur laquel je fais mon recordset. Je souhaite récupérer différents "libellé_N3" dans la requête et je n'ai de solution que d'utiliser une requête UNION. D'ailleurs, je ne savais pas que l'on ne pouvait ajouter de données lors d'une requête UNION. Ensuite pour le 2/, j'ai déjà essayé de préciser le mode d'ouverture mais ça ne changeait rien au problème. (j'ai essayé dbOpenDynaset,dbPessimistic comme l'avait conseillé l'aide Microsoft mais n'y a fait). Donc, je suis un peu perdu pour ajouter des données. Dois-je plutot ouvrir mon recordset avec dbOpenTable et appliquer un filtre ? Encore merci pour ton aide |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() |
Eh bien plus simplement, créé une table "temporaire" avec ta requête UNION :
Code :
SELECT ListeDesChampSouhaités FROM [Requête_UNION] INTO [Table_Cible] [WHERE Condition = Valeur] par exemple... De là, tu ouvres un Recordset sur cette table et tu procèdes aux ajouts nécessaires. Une fois cela fait, tu inserts alors les valeurs de cette table dans la table cible via un INSERT. Argy
__________________
Ils comptent sur vous... Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment. Web Site ‡ @Mail Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007 Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010 MDB Viewer : Visionneuse Access v4.0 |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Jonathan ColletÉtudiant Inscription : juin 2011 Messages : 3 ![]() |
![]() ![]() Oui, certes, c'est une très bonne méthode mais je pense avoir trouvé plus rapide et efficace à mon problème.En fait, j'utilisais des UNION pour récupérer des données provenant d'une seule table. Je pensais que ça allait simplifier le process hors ça l'a complètement bloqué (car je ne savais pas que l'instruction .AddNew ne s'appliquait pas avoir une requête multiple). Donc dans ma requête j'ai remplacé les UNION par des Code SQL :
OR Libellé_N3='Frais de déplacement' OR Libellé_N3... Donc merci quand même pour tes lumières qui m'aderont surement plus tard et j'ai appris quelque chose grâce à toi ! et encore
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com