Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Candidat au Club
    problème d'insérer le datetime dans les tables acces avec bouton
    bonsoir
    j'ai développé une base de données avec des formulaires pour manipuler mes données ,alors en bref j'ai une formulaire qui est constitué
    d'une sous formulaire qui relié avec une table <<Recrutement>> ,
    et 2 buttons voila que mon problème est avec un de ces Bouton
    c'est Le bouton --valider -- qui lorsque je vais cliquer sur-le, il faut que les données de table <<Recrutement>> affichées dans le sous-formulaire insérées dans la table <<medico>> et la table <<daki>> selon les critères de les requêtes mais avant l'insertion il faut donne
    à un champs qui est vide c'est "Date_heure_validation_recrutement" la date courante est aussi inséré dans les autres tables Ci-dessus
    le problème c'est que la valeur de "Date_heure_validation_recrutement" de table recrutement pas insérés dans les autres tables
    Note: - les enregistrements des autres champs sont ajoutés dans les tables <<medico>> & <<daki>>
    - la structure des tables est la même (les champs )
    Alors voila c'est mon Code de bouton "Valider"

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    Private Sub btn_recrutement_Click()
     
    mydate = CDate(Now())
    Forms(Me.Name)("recrutement_liste").Form.Controls("Date_heure_validation_recrutement").Value = mydate
     
    'DoCmd.RunSQL "INSERT INTO Recrutement ([Date_heure_validation_recrutement])" & _
        vbCrLf & "VALUES (CDate(Now()))"
    sql = "insert into Medico select * from Recrutement"
    sql_daki = "insert into Daki select * from Recrutement where Section IN
     ('112007T','112014T','112015T','112022T','112023T','112025T')"
     
     
    DoCmd.RunSQL sql
    DoCmd.SetWarnings False
    DoCmd.RunSQL sql_daki
    DoCmd.SetWarnings False
     
    If Me.NewRecord = True Then
     
     Forms(Me.Name)("recrutement_liste").Form.Controls("Date_heure_validation_recrutement").Enabled = True
     
    Else
      Forms(Me.Name)("recrutement_liste").Form.Controls("Date_heure_validation_recrutement").Enabled = False
     
    End If
     
     
    MsgBox "les informations sont ajoutés et validés", vbInformation
    End Sub



    S'il vous plaît dit moi pourquoi la datetime pas ajouter dans les autres table Merci Devs

  2. #2
    Modérateur

    Bonjour.

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    sql = "insert into Medico select * from Recrutement"
    sql_daki = "insert into Daki select * from Recrutement where Section IN
     ('112007T','112014T','112015T','112022T','112023T','112025T')"


    La source de tes requêtes d'insertion est [recrutement]. Si cette source ne contient pas de timestamp il est normal que tu n'en ai pas.

    Je pense que la solution est quelque chose comme :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    sql=sql & "INSERT INTO [Medico]( [TimeStamp] )"
    sql=sql & "SELECT [Recrutement].*, #"  & format(myDate,"yyyy-mm-dd hh:nn:ss") & "# AS [TimeStamp]"
    sql=sql & "FROM [Recrutement];"


    les # signale à Access que c'est une date.
    Le format(myDate,"yyyy-mm-dd hh:nn:ss") n'est pas absolument indispensable mais j'ai constaté qu'il évite des problèmes de reconnaissance où quand Access voit 02/01/2020 il confond parfois le 02 janvier (jj/mm/aaaa) avec le 1er févier (mm/jj/aaaa). En mettant l'année, le mois et le jour je suis certain de comment ma date va être comprise.

    Note qu'on peut écrire

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Forms(Me.Name)("recrutement_liste").Form.Controls("Date_heure_validation_recrutement").Value = mydate


    un peu plus simplement comme ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Me.recrutement_liste.Form![Date_heure_validation_recrutement]=mydate


    Me designe le formulaire en cours.
    .Value en Access est la propriété par défaut donc il n'est pas besoin de l'indiquer.
    Note que c'est pour Access, en excel il est prudent de la mettre car il peut y avoir confusion entre la valeur d'une cellule et la cellule elle-même.
    Tu n'as besoins de la collection Forms que si tu veux accéder à un autre formulaire ouvert.
    Et tu n'as besoins de la collection Controls que si tu veux utiliser une variable pour désigner le contrôle.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

###raw>template_hook.ano_emploi###