Champs date - access - open office

Fermé
Valerie - 12 nov. 2007 à 10:42
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 - 27 mai 2009 à 18:39
Bonjour,

Je travaille actuellement sous access de Open Office et j ai un petit probleme. J'ai un champs date dans une de mes tables et je voudrais que lors d une saisie dans un formulaire ce champs date prenne la valeur de la date systeme. Idem pour l heure.
Pourriez vous m aider.
Merci d avance
A voir également:

23 réponses

Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
10 mars 2008 à 22:46
Bonsoir Raf,
Afin de résoudre votre problème, insérer la date du jour par défaut, il faut ouvrir le formulaire en mode "Modifier" et ensuite vous ouvrez les propriétées du champs "Date" puis sur l'onglet Evénement" et vous renseigner La propriétée "Réception de focus" en lui assignant la macro InsertDate.
Au cas ou elle n'est pas présente en voici une copie que vous devez enregistrer sous "OpenOffice.org Basic" qui se trouve sous : Outils - Macros - Gérer les macros -et clic sur OpenOffice.org Basic. Et là sous le nom de votre formulaire (qui doit être présent) clic sur le + puis + Standart et clic module1 ....le module s'ouvre et vous enregistez la macro ci dessous.
Sub InsertDate
    oDesktop = createUnoService("com.sun.star.frame.Desktop")
    oController = oDesktop.CurrentFrame.Controller
    oSelection = oController.Selection

    ' fixer la valeur de la date
    oDocument = oController.Model
    oFunction = CreateUnoService("com.sun.star.sheet.FunctionAccess")
    oFunction.NullDate = oDocument.NullDate
    dim aEmpty()
    oSelection.Value = oFunction.callFunction("TODAY", aEmpty())

    ' fixer le format de la date
    oFormats = oDocument.NumberFormats
    dim aLocale as new com.sun.star.lang.Locale
    oSelection.NumberFormat = oFormats.getStandardFormat(_
                    com.sun.star.util.NumberFormat.DATE, aLocale)
End Sub


Bon travail.
2
Bonjour à tous,

N'ayant que peu de connaissances en langages informatiques et seulement une petite expérience en base de données sur MS ACCESS alors qu'aujourd'hui je travaille sur openoffice BASE; je cherche exactement la réponse à la question de Raf, cad actualiser automatiquement un champ date d'un enregistrement à chaque modification.

Malheureusement lorsque j'exécute le code de la macro de Pingou le message d'erreur ("propriété ou méthode introuvable") apparait aux lignes oSelection = oController.Selection et oFunction.NullDate = oDocument.NullDate .


Après avoir chercher sans succès, je fais appel à votre indulgence pour m'indiquer la solution à mon problème.

Merci d'avance pour vos réponses,
Maël.

PS: je cherche aussi la macro qui fixe à jamais la date de la première enregistrement (je pense, la fonction =date() dans MS Access) ;)
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425 > Maël
24 mars 2009 à 17:00
Bonjour Maël,
Si vous suivez exactement la description du poste 20 votre problème de :
PS: je cherche aussi la macro qui fixe à jamais la date de la première enregistrement (je pense, la fonction =date() dans MS Access) ;)
Sera réglé.
Si non par là : https://forum.openoffice.org/fr/forum/ftopic9183.html
0
Maël > Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024
24 mars 2009 à 19:09
Merci pour ta réponse Jean-Pierre,

Je ne dois pas être doué, mais je n'arrive toujours pas à appliquer ta macro.

Peut-être fais-je une erreur de méthode dans le processus suivant :

- ouvrir en mode modifié le formulaire
- sélectionner le champ date
- comme je ne retrouve pas insertdate dans les macros préenregistrés, enregistrer la macro au chemin : outils […] macro openoffice.org basic.. à l’onglet formulaire >standard>module 1, clic sur nouveau, dans la page Basic après les deux lignes « main », la coller directement
- après quoi, je reviens aux propriétés du champ date pour appliquer la macro enregistrer, à l’événement « réception de focus »

Ensuite, lorsque je touche au champ date lors d’un nouvel enregistrement, la fenêtre Basic s’ouvre et le message d’erreur « propriété ou méthode introuvable » à la ligne : oFunction.NullDate = oDocument.NullDate apparait.

Voilà mon désarroi !
A toutes fins utiles, j’utilise openoffice 3.0 et windows XP.

Merci encore pour tout,
Maël.

