Base - Liste choix multiple possible

Bonjour,

J’ai deux questions concernant base.

La première, existe-t-il un champs comme une liste pour pouvoir choisir plusieurs propositions (liste à choix multiple).

Seconde, j’ai un champ date, et pour la création d’un numéro de contrat, je souhaite extraire l’année dans un autre champs (avec remplissage de l’année en automatique) → dans la table contrat.
https://www.dropbox.com/scl/fi/xmz0uimizsph7i3omwhbp/Gestion-ODF.odb?rlkey=6nqasdswz8j8zzgyxmtxqkjnj&st=gq95ftt8&dl=0

Je vous remercie pour votre aide.

Ci-joint mon fichier.

Cordialement

c’est toujours un peu des FAQ, donc (re)voir Gestion organisme de formation - Aide pour la création d'une base - #2 by fpy

Bonjour,

Je suis désolé mais je n’arrive pas à résoudre certains de mes problèmes avec les liens.

Pour les listes, j’ai trouvé la solution.

Je vais essayer avec l’IA et faire différents test.

Merci comme même

Bjr, vous avez sous le lien ci-dessous, l’ébauche d’un projet de Gestion d’un centre de formation ; vous pouvez vous en inspirer !

https://forum.openoffice.org/fr/forum/viewtopic.php?p=277470&hilit=Base+gestion+formation#p277470

Cela devrait vous aider !
@+

Merci beaucoup pour ce lien, je vais le lire avec attention

J’ai regardé avec attention la discussion donné par @HRK2O qui est très intéressante.

J’ai essayé de faire une macro pour calculer automatiquement, dans le formulaire “9Formations - Sessions” la date de fin de signature et l’année.

Je remets le lien vers mon fichier : cliquez-ici

Je vous mets ma macro :

Sub MajDatesEtAnnee(oEvent As Object)
    Dim oForm As Object
    Dim dDateDebut As Date
    Dim dDateFin As Date
    Dim sAnnee As Integer

    On Error GoTo Erreur

    ' Récupère le formulaire actif
    oForm = oEvent.Source.Model.Parent

    ' Vérifie et récupère la date de début
    If oForm.hasByName("datSessions_Date début") Then
        If Not IsNull(oForm.getByName("datSessions_Date début").Value) Then
            ' Convertit explicitement en Date
            dDateDebut = CDate(oForm.getByName("datSessions_Date début").Value)

            ' Calcule la date fin signature (date début - 7 jours) avec DateSerial
            dDateFin = DateSerial(Year(dDateDebut), Month(dDateDebut), Day(dDateDebut) - 7)

            ' Met à jour la date fin signature
            If oForm.hasByName("datSessions_Date fin signature") Then
                oForm.getByName("datSessions_Date fin signature").Value = dDateFin
            End If

            ' Met à jour l'année
            sAnnee = Year(dDateDebut)
            If oForm.hasByName("fmtAnnée") Then
                oForm.getByName("fmtAnnée").Value = sAnnee
            End If
        End If
    End If
    End Sub
    Exit Sub

Elle ne fonctionne pas mais je n’arrive pas à comprendre pourquoi. J’espère que vous pourrez m’aider.

Bonne soirée à tous

Quel est l’événement ?
What is the event?

    Exit Sub
    Erreur: 'MsgBox if you want it...
End Sub 

Une macro est inutile. Une donnée calculée doit se faire dans une requête.
Pour votre date + 7 jours, il suffit d’utiliser DATEDIFF.

Bonjour,
J’ai essayé et en effet, j’ai un retour.
Or j’étais partie sur une macro car comme c’est précisé dans la documentation, le résultat d’un calcul sur une date dans une macro, ne peux pas être réutilisé ensuite dans une seconde macro. Dans mon usage, j’en aurai besoin. De plus, YEAR() dans une commande sql ne fonctionne pas alors qu’il est prévu par la documentation sql.

Regardez ça :
Take a look at this:


Sorry: I’m unable to send the file.
Site says maximum = 4MB and file is 3,1MB
:question: :question: :question:

Et oui : SQL YEAR fonctionne.
Mais veuillez noter qu’idéalement ne devriez pas stocker « année », car les dates sont là déjà.
And yes: SQL YEAR works.
But please take notice that ideally you should not store “year”, as the dates are already.
SQLAno