[Access] création d'une entrée si non existan
Résolu
mat67000
Messages postés
400
Date d'inscription
Statut
Membre
Dernière intervention
-
mat67000 Messages postés 400 Date d'inscription Statut Membre Dernière intervention -
mat67000 Messages postés 400 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous :)
Voilà je me trouve dans une impasse et je n'arrive pas à trouver la solution.
Je me trouve avec un formulaire qui me sert, à partir d'un numéro de prise, à retracer le chemin réseau (ex. la prise 6234A est alimentée par le port 7 du switch 10). Donc mon formulaire est fait de la facon suivante :
J'ai d'abord un groupe d'options qui me selectionne l'etage (du RDC au 7e), puis un deuxième groupe d'options qui me selectionne la zone (de 1 à 4 selon l'etage), une zone de texte où on entre le n° de prise à 2 chiffres et enfin un 3e groupe d'option pour le doublage eventuel de la prise (A ou B), le tout forme mon numéro de prise complet (ex. 6234A) qui est stocker dans une zone de texte sous forme de variable.
Ensuite j'ai un bouton de recherche qui, grace à une requete, me trouve les infos sur la prise (n° de switch + port).
L'image qui suit sera plus claire :
http://hebergement-images.voiloo.net/membres/viewimg.php?img=575f87ad5c63e6ae73f6286d4c65b5b5.jpg
Maintenant ce que je désire faire, c'est que si la prise saisie n'existe pas dans ma table T_PRISE, que mon formulaire me propose de la créer et d'entrer les infos correspondantes (n° du switch et le port dont dépend la prise ainsi qu'une eventuelle remarque). Comment faire ?? car je bloque totalement sur ce point
D'avance merci...
Voilà je me trouve dans une impasse et je n'arrive pas à trouver la solution.
Je me trouve avec un formulaire qui me sert, à partir d'un numéro de prise, à retracer le chemin réseau (ex. la prise 6234A est alimentée par le port 7 du switch 10). Donc mon formulaire est fait de la facon suivante :
J'ai d'abord un groupe d'options qui me selectionne l'etage (du RDC au 7e), puis un deuxième groupe d'options qui me selectionne la zone (de 1 à 4 selon l'etage), une zone de texte où on entre le n° de prise à 2 chiffres et enfin un 3e groupe d'option pour le doublage eventuel de la prise (A ou B), le tout forme mon numéro de prise complet (ex. 6234A) qui est stocker dans une zone de texte sous forme de variable.
Ensuite j'ai un bouton de recherche qui, grace à une requete, me trouve les infos sur la prise (n° de switch + port).
L'image qui suit sera plus claire :
http://hebergement-images.voiloo.net/membres/viewimg.php?img=575f87ad5c63e6ae73f6286d4c65b5b5.jpg
Maintenant ce que je désire faire, c'est que si la prise saisie n'existe pas dans ma table T_PRISE, que mon formulaire me propose de la créer et d'entrer les infos correspondantes (n° du switch et le port dont dépend la prise ainsi qu'une eventuelle remarque). Comment faire ?? car je bloque totalement sur ce point
D'avance merci...
A voir également:
- [Access] création d'une entrée si non existan
- Creation compte gmail - Guide
- Création site web - Guide
- Media creation tool - Télécharger - Systèmes d'exploitation
- Création compte google - Guide
- Creation compte vinted - Guide
10 réponses
Salut,
il faut ajouter les éléments dans les différentes tables (en respectant l'ordre défini par les relations éventuelles entre tables : intégrité référentielle)
En gros : ouvrir un recordset sur chaque table, et appliquer la méthode addnew.
il faut ajouter les éléments dans les différentes tables (en respectant l'ordre défini par les relations éventuelles entre tables : intégrité référentielle)
En gros : ouvrir un recordset sur chaque table, et appliquer la méthode addnew.
Bonjour et merci pour ta réponse Blux
Je ne la comprends pas exactement, donc si tu pouvais me donner 2-3 précisions lol.
Quand tu dit qu'il faut ajouter les éléments dans les différentes tables, tu parles des elements que je veux entrer lors de la création d'une prise non existante ?? si c'est le cas, sache que ces infos sont toutes dans ma table T_PRISE. Bref je suis pas sur de bien comprendre lol. Dans tous les cas, je n'ai pas de relation avec intégrité réferentielle car je fais mes relations directement à partir des requetes. Ca va peut etre te faire monter au plafond mais on m'a conseillé de faire ça, ce qui evite des soucis et j'ai vu que c'est tout a fait faisable donc...
pour ce qui est d'ouvrir un recordset sur chaque table, et appliquer la méthode addnew, ouai ok mais là ça ne me parle pas du tout lol, je vais un peu chercher sur le Net pour comprendre de quoi tu me parles, mais ca devient un peu technique pour ma pauvre personne...
@ plus tard et merci :)
Je ne la comprends pas exactement, donc si tu pouvais me donner 2-3 précisions lol.
Quand tu dit qu'il faut ajouter les éléments dans les différentes tables, tu parles des elements que je veux entrer lors de la création d'une prise non existante ?? si c'est le cas, sache que ces infos sont toutes dans ma table T_PRISE. Bref je suis pas sur de bien comprendre lol. Dans tous les cas, je n'ai pas de relation avec intégrité réferentielle car je fais mes relations directement à partir des requetes. Ca va peut etre te faire monter au plafond mais on m'a conseillé de faire ça, ce qui evite des soucis et j'ai vu que c'est tout a fait faisable donc...
pour ce qui est d'ouvrir un recordset sur chaque table, et appliquer la méthode addnew, ouai ok mais là ça ne me parle pas du tout lol, je vais un peu chercher sur le Net pour comprendre de quoi tu me parles, mais ca devient un peu technique pour ma pauvre personne...
@ plus tard et merci :)
Ok jessairai mais ce que je ne comprends pas, c'est comment dire à access de prendre ma variable Resultat (qui est la concaténation qui donne le n° de prise à rechercher dans le formulaire) et de la comparer au champ Prise de ma table T_PRISE. Ensuite lui dire que si le numero de prise recherché se trouve dans T_PRISE alors afficher les infos, et sinon ouvrir une msgbox qui me dit que la prise n'existe pas et de me proposer de la créer.
Parce que, si je comprend bien, ta solution me dit comment créer la prise si elle n'existe pas mais je vois pas comment faire la comparaison entre une variable et l'enregistrement d'un champ d'une table...
PS. faut que j'arrete d'ecrire des romans lol, ça doit pas etre sympa pour toi de lire ca
Parce que, si je comprend bien, ta solution me dit comment créer la prise si elle n'existe pas mais je vois pas comment faire la comparaison entre une variable et l'enregistrement d'un champ d'une table...
PS. faut que j'arrete d'ecrire des romans lol, ça doit pas etre sympa pour toi de lire ca
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
J'ai un peu chercher l'utilisation de la fonction DLookup (que je n'ai pas parfaitement comprise) et j'aimerai te soumettre mon resultat pour que tu m'aides à comprendre ce qui ne va pas !
Lorsque je fait, indifferemment ce test :
dans ce cas, lorsque j'entre un num de prise existant, il me renvoi le num en question, par contre lorsque j'entre un num de prise qui n'existe pas, il me sort une erreur "Utilisation incorrecte de Null".
Et lorsque je rajoute :
il me ressort à tous les coups la msgbox OK !!
je pense vraiment etre pas loin mais je comprend plus trop lol...
Lorsque je fait, indifferemment ce test :
Dim var As Variant var = DLookup("[Prise]", "T_PRISE", "[Prise] = [Resultat] ") OU var = DLookup("[Prise]", "R_ESSAI", "[Resultat]=[Prise]") msgbox var
dans ce cas, lorsque j'entre un num de prise existant, il me renvoi le num en question, par contre lorsque j'entre un num de prise qui n'existe pas, il me sort une erreur "Utilisation incorrecte de Null".
Et lorsque je rajoute :
If var = Null Then MsgBox "faux" Else MsgBox "ok" End If
il me ressort à tous les coups la msgbox OK !!
je pense vraiment etre pas loin mais je comprend plus trop lol...
dlookup te renvoie un résultat : si rien n'est trouvé, alors var se retrouve avec une valeur non stable...
Il faut donc utiliser dcount, ça te renverra 0 si la prise n'existe pas et 1 si elle existe.
Pour ce qui est de tester 'null', ça se fait via une fonction :
A+ Blux
Il faut donc utiliser dcount, ça te renverra 0 si la prise n'existe pas et 1 si elle existe.
Pour ce qui est de tester 'null', ça se fait via une fonction :
If IsNull(var) then--
A+ Blux
"Les cons, ça ose tout. C'est même à ça qu'on les reconnait"
Je vais tester mais est ce que mon premier code c'est à dire :
te parait bon ?? sachant que [ Resultat] est une Zone de texte où est affichée la variable Calcul (qui calcul le num de prise dans le formulaire
Dim var As Variant var = DLookup("[Prise]", "T_PRISE", "[Prise] = [Resultat] ") OU var = DLookup("[Prise]", "R_ESSAI", "[Resultat]=[Prise]") msgbox var
te parait bon ?? sachant que [ Resultat] est une Zone de texte où est affichée la variable Calcul (qui calcul le num de prise dans le formulaire
Oublie mon post précédent car je croi avoir trouvé !!!!
j'aimerais juste que tu me confirme qu'il n'y a pas d'erreur de syntaxe ou un quelconque defaut dans mon code !!
dis moi que c'est bon pleaseeeeee !!! mais si ça ne l'est pas me le dit pas pour me faire plaisir lol
J'ai juste un doute sur "[Resultat]=[Prise]" car Resultat est une zone de texte où est contenu une variable et Prise est le champ de ma requete tiré de la table T_PRISE
J'ai juste besoin d'une confirmation que le code est bon car je doute sur les [ ]
merci :-)
j'aimerais juste que tu me confirme qu'il n'y a pas d'erreur de syntaxe ou un quelconque defaut dans mon code !!
Dim var As Variant var = DLookup("[Prise]", "R_ESSAI", "[Resultat]=[Prise]") If IsNull(var) Then MsgBox "faux" Else MsgBox "ok" End If
dis moi que c'est bon pleaseeeeee !!! mais si ça ne l'est pas me le dit pas pour me faire plaisir lol
J'ai juste un doute sur "[Resultat]=[Prise]" car Resultat est une zone de texte où est contenu une variable et Prise est le champ de ma requete tiré de la table T_PRISE
J'ai juste besoin d'une confirmation que le code est bon car je doute sur les [ ]
merci :-)
Je n'ai pas pour habitude de dire ce que les gens veulent entendre :-)
Ici, tu veux mettre dans 'var' la valeur du champ "Prise" de la table/requête "R_ESSAI" lorsque "Prise" a la même valeur que le champ "Resultat" de la table "R_ESSAI" (champ qui ne doit pas exister, je suppose), donc la valeur n'est pas trop bien précisée !!!
Je mettrais plutôt :
Ici, tu veux mettre dans 'var' la valeur du champ "Prise" de la table/requête "R_ESSAI" lorsque "Prise" a la même valeur que le champ "Resultat" de la table "R_ESSAI" (champ qui ne doit pas exister, je suppose), donc la valeur n'est pas trop bien précisée !!!
Je mettrais plutôt :
var = DLookup("[Prise]", "R_ESSAI", "[Prise] = '" & Resultat.Value &"'")ou
Resultat.TextSachant que les [] ne sont obligatoires pour ACCESS que lorsque les noms contiennent des espaces...
Lol et, entre nous, c'est bien de ne pas dire aux gens ce qu'ils veulent entendre !! :p
ba ne fait R_ESSAI n'est pas une table mais une requete que j'ai créée spécialement pour cette etape. Et le champ Resultat n'est contenu dans aucune table et/ou requete, c'est simplement le nom de la zone de texte où apparai le resultat de la varaible Calcul de mon fromulaire et c'est ce que je veux comparer : comparer le champ Prise de la table T_PRISE (ou plutot de la requete R_ESSAI) avec la variable calcul stockées dans la zone de texte Resultat
ba ne fait R_ESSAI n'est pas une table mais une requete que j'ai créée spécialement pour cette etape. Et le champ Resultat n'est contenu dans aucune table et/ou requete, c'est simplement le nom de la zone de texte où apparai le resultat de la varaible Calcul de mon fromulaire et c'est ce que je veux comparer : comparer le champ Prise de la table T_PRISE (ou plutot de la requete R_ESSAI) avec la variable calcul stockées dans la zone de texte Resultat
bien sur on est d'accord Blux.
Je voulais simplement récapituler afin qu'on soit d'accord tous les deux :-)
J'ai testé ta solution :
et cela fonctionne aussi, donc je vais laisser ça car ça me parait beaucoup plus propre !!
je clos le topic et un sincère merci à toi. Ca fait deux fois que tu m'aides et deux fois que j'arrive à ce que je veux grace à toi donc MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI !!!!
ouppsss désolé pour le flood :p
merci encore !!
Je voulais simplement récapituler afin qu'on soit d'accord tous les deux :-)
J'ai testé ta solution :
var = DLookup("[Prise]", "R_ESSAI", "[Prise] = '" & Resultat.Value &"'")
et cela fonctionne aussi, donc je vais laisser ça car ça me parait beaucoup plus propre !!
je clos le topic et un sincère merci à toi. Ca fait deux fois que tu m'aides et deux fois que j'arrive à ce que je veux grace à toi donc MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI !!!!
ouppsss désolé pour le flood :p
merci encore !!