PS : cette macro cherche à fixer la date de création de l’enregistrement ou de sa modification ? (drôle de question après tant de travail ;)
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425 > Maël
24 mars 2009 à 22:11
Bonjour Maël,
La macro est mal placé, elle ne doit pas être coller dans le module et non pas à l'intérieur d'un autre code
Sub Main ...... End Sub.
Coller avant le Sub Main ou après le End Sub.--

Salutations.
Jean-Pierre
0
Maël > Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024
25 mars 2009 à 12:16
Merci Jean-Pierre pour cette nouvelle réponse,

Malgré mon manque de connaissances en programmation, je n'avais pas fait l'erreur de coller le code au milieu d'un autre.

De toute façon, j'ai encore essayé toutes les possibilités d'inscription, sans trouver l'erreur commise. Je me résigne, pour l'instant, à passer à d'autres stades de la création de la base, en espérant résoudre ce problème plus tard.

Si jamais vous avez d'autres instructions je suis preneur, sinon je vous remercie encore pour vos réponses et votre temps.

Maël.

PS : cette macro cherche à fixer la date de création de l’enregistrement ou de sa modification ?
0
Bonjour,

Merci beaucoup à tous les 2 pour votre réponse... Oui le Pingou c'est bien en dessous (mais ce n'est pas onglet général mais "propriétés du champs") et hélas ça ne fonctionne pas. Je lui indique =Format(Date();"Date, abrégé") je ferme, j'enregistre et ce n'est pas pris en compte, quand je retourne dans ma table en mode création, la valeur par défaut est de nouveau vide... Idem dans le formulaire. Il refuse de prendre une formule... en tout cas dès que je mets un = ou qqchose qui n'est pas au format date il ne le prend pas en compte...

:( Pas d'autres idées ?

Merci en tout cas :)
1
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
10 mars 2008 à 20:17
Bonsoir Raf,
Je pense que le problème est lié aux différences existantes MS Access et OpenOffice.org Base. Je viens de télécharger l'Open office.org 2.3 et l'ai installé en double sur ma machine.
A première vue la différence existe au niveau de la valeur par défaut, il semble que la possibilité d'Access n'est pas applicable à Open Office.
Je vais regarder un peu plus par curiosité et je vous tiendrez informer.......
0
Bonjour,

Je suis en train d'essayer de faire une base de maintenance préventive. il y a un moment ou l'opérateur doit, dans un formulaire, cliquer sur un bouton "FAIT" pour valider une tâche de maintenance. Je souhaiterai que lorsque l'opérateur clique sur ce bouton,la date du jour s'enregistre automatiquement dans une table ( T_Taches)qui a un champ prédéfini "Date dernière intervention". J'ai essayé la réponse deLe pingou donnée le 12 Fevrier 2008 mais rien ne se passe.

Je suis débutant en access je voudrais bien un ptit coup de main.

Merci
1
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
23 mai 2009 à 23:56
Bonjour,
Juste au passage, c'est vieux tout cela, qu'avez-vous fait exactement et la version d'access?
1
Bonjour,

Je travaille sur une version access 2007. J'ai créé une table T_Taches dans laquelle j'ai mis des champs de renseignements pour effectuer l'opération de maintenance ( N° tache(clé primaire) ;nom machine; description de la tache; niveau de difficulté; outil utilisé;etc) et il y a un champ qui s'appelle "date derniere intervention" en format date.

J'ai ensuite fais un formulaire ou les renseignements donnés dans les champs de la table T_taches apparaissent.
Sur ce formulaire il y a un bouton "Fait" qui permet d'enregistrer la date du jour, le n° de la tache, le nom de la machine ainsi que la personne ayant effectué la tache dans une table T_historique. Mais l'appui sur ce bouton doit également écraser la date rentrée dans le champ " date derniere intervention" de la table T_Taches.

Pouvez vous m'aider sur ce point svp!

merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
25 mai 2009 à 20:53
Bonjour wiiking73,
Merci pour les informations.
Quel liens avez-vous entre la table [T_Taches] et [T_historique] ?
Quel code est déclenché avec le bouton de commande [Fait] ?
1
Bonjour,

La liaison entre table historique et taches est relié par une relation un à plusieur ( le symbole infini est sur la table historique) avec les champs N° taches.

J'ai mis le code ce code sur le bouton:

Private Sub Réalisé_tache_Click()
[ Date derniere intervention ] = Now()
End Sub

