Probleme access fonction si
anne26
Messages postés
35
Statut
Membre
-
blux Messages postés 27969 Date d'inscription Statut Modérateur Dernière intervention -
blux Messages postés 27969 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j' ai problème sur Access 2003:
Ma BDD contient une table "FICHIER SOURCE" (lié a un fichier Excel (donc non modifiable) pour une mise a jour automatique) avec des enregistrements correspondant à des commandes (N°Commande, Nom fournisseur,Raison sociale frs, Montant, etc..) une autre table "MODIFICATION" qui contient les même champs que la table précedente, cette table comportera des enregistrements seulement si on veut modifier quelque chose dans la commande( car le fichier source doit rester tel quel) et une table "FICHIER SOURCE BIS" qui est en faite une requete creation de table qui reprend elle aussi les meme champs que ""FICHIER SOURCE" avec 2 champs en plus.
Mon probleme est que j'ai créer une requete de type "suppression" que je vais executer chaque mois et qui me supprimera tous les enregistrements de la table "FICHIER SOURCE BIS" puis une requete de type "Ajout" qui me rajoutera les enregistrements de la table "FICHIER SOURCE" qui viendra d'être mise a jour. Or voila moi j'aimerais que ma requete "ajout" ajoute tous les enregistrements de la table "FICHIER SOURCE" sauf si il existe un enregistrement dans la table "MODIFICATION" dans ce cas au lieu de prendre l'enregistrement du fichier source il me prendrait celui ci. En clair si il voit un meme numéro de commande dans ces deux tables il prend la ligne de la table "MODIFICATION".
J'ai pensé a une fonction IIF mais ca ne marche pas, en faite je ne sais pas si il faut que je mette cette fonction dans le "SELECT" ou dans le "INSER INTO".
voila a quoi ressemble ma requete avec le IIF dans le "SELECT" :
INSERT INTO [FICHIER SOURCE BIS] ( [Num commande], [Date commande], Exercice,Fournisseur, [Raison sociale], [Ligne commande], Libellé, [Montant commandé (HT)], Nature, [Nature Retraitée] )
SELECT (iif[MODIFICATION].[Num commande] = "",([FICHIER SOURCE ].[Num commande], [FICHIER SOURCE ].[Date commande], [FICHIER SOURCE ].[Fournisseur], [FICHIER SOURCE ].[Raison sociale], [FICHIER SOURCE ].[Ligne commande], [FICHIER SOURCE ].Libellé, [FICHIER SOURCE ].[Montant commandé (HT)], [Nature],[Nature Retraitée]),
([MODIFICATION].[Num commande], [MODIFICATION].[Date commande], [MODIFICATION].Exercice,[MODIFICATION].[Fournisseur], [MODIFICATION].[Raison sociale], [MODIFICATION].[Ligne commande], [MODIFICATION].Libellé, [MODIFICATION].[Montant commandé (HT)], [MODIFICATION].Nature, [MODIFICATION].[Nature Retraitée])
FROM [FICHIER SOURCE],[MODIFICATION];
Désolé pour ce roman, votre aide me sera précieuse!
cordialement
j' ai problème sur Access 2003:
Ma BDD contient une table "FICHIER SOURCE" (lié a un fichier Excel (donc non modifiable) pour une mise a jour automatique) avec des enregistrements correspondant à des commandes (N°Commande, Nom fournisseur,Raison sociale frs, Montant, etc..) une autre table "MODIFICATION" qui contient les même champs que la table précedente, cette table comportera des enregistrements seulement si on veut modifier quelque chose dans la commande( car le fichier source doit rester tel quel) et une table "FICHIER SOURCE BIS" qui est en faite une requete creation de table qui reprend elle aussi les meme champs que ""FICHIER SOURCE" avec 2 champs en plus.
Mon probleme est que j'ai créer une requete de type "suppression" que je vais executer chaque mois et qui me supprimera tous les enregistrements de la table "FICHIER SOURCE BIS" puis une requete de type "Ajout" qui me rajoutera les enregistrements de la table "FICHIER SOURCE" qui viendra d'être mise a jour. Or voila moi j'aimerais que ma requete "ajout" ajoute tous les enregistrements de la table "FICHIER SOURCE" sauf si il existe un enregistrement dans la table "MODIFICATION" dans ce cas au lieu de prendre l'enregistrement du fichier source il me prendrait celui ci. En clair si il voit un meme numéro de commande dans ces deux tables il prend la ligne de la table "MODIFICATION".
J'ai pensé a une fonction IIF mais ca ne marche pas, en faite je ne sais pas si il faut que je mette cette fonction dans le "SELECT" ou dans le "INSER INTO".
voila a quoi ressemble ma requete avec le IIF dans le "SELECT" :
INSERT INTO [FICHIER SOURCE BIS] ( [Num commande], [Date commande], Exercice,Fournisseur, [Raison sociale], [Ligne commande], Libellé, [Montant commandé (HT)], Nature, [Nature Retraitée] )
SELECT (iif[MODIFICATION].[Num commande] = "",([FICHIER SOURCE ].[Num commande], [FICHIER SOURCE ].[Date commande], [FICHIER SOURCE ].[Fournisseur], [FICHIER SOURCE ].[Raison sociale], [FICHIER SOURCE ].[Ligne commande], [FICHIER SOURCE ].Libellé, [FICHIER SOURCE ].[Montant commandé (HT)], [Nature],[Nature Retraitée]),
([MODIFICATION].[Num commande], [MODIFICATION].[Date commande], [MODIFICATION].Exercice,[MODIFICATION].[Fournisseur], [MODIFICATION].[Raison sociale], [MODIFICATION].[Ligne commande], [MODIFICATION].Libellé, [MODIFICATION].[Montant commandé (HT)], [MODIFICATION].Nature, [MODIFICATION].[Nature Retraitée])
FROM [FICHIER SOURCE],[MODIFICATION];
Désolé pour ce roman, votre aide me sera précieuse!
cordialement
A voir également:
- Probleme access fonction si
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Access appdata - Guide
- Acer quick access - Forum logiciel systeme
1 réponse
Salut,
J'ai pensé a une fonction IIF mais ca ne marche pas
Et le souci est de quel genre :
- message d'erreur
- coupure de l'électricité
- résultats non conformes à la prévision
- descente de police
- ... ?
Ton idée me paraît correcte, en tout état de cause, le IIF doit se mettre à la sélection puisque la table de destination est la même quelle que soit la table d'origine... mais je n'ai jamais testé ce truc...
J'ai pensé a une fonction IIF mais ca ne marche pas
Et le souci est de quel genre :
- message d'erreur
- coupure de l'électricité
- résultats non conformes à la prévision
- descente de police
- ... ?
Ton idée me paraît correcte, en tout état de cause, le IIF doit se mettre à la sélection puisque la table de destination est la même quelle que soit la table d'origine... mais je n'ai jamais testé ce truc...