Une recherche positive empêchant une sauvegarde...
Lunasoft
Messages postés75Date d'inscriptionsamedi 28 juin 2008StatutMembreDernière intervention16 août 2011
-
17 mars 2010 à 16:20
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 2021
-
18 mars 2010 à 09:10
Salut!
J'ai une base de données ayant plusieurs champs. Mais je veux juste parler d'un seul avec mes codes écrit ci-bas afin de me faire mieux comprendre.
Mon problème est celui-ci:
dans ma base, il y a un champ appelé "companie". Et je fais une recherche en disant: si le nom de la companie demandée figure dans ce champ, la sauvegarde ne peut être faite.
if Ma_table.IsEmpty then begin
end else
showMessage('cette companie existe déjà dans le système...');
with Ma_table do
Ma_table.Append;
Ma_table.FieldValues['mon_client']:= edt_client.Text;
Ma_table.Post;
Donc, la sauvegarde ne pourra être faite en une condition. Si est seulement si le nom d'une companie n'a jamais été enregistré dans le système.
Curieusement, avec les codes ci-dessus je reçois naturellement le message de l'existence de la companie dans la base. Mais comment empêcher la non sauvegarde de données quand la donnée existe déja.
LunaSoft
A voir également:
Une recherche positive empêchant une sauvegarde...
Lunasoft
Messages postés75Date d'inscriptionsamedi 28 juin 2008StatutMembreDernière intervention16 août 2011 17 mars 2010 à 18:41
Huuum, bem. C'est pas vraiment ça que je veux. Je m'explique encore mieux ici en deux mots:
1. quand je cherche dans ma base de donnée:
Ma_table.Filter:='companie=' +quotedstr(cbx_companie.Text);
Ma_table.Filtered:=True;
si la companie y est. Je ne peux en aucun cas faire ni du "edit" (marcher dessus). Ni du "append" (sauvegarde des données diverses mais toujours dans de la même companie).
2. quand tu trouves la companie dis le moi:
if Ma_table.IsEmpty then begin
end else
showMessage('cette companie existe déjà dans le système...');
ce point c'est correct. Ça marche jusque là
3. la sauvegarde peut se faire à tout moment tant que ces codes sont en runtime. Mais à l'exécution de la recherche, si la companie est rencontrée dans la base. Que le mode "append" ou "edit" ne fonctionne pas. Sauf, si c'est la companie doit être sauvegardé la première fois.
with Ma_table do
Ma_table.Append;
Ma_table.FieldValues['mon_client']:= edt_client.Text;
Ma_table.Post;
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 18 mars 2010 à 09:10
pour faire une édition, le mieux est d'utiliser
un locate (true/false)
si la fonction renvoie true alors tu es calé sur l'enregistrement et donc tu peux faire :