Cordialement
0
J'ai exactement le même soucis,
je souhaite que le champ prenne la date du jour automatiquement mais qu'elle soit enregistrée comme date fixe,
si j'ouvre un registre créé hier, cest la date d'hier qui doit apparaître et non celle du système qui sera celle d'aujourd'hui,
A L'AIIIIDE!!!!! lol:
merci
0
j'ai oublié ceci:
windows vista
openoffice 2.2.1
merci
0
S'agit-il d'un formulaire créé dans Base ou d'une feuille Calc ?
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
9 déc. 2007 à 15:02
Bonjour chaum2,
Faire comme décrit au poste 1.
En effet la valeur par défaut sera utilisé uniquement s'il n'y a pas de date pour le champ concerné. Donc une date enregistrée ne sera pas modifier par la valeur par défaut.
Vous êtes bien sur Access..... à vous entendre parlet de : j'ouvre un registre créé hier
c'est étrange.
0
kelex Messages postés 10 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 26 février 2008
11 févr. 2008 à 16:37
bonjour,
j'ai presque la même question, sauf que je voudrais que mon champ (DateEntree) prenne la valeur de date et heure du systeme (fonction Now () si j'ai tout compris) lorsqu'on appuie sur un bouton du formulaire, et non pas quand on l'ouvre.
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
11 févr. 2008 à 18:26
Bonjour kelex,
Que voulez-vous dire par (lorsqu'on appuie sur un bouton du formulaire) ?
Merci.
0
kelex Messages postés 10 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 26 février 2008
12 févr. 2008 à 08:49
Je veux dire que je souhaite créer un bouton sur mon formulaire, qui permette à un opérateur d'enregistrer la date et heure du système au moment où il clique dessus, dans un champ défini.

Merci
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
12 févr. 2008 à 16:44
Bonjour kelex,
Je vous propose ceci :
Sur votre formulaire vous créez un bouton de commande (expl : cmdDateHeureENG).
Créer une [Procédure événementielle] dans ses propriétés sous Evénement « sur Clic » et vous complétez la fonction de code.
Elle doit être comme suit :

Private Sub cmdDateHeureENG_Click()
Texte9 = Now()
End Sub

Texte9 = le nom du champ défini.

Bonne fin de journée.
0
kelex Messages postés 10 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 26 février 2008
13 févr. 2008 à 10:48
Merci ça marche !

J'ai un autre problème. Voilà le code que j'écris :

Private Sub Vérif_tps_Click()

Dim result As Date

If [DateEntree] = Null Or [DateSortie] = Null Then
MsgBox ("Veuillez entrer une date valide SVP")
End If

If [DateEntree] <> Null And [DateSortie] <> Null Then
result = DateDiff ("h", [DateEntree], [DateSortie])
If result < 24 Then
MsgBox ("il n'y a eu que" & result & " heures d'écoulées")
Else
MsgBox ("Tout est ok")
End If
End If

End Sub

Avec ce code quand je clique sur le bouton, rien ne se passe !!

mon probleme est que si je veux faire un DateDiff entre DateEntree et DateSortie sans faire le If pour savoir s'ils différents de Null,au moment de cliquer sur le bouton j'ai un message d'erreur "utilisation incorrecte de Null" et ca m'envoie sur le débogueur en me mettant la ligne : result = DateDiff ("h", [DateEntree], [DateSortie]) en jaune.
donc je voulais faire ce If pour que le calcul DateDiff ne puisse se faire que si DateEntree et DateSortie ne soient pas vides.

et dans le cas où ils seraient vide, afficher le message d'erreur : "Veuillez entrer une date valide SVP"
mais il ne s'affiche pas, même lorsque les deux champs sont vides (donc égaux à Null).
je ne comprends pas pourquoi...

et enfin dernier probleme, en supposant que je ne fasse pas mes If pour vérifier si les DateEntree et Sortie sont Null (car apparemment ce sont ces If qui posent probleme).
le message "il n'y a eu que X heures d'écoulées". si je met "result" dans ma formule, dans mon message ca m'affiche une date du genre 08/01/1900 (mais ce n'est jamais la meme en fonction que DateEntree et Sortie changent), alors que si je met directement la formule DateDiff (donc sans passer par le tampon "result"), ca me l'affiche bien avec la valeur numérique en heures, comme je le souhaite.


Auriez vous une solution SVP car là je ne comprends pas d'où vient le probleme.

Merci bcp

Alexandre
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
13 févr. 2008 à 13:41
Bonjour kelex,
Vous est-il possible de mettre une copie de votre base de données sur www.cjoint.com ?
Dans ce cas je serai sur la même base que vous et se sera plus simple de vous comprendre et vous aider.
A vous de voir.
J'attends votre réponse pour poursuivre.
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
13 févr. 2008 à 21:54
Bonsoir kelex,
Voici votre code à bien plaire, selon se que j'ai compris de vos explications !

