Salut, tout dépend du type de valeur que la base attend, les composants utilisés, il y a plein de solutions, on peut utiliser les fonctions Format, FormatDateTime, StrToDateTime, StrToDate, DateTimeToStr, requête SQL etc... par exemple...
Label1.Caption :=FormatDateTime('dd"/"mm"/"yyyy',Now); ADOQuery.Parameters.ParamByName('V1').DataType := ftDate; ADOQuery.Parameters.ParamByName('V1').Value := Now;
@+
Merci cs_yanb pour ta réponse mais j'ai dû mal formuler ma question. Je sais formatter et ecrire la valeur date correctement dans son champ.
Ce que je cherche c'est quel événement me permet de savoir que la valeur d'achat du produit vient d'être modifier pour déclancher l'ecriture de la date.
Merci encore.
En règle générale avec les événements BeforePost, BeforeEdit, AfterPost, AfterEdit,etc...de TFDQuery, TAdoQuery, ...qui agissent sur le DataSet.
Tu devrais pouvoir changer la date d'achat en comparant les valeurs d'achat avant l’événement Post / Edit et après...il te faut juste avoir une variable ou un record de la clé primaire et de la valeur d'achat avant et après ou une copie du Fields ou ...(c'est des exemples de solution)
Après pourquoi ne pas changer la date en même temps que le Edit de la nouvelle valeur d'achat...
procedure TForm1.FDQueryAfterEdit(DataSet: TDataSet); begin FDQuery.FieldByName('Date_Achat').Value := FormatDateTime('dd"/"mm"/"yyyy',Now); end;
@+
Bonjour.
Je vais faire des essais avec AfterPost et AfterEdit.
pou l'instant l'utilisateur saisie la date après avoir saisie la valeur. Le fait de valider la date sur le changement de la valeur d'achat ù'assure que l'utilisateur n'oubliera pas de saisir la date.
merci
Oui donc c'est dans le style de l'exemple que je viens de mettre :p faut juste vérifier qu'on est bien sur la modification de la valeur d'achat...sinon à l'arrache sans que l'utilisateur mette la date...J'ai pas testé le code ci-dessous, mais comme ca, ceci doit être transparent pour l'utilisateur avec BeforeEdit et BeforePost...A toi d'adapter vraiment au besoin...
var ValAchatAvant: string; ValAchatApres: string; procedure TForm1.FDQueryBeforeEdit(DataSet: TDataSet); begin ValAchatAvant := IntToStr(FDQuery.FieldByName('Val_Achat').Value); end; procedure TForm1.FDQueryBeforePost(DataSet: TDataSet); begin ValAchatApres := IntToStr(FDQuery.FieldByName('Val_Achat').Value); if ValAchatAvant <> ValAchatApres then FDQuery.FieldByName('Date_Achat').Value := FormatDateTime('dd"/"nn"/"yyyy hh":"mm":"ss',Now); end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionJe vais faire des essais avec AfterPost et AfterEdit.
attention avec le AfterPost il va falloir remettre le DataSet en Edition/Insertion...si vous voulez modifier.
@+