|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Maximilien Consultant en technologies Inscription : avril 2011 Messages : 109 ![]() |
Bonjour à tous,
Je rencontre un soucis dans la construction d'une base de données sous accès. Mon problème est que je voudrai vérifier la présence d'une valeur dans une table avant l'insertion de cette même valeur, afin d'éviter des doublons, en language Vba. Est-ce que quelqu'un peut m'aider? ![]() Je vous remercie |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
Hello
plusieurs solutions: - index sans doublons, ce qui interdit à la requête d'ajout de travailler - fonction dlookup utilisée en VBA - requête supression avant la requête ajout - requête de non correspondance - .... donne un peu plus de précisions pour une aide plus adaptée
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
10
|
|
|
#3 |
|
Futur Membre du Club
![]() Maximilien Consultant en technologies Inscription : avril 2011 Messages : 109 ![]() |
Merci pour ta réponse.
En fait dans la base,j'importe des données différentes qui se trouvent sur des fichiers excel,ces valeurs peut aller de 200 à 6000 lignes pour pouvoir faire des comparaisons.Lors de chaques importations,j'ai créer une requête qui permet de rajouter une donnée dans une colonne afin d'identifier quelle est le fichier importé.cette donnée est demandé à chaque fois à l'utilisateur. Ce que je voudrai est dès que l'utilisateur entre la donnée dans la fenêtre "veuillez entrer la référence" une macro vérifie si cette valeur est présente dans la colonne si oui refuser l'importation,sinon effectuer l'importation. Je vous remercie de votre aide |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
hello
alors c'est dlookup qui va te permettre de trouver si la valeur existe
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Maximilien Consultant en technologies Inscription : avril 2011 Messages : 109 ![]() |
Merci
Cette information,je l'ai déjà aperçu sur d'autre personne qui ont déjà eu ce genre de soucis. Mais je n'arrive pas à le mettre en place. |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Jacques PetiotIndépendant développeur et formateur Inscription : octobre 2007 Messages : 891 ![]() |
hello
est tu déjà touché un peu à VBA? si oui, sur sortie de la zone de texte un petit programme si isnull(dlookup("le nom du champ","la table","la bonne colonne = " & la valeur de la zone de texte)) alors exécuter requête ajout sinon msgbox "blabla" pour te donner la vraie programmation, il me faudrait beaucoup plus de renseignements
__________________
-------------------Simplifi----------comme si tout était simple-------- |
|
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Maximilien Consultant en technologies Inscription : avril 2011 Messages : 109 ![]() |
Salut merci pour ton aide, pour répondre à ta question oui j'ai déjà touché au VBA mais ça remonte à plusieurs années.
Concernant la formule que tu m'a indiqué ceci est bonne si on recherche une valeur dans une même table. Ce n'est pas mon cas,J'explique en quelques mots le fonctionnement de ma base. J'importe un classeur excel dans une table tampon sur celle-ci j’exécute une requête "mise à jour" afin de rajouter une valeur à la première colonne (identification pour les nombreuses importations)dès la requête fini,je lance une requête ajout dans une table "rapport" et je recommence des que j'ai un nouveau document excel. cette table "rapport" permet de faire des analyse comparaison,par rapport aux nombreuses importations. suite à ça,je voudrai pour chaque importation qu'une macro "recherche" se lance après l’exécution de la requête "mise à jour" par rapport à la valeur attribuer et qui me dise si cette valeur est présente dans la première colonne de la table "rapport" si oui, ne rien faire sinon exécuter requête ajout. quelqu'un peux m'aider?
|
|
|
00
|
|
|
#8 | ||||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 205 ![]() |
Bonjour,
A la lecture de ton dernier message, il me semble qu'il te faut créer une requête de non correspondance entre ta table tampon mise à jour (Table1) et ta table Rapport, table de destination pour l'ajout de tes données. La requête de non-correspondance entre Table1 et Rapport peut-être obtenu facilement à l'aide de l'assistant du même nom. Tu devrais aboutir à 1 sql du genre: Code sql :
Ensuite, supposons que cette requête se nomme Requete1, tu ajoute les données de cette requête dans la table Rapport au moyen d'une requête Ajout, qui devrait ressembler à cela au niveau sql: Code sql :
A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||||
|
00
|
|
|
#9 |
|
Futur Membre du Club
![]() Maximilien Consultant en technologies Inscription : avril 2011 Messages : 109 ![]() |
Merci pour ton aide.
Peux tu me dire comment rajouter suite à cette requête(non correspondance), un message disant donnée déjà existant si cela est le cas et non existant si absent? Merci |
|
|
00
|
|
|
#10 | ||
![]() ![]() Denis Développeur informatique Inscription : août 2004 Messages : 3 205 ![]() |
Salut,
Si ta requête Ajout (qui copie les données dans la table Rapport) se nomme "Ajout", alors tu peux mettre le code suivant sur clic d'un bouton "Commande1" (dans un formulaire) : Code :
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp. Bon développement ! Mes tutoriels et contributions sur ma page perso: Ma page personnelle |
||
|
00
|
|
|
#11 |
|
Futur Membre du Club
![]() Maximilien Consultant en technologies Inscription : avril 2011 Messages : 109 ![]() |
Je viens d'essayer ça marche parfaitement. J'étais sur le point d'abandonner.
Je te remercie fortement ![]()
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com