Bonjour
Modifier la structure de la table via l'instruction SQL donnée par Dude se fait via Outils > SQL comme ceci :
Capture-1.png
Nota : mettre les noms de table entre guillemets
Cela dit, cette très bonne technique ne servira que pour la saisie de nouveaux enregistrements : il s'agit d'une valeur par défaut qu'on donne au champ ; les valeurs par défaut ne se "déclenchent" que lors de l'ajout de données, pas lors de modification.
Sur ce forum, en français et spécialement dédié à base il y a ce fil avec une base exemple qui contient une macro réalisant l'opération :
http://user.services.openoffice.org/fr/ ... 04&start=0
Dans cette base exemple l'affectation de la date du jour se faisait au changement d'enregistrement et donc, uniquement si le champ date n'était pas vide.
Il suffit de mettre ce test en commentaire (cf. ci-dessous) et affecter le lancement à l'événement "réception de focus" du contrôle pour répondre au besoin.
Code : Tout sélectionner
option explicit
Sub PysDateJour
'Lancée au changement d'enregistrement
'Met la date du jour dans le contrôle Date
dim PysCtrlDate as object
dim PysDate as variant, PysDateLong as long
'Pointe vers le contrôle Date dans
' le formulaire nommé "Standard" dans
' la collection des formulaires dans
' la couche "dessin"
' du document courant
PysCtrlDate = thiscomponent.DrawPage.Forms.getByName("Standard").getByName("Date")
'La fonction Date retourne la date en texte : JJ/MM/AAAA
'On crée un tableau en découpant au "/"
PysDate = split(Date, "/")
'Conversion en type Long et mise au format AAAAMMJJ
PysDateLong = PysDate(2) & PysDate(1) & PysDate(0)
'Si la date est vide
'Affectation de cette valeur à la propriété Date du contrôle
'if isEmpty(PysCtrlDate.Date) then
PysCtrlDate.Date = PysDateLong
'Validation du contrôle
PysCtrlDate.commit
'end if
End Sub
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.