Private Sub Verif_tps_Click()
Dim result '---> pas de précision nécessaire
If IsNull(DateEntree) Or IsNull(DateSortie) Then '---->modifier Null en isNull
MsgBox ("Veuillez entrer une date valide SVP")
End ' interrompre immédiatement la procédure, il manque une date.....
End If

' Le If / End If --- n'est pas nécessaire les dates sont présentent selon teste précédent
'----->If [DateEntree] <> Null And [DateSortie] <> Null Then

result = DateDiff("h", DateSortie, DateEntree)
If result < 24 Then
MsgBox ("il n'y a eu que" & result & " heures d'écoulées")
Else
MsgBox ("Tout est ok")
End If

'------> End If

End Sub

Bonne soirée.
0
kelex Messages postés 10 Date d'inscription mardi 15 janvier 2008 Statut Membre Dernière intervention 26 février 2008
14 févr. 2008 à 16:17
merci beaucoup pour le mal que vous vous donnez c'est très gentil !
effectivement c'était juste quelques erreurs de syntaxe.
j'ai fait du C donc j'ai codé ca de la meme facon.
mais en fait plutot que de mettre :
If nomvariable = Null
il fallait mettre
If IsNull (nomvariable) !
ca marche mieux comme ca :-)

merci encore

a bientot
Alexandre
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
14 févr. 2008 à 16:51
Merci kelex, de rien.
0
Bonjour,

Je m'immisce dans la conversation car j'ai le même besoin que Valérie (premier post) mais la solution proposée ne convient pas.

Mon formulaire en mode création, j'ouvre les propriétés de la zone de texte (en fait une zone de date et je crois que le problème est là ?) Il n'y a pas la propriété "Valeur par défaut" pour y renseigner =Date() ou =Now() mais un champ "date par défaut" qui n'accepte que le format date (autrement dit qqchose du genre JJ/MM/AA qui est bien différent de =Date())

Donc ma valeur par défaut n'est pas acceptée. Pareil si je vais directement dans la table pour y mettre cette valeur par défaut, elle n'est pas acceptée.

Quelqu'un a une idée ?

Pour information supplémentaire, ce champ date doit enregistrer de manière automatique, la date de création ou de mise à jour de l'enregistrement.

Je suis sous OOo Base 2.3 sous windows xp
0
Bonsoir, dans la table ouverte en mose création, tu fait proprieté sur le champs "DATE"
et dans la case "valeur par défaut" tu écrit :
=Format(Date();"Date, abrégé")

Ensuite pour l'heure :tu fait proprieté sur le champs "HEURE"
et dans la case "valeur par défaut" tu écrit :
=Format(Temps();"Heure, abrégé")

Ainsi l'heure inscrite dans la table sera celle du moment de l'enregistrement du champ et ne sera pas actualisée.

Voilà si ça peut t'aider...
Bye
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
7 mars 2008 à 23:25
Bonsoir,
Petit détail, se n'est pas faire propriété sur le champ "Date" mais plutôt sélectionner le champ "Date" et en dessous dans l'onglet "Général" il suffit de renseigné la "valeur par défaut"-----etc. ou alors c'est différent sur OOo Base 2.3
0
Splendide formidable ça MARCHE (il n'y avait pas la macro en question !!!!!!)

Un ENORME merci

:) :) :)
0
Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024 1 425
11 mars 2008 à 12:02
Bonjour Raf,
Merci, je suis heureux que cela fonctionne et en plus j'ai découvert une petite partie d'Open Office.
Bonne semaine.
0
Raf > Le Pingou Messages postés 12035 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 1 avril 2024
11 mars 2008 à 12:23
C'est moi qui te remercie (et si tu as l'occasion penche toi sur Openoffice c'est vraiment une chouette suite !!) ;)

Sinon j'avais aussi posé la question sur le forum d'aide francophone d'OOo on m'a donné une solution différente qui fonctionne également https://forum.openoffice.org/fr/forum/ftopic9183.html
:)

Merci encore à toi et bonne semaine !!
0
Lylandra > Raf
3 avril 2009 à 15:55
En fait, il y-a une solution très simple ... et compliquée à la fois :)
en demandant modifier table, dans propriété du champ, Valeur par défaut, il suffit de mettre =maintenant() et de choisir ensuite le format de date.
Sauf que, probablement un bug d'Open Office 2.3, des fois ça marche, des fois ça marche pas (fonction Garcimore(hihihihi)).
0