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 :

Modifier une table grâce à un formulaire sans enregistrer [AC-2000]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Points : 41
    Points
    41
    Par défaut Modifier une table grâce à un formulaire sans enregistrer
    Bonjour,

    Pour des raisons d'ergonomie et de sécurité j'ai développer un formulaire en mode continu permettant de modifier les enregistrements d'une table.
    J'y ai ajouter quelques boutons de base (enregistrement précédent, suivant, rechercher, ajouter, supprimer, annuler et sauvegarder).

    Parmi ces boutons seul le bouton sauvegarder me pause un souci. Premièrement je ne comprends pas très bien à quoi il sert... En faite ce que je voudrais c'est que l'utilisateur ne modifie pas directement la table et qu'il "sauvegarde" ses changements une fois ceux-ci terminés et vérifiés.

    Comment faire ceci?

    Merci d'avance...

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 122
    Points : 172
    Points
    172
    Par défaut
    A ta place je mettrais en place une table temporaire.
    Lorsque ton utilisateur arrive sur le formulaire tu crées une table sosie de l'autre via un select * into par exemple et tu fais pointer tous les champs de ton formulaire sur cette table temporaire.
    Comme ça ton utilisateur fais des modifications sur la temporaire. Lorsqu'il sauvegarde tu drop ta table d'origine et tu renome la temporaire pour qu'elle prenne son nom. S'il quitte le formulaire sans sauvegarde, tu as juste à dropp ta table temporaire.

    D'après la description de ton problème, c'est ainsi que je procéderais.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 70
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Je travaille toujours avec les formulaires qui n'ont jamais comme source une table.

    Pour l'encodage, au bouton "Ajouter", je vérifie les données et les ajoute avec des fonctions SQl "Insert Into........".

    Pour effacer, fonctions SQl "Delete .... Where Critère".

    Pour modifier, fonctions SQl "Update...."

    Un exemple de code ci-dessous pour ajouter:

    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
    Private Sub BtnEnregistrerMajorItemParCours_Click()
        If Nz([CboMajorItem], "") = "" Then MsgBox "Item vide", vbExclamation, "Ajout impossible": Exit Sub
     
        If Nz([TxtNombreBesoin], "") = "" Then MsgBox "Nombre vide", vbExclamation, "Ajout impossible": Exit Sub
     
        'si pas dans la liste alors ajouter
        If IsNull(DLookup("[MajorItem]", "T_CoursMItemMR", "[MajorItem]='" & [CboMajorItem] & "' and [Cours]='" & [CboCours] & "'")) Then
            'si valeur nulle alors pas dans la liste
            Rep = MsgBox("Ajouter " & [CboMajorItem] & " à la liste ?", vbYesNo + vbQuestion, "Ajout de données")
            If Rep <> 6 Then Exit Sub
            'ajouter à la liste
            TxtSQL = "Insert into T_CoursMItemMR (Cours,MajorItem,Nombre) values ('" & [CboCours] & "', '" & [CboMajorItem] & "','" & [TxtNombreBesoin] & "')"
            DoCmd.RunSQL TxtSQL
            DoCmd.Requery "LstMajorItemParCours"
            [CboMajorItem] = ""
            [TxtNombreBesoin] = ""
        Else
            MsgBox "Item déjà dans la liste", vbExclamation, "Ajout impossible"
        End If
    End Sub
    Pour les recherches, mes listes, combo,.. sont liées aux tables par source (query) et je place des textbox qui filtres mes listes...
    , il suffit de faire une requery et les données sont mises à jour.

    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Modifier une TABLE avec un formulaire sous forme de tableau
    Par Marie f dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 23/05/2012, 00h15
  2. [MySQL] Mysql - modifier un enregistrement d'une table par un formulaire
    Par stark57 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 11/02/2011, 15h58
  3. Réponses: 2
    Dernier message: 29/06/2008, 19h16
  4. Modifier une table uniquement par formulaire
    Par langevert dans le forum Sécurité
    Réponses: 6
    Dernier message: 14/08/2007, 13h39
  5. Réponses: 4
    Dernier message: 24/07/2007, 12h05

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