IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

VBA Access Discussion :

[A-00] Reprendre la date dans un nouvel enregistrement


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut [A-00] Reprendre la date dans un nouvel enregistrement
    bonjour tout le monde,
    voila je suis en train de développer une base access mais y a un champ date qui me gêne ouvertement car je ne trouve pas la solution. Ce que je veux dire c'est que je voudrais que dans un nouvel enregistrement , le champ Date reprenne la même date de l'enregistrement antérieur par defaut, bien que je puisse tout de même avoir la possibilité de la changer au bout de trois ou quatre enregistrement plus loin . J'avais essayer avec un after update mais ça ne marche pas. Pour info j'utilise access 2000, mon champ date s'appelle date_tremp, et appartient à ma table contrôle. Si vous avez une solution, je vous remercie par avance. Bien eviçdemment avant de poster j'ai chercher la solution mais apres x essaie et x post lu je trouve pas.

    gros merci

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Ouvres un recordset sur ta table, positionnes toi sur le dernier enregistrement et récupère la date que tu affectes ensuite à ton enregistrement courant.

    Effectue cette opération sur l'évènement Avant insertion de ton formulaire.


  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    désolée mais la j'ai pas compris, tu veux dire que la manip se fait au niveau du formulaire et la dans le langage vba?

    moi j avais trouver un truc du genre un afterupdate mais ça n ' a pas fonctionné

    en tout cas merci bcp de ta réponse

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 72
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Pouvez expliciter à l'appui d'un exemple clair ce que vous souhaitez pour que l'on puisse vous apporter une solution claire.

    Merci

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    oui pas de souci

    donc j'ai une table qui s'appelle contrôle avec plusieurs champs, dont un qui est la date de trempage. Mon but a moi c'est lors de la saisie de plusieurs enregistrement dans cette table contrôle , mon champs date de trempage reprenne systématiquement la date de la ligne (ou enregistrement) anterieur, ceci dans le but de na pas avoir a ressaisir 20 fois la même date a chaque fois que j ajoute un enregistrement. Sachant que je peux en avoir 50 d'un coup mais avec des date differentes. C'est pourquoi il faut tout de même avoir la possibilité de pouvoir changer ponctuellement cette date en une nouvelle, qui donc sera la nouvelle date systematiquement proposée.

    voila en esperant que cette fois j'ai pu être assez claire

    par avance merci

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Bonjour et bienvenue sur nos forums!

    Dans le module du formulaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private DateTrempage As Date
     
    Private Sub Form_AfterUpdate()
        DateTrempage = date_tremp
    End Sub
     
    Private Sub Form_Current()
        If Me.NewRecord And DateTrempage <> 0 Then date_tremp = DateTrempage
    End Sub

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    ça fonctionne pas, mais j'ai oublier de dire que j'avais un masque de saisie sur la date, que mon champ date s'appelle "date trempage" avec comme légende "date tremp."

    voila voila

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Dans ce cas, tu devrais pouvoir adapter le code fourni en fonction du nom du champ... Le masque de saisie n'influe pas sur le code que je t'ai fourni...

    Cela étant, c'est loin d'être le top d'avoir des noms de champs avec espaces... Cela pose plein de problèmes par la suite. Il est préférable de n'utiliser pour nommer les champs que des caractères alphanumériques de base (lettres non accentuées et chiffres, sans espaces ni tirets (éventuellement, le _ pour séparer les mots)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private DateTrempage As Date
     
    Private Sub date_trempage_AfterUpdate()
        DateTrempage = date_trempage
    End Sub
     
    Private Sub Form_Current()
        If Me.NewRecord And DateTrempage <> 0 Then date_trempage = DateTrempage
    End Sub
    Si ce n'est pas cela, tu dois regarder le nom du contrôle qui contient la date...

  9. #9
    Membre éclairé Avatar de ft035580
    Profil pro
    Inscrit en
    Août 2004
    Messages
    689
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 689
    Points : 812
    Points
    812
    Par défaut
    Salut,

    Et avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Date_Trempage_Enter()
    Me.Date_Trempage.DefaultValue = Me.Date_Trempage
    End Sub
    ?

  10. #10
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Astuce originale

  11. #11
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    du moins avec cette astuce qqchose a bouger car jusqu'ici, car a un nouvel enregistrement avec les astuces anterieur proposée rien ne se passer.

    tandis que avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub Date_Trempage_Enter()
    Me.Date_Trempage.DefaultValue = Me.Date_Trempage
    End Sub
    la au moins il me met #Nom? dans la case date^^

    j ai rentrer ça au niveau du code concernant date trempage. Enfin ça fonctionne toujours pas

    je vais essayer en modifiant le nom du champ pour qu il ne contienne pas d espace.

    en tout cas merci bcp de vos réponses

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Si les deux dernières solutions (celle de ft et la mienne) ne fonctionnent pas, c'est que le nom du contrôle doit être adapté...

    Car j'ai testé les deux solutions de mon côté, et toutes les deux donnent le résultat souhaité.

    Il faut vérifier dans ta base le nom du contrôle sur lequel tu veux récupérer la date saisie et adapter une des deux solutions en conséquence...

  13. #13
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    voila j'ai copiuer le code dites moi si j'y ai glissé une erreur parce que ça fonctionne toujours pas . par avance merci

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Option Compare Database
     
    Private Sub Commande82_Click()
    On Error GoTo Err_Commande82_Click
     
     
        DoCmd.GoToRecord , , acNewRec
     
    Exit_Commande82_Click:
        Exit Sub
     
    Err_Commande82_Click:
        MsgBox Err.Description
        Resume Exit_Commande82_Click
     
    End Sub
    Private Sub Commande83_Click()
    On Error GoTo Err_Commande83_Click
     
     
        DoCmd.GoToRecord , , acNewRec
     
    Exit_Commande83_Click:
        Exit Sub
     
    Err_Commande83_Click:
        MsgBox Err.Description
        Resume Exit_Commande83_Click
     
    End Sub
    Private Sub Commande84_Click()
    On Error GoTo Err_Commande84_Click
     
     
        DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
        DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
     
    Exit_Commande84_Click:
        Exit Sub
     
    Err_Commande84_Click:
        MsgBox Err.Description
        Resume Exit_Commande84_Click
     
    End Sub
    Private Sub Commande85_Click()
    On Error GoTo Err_Commande85_Click
     
     
        Screen.PreviousControl.SetFocus
        DoCmd.DoMenuItem acFormBar, acEditMenu, 10, , acMenuVer70
     
    Exit_Commande85_Click:
        Exit Sub
     
    Err_Commande85_Click:
        MsgBox Err.Description
        Resume Exit_Commande85_Click
     
    End Sub
     
    Private DateTrempage As Date
     
    Private Sub DateTremp_AfterUpdate()
        DateTrempage = DateTremp
    End Sub
     
    Private Sub Form_Current()
        If Me.NewRecord And DateTrempage <> 0 Then DateTremp = DateTrempage
    End Sub
     
    Private Sub DateTremp_BeforeUpdate(Cancel As Integer)
     
    End Sub

  14. #14
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    C'est inutile de "balancer" tout le code... Il faut discerner la portion qui pose problème et n'envoyer que celle-là.

    Dans le code que tu donnes, tu as des procédures vides, tu n'as pas nommé tes boutons (bonjour pour la maintenance...), tu as plusieurs procédures qui réalisent le même travail... Ca ne donne pas envie d'y jeter un coup d'oeil

    Cela étant, le code que je t'avais donné a, semble-t-il, été transcrit correctement... Par hasard, tu n'as pas une valeur par défaut dans ta table sur le champ DateTremp?

  15. #15
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Je suis sincèrement navrée pour le fait d'avoir balancer le code mais c'est vrai que j'ai beau chercher l'erreur je vois pas. Après, je n'ai pas nommer le bouton tout simplement parce que d'ici qques temps SAGE X3 est censé arriver dans la boite . Disons que Access me prépare moi et mes collaborateurs à l'arrivée de celui ci. Pour ce qu'y est de la maintenance ça sera moi donc voila est la base n'est pas si énorme , elle aura tout au plus une 10aine de table et une quinzaine de requêtes. Enfin pour en revenir à la base, non je n'ai pas de valeur par défaut, mais juste un masque de sais date : 99/99/99.

    Voila merci pour vos réponses, et votre attention
    Et encore une fois désolée

  16. #16
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Qu'est-ce qui ne fonctionne toujours pas? Y-a-t-il un message d'erreur? As-tu une valeur erronée dans le textbox de saisie de la date?

  17. #17
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    désolée par le retard

    donc en fait je suis parti sur le principe que j avais aucune données de départ pour repartir sur qqchose de "propre". j'ai fait une première saisie normale, ensuite je fais un nouvel enregistrement et la j ai pas de date proposée correspondant a celle antérieur, et en plus quand j'en saisie 1 en passant au champ suivant elle disparait , et rebelote dans un 3eme enregistrement j'ai toujours rien dans date et quand je saisie ça disparait

  18. #18
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    bonsoir,
    essayes :
    sur reception focus de ta zone date


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub date_trempage_GotFocus()
    SendKeys "^(')"
     
    End Sub

  19. #19
    Nouveau Candidat au Club
    Inscrit en
    Octobre 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 9
    Points : 1
    Points
    1
    Par défaut
    Re bonjour tout le monde,

    J'ai compris pourquoi le champ restait blanc alors que je venais de saisir la date ; en fait lors de la saisie de celle-ci en passant au champ suivant il passait au champ suivant mais dans une nouvelle feuille d'enregistrement lol. Donc en gros j avais une feuille de saisie avec une date, la feuille suivante avec les infos mais sans date qui fait que lorsque je voulais enregistrer la deuxieme (sans savoir que c'etait la deuxieme) il me mettait une erreur car champ date vide...

Discussions similaires

  1. [XL-2003] Récupérer une date dans une nouvelle cellule
    Par BtjpsspgrW dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 26/02/2014, 19h10
  2. Réponses: 11
    Dernier message: 20/07/2007, 15h32
  3. Réponses: 3
    Dernier message: 03/11/2006, 15h30
  4. Réponses: 4
    Dernier message: 10/08/2006, 17h58
  5. Reprendre une date dans la barre d'adresse.
    Par kmayoyota dans le forum ASP
    Réponses: 32
    Dernier message: 03/09/2004, 08h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo