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

IHM Discussion :

Formulaire de modification


Sujet :

IHM

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 32
    Points : 21
    Points
    21
    Par défaut Formulaire de modification
    Bonjours,
    j'ai un formulaire qui a comme source de données une requête SQL. Je ne peux donc pas faire de formulaire indépendant.
    je voudrais faire un bouton d'enregistrement et empêcher access d'enregistrer tout seul sans que je lui demande. il faut seulement un bouton.
    J'ai donc écrit du code qui me permettrait de faire ça mais je suis bloqué pouvez vous m'aider svp
    voici mon code :
    'La source de donnée étant celui d'un requête SQL on ne peut pas l'enlever et comme access

    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    Private Sub enreristre_modification_Click()
    If codePostal <> Me.CODE_POSTAL Or adresse1 <> Me.ADRESSE_1 Or adresse2 <> Me.ADRESSE_2 Or adresse3 <> Me.VILLE_ADRESSE Then ' si un seul des champs est differents
        Dim t As Recordset
     
        Set t = CurrentDb.OpenRecordset("dbo_ADRESSE", DB_OPEN_DYNASET)
        t.AddNew
        'Ajout des enregistrements dans la table MaTable
        t![ID_ADRESSE] = DMax("ID_ADRESSE", "dbo_ADRESSE") + 1
        t![ADRESSE_1] = Me.ADRESSE_1
        t![ADRESSE_2] = Me.ADRESSE_2
        t![ADRESSE_3] = Me.ADRESSE_3
        t![VILLE_ADRESSE] = Me.VILLE_ADRESSE
        t![CODE_POSTAL] = Me.CODE_POSTAL
        t.Update
        t.MoveLast
        DoCmd.RunCommand acCmdSaveRecord
        Me.ID_ADRESSE = DMax("ID_ADRESSE", "dbo_ADRESSE")
        MAJ = 1
        DoCmd.RunCommand acCmdSaveRecord
     
     
     End If
     
     
    End Sub
     
    Private Sub Form_BeforeUpdate(Cancel As Integer)
     
     
        If (MAJ = 0) Then Me.Undo
     
    End Sub
     
    Private Sub Form_Current()
    Dim MAJ
    MAJ = 0
    Dim nom As String ' pour vérifier si il y a eu un changement on récupère les valeurs au chargement du formulaire puis on les compares lors de l'enregistrement
    Dim prenom As String
    Dim numero1 As String
    Dim numero2 As String
    Dim numero3 As String
    Dim poste As String
    Dim region As String
    Dim service As String
    Dim fax As String
    Dim emission As String
    Dim adresse1 As String ' on récupère toute les valeurs concernant l'adresse
    Dim adresse2 As String
    Dim adresse3 As String
    Dim ville As String
    Dim note As String
    Dim codePostal As String
    If Me.NOM_PERSONNE <> Null Then 'On enregistre le nom
    nom = Me.NOM_PERSONNE
    End If
    If Me.PRENOM_PERSONNE <> Null Then 'On enregistre le prénom
    prenom = Me.PRENOM_PERSONNE
    End If
    If Me.POSTE_PERSONNE <> Null Then 'On enregistre le poste
    poste = Me.POSTE_PERSONNE
    End If
    If Me.REGION_PERSONNE <> Null Then 'On enregistre la région
    region = Me.REGION_PERSONNE
    End If
    If Me.NOTE1_PERSONNE <> Null Then 'On enregistre la note
    note = Me.NOTE1_PERSONNE
    End If
    If Me.EMISSION_PERSONNE <> Null Then 'On enregistre le emission
    emission = Me.EMISSION_PERSONNE
    End If
    If Me.SERVICE_PERSONNE <> Null Then 'On enregistre le service
    service = Me.SERVICE_PERSONNE
    End If
    If Me.FAX_PERSONNE <> Null Then ' on enregistre le fax
    fax = Me.FAX_PERSONNE
    End If
    If Me.PREMIER_NUMERO_TEL_PERSONNE <> Null Then
    numero1 = Me.PREMIER_NUMERO_TEL_PERSONNE
    End If
    If Me.DEUXIEME_NUMERO_TEL_PERSONNE <> Null Then
    numero2 = Me.DEUXIEME_NUMERO_TEL_PERSONNE
    End If
    If Me.TROISIEME_NUMERO_TEL_PERSONNE <> Null Then
    numero3 = Me.TROISIEME_NUMERO_TEL_PERSONNE
    End If
    If Me.ADRESSE_1 <> Null Then ' on ne peut pas affecter une valeurs null à un string
    adresse1 = Me.ADRESSE_1 ' donc si me.adresse_1 est null on ne vas pas affecter ça valeurs à adresse 1
    End If
     
    If Me.ADRESSE_2 <> Null Then
    adresse2 = Me.ADRESSE_2
    End If
     
    If Me.ADRESSE_3 <> Null Then
    adresse3 = Me.ADRESSE_3
    End If
     
    If Me.VILLE_ADRESSE <> Null Then
    ville = Me.VILLE_ADRESSE
    End If
    If Me.CODE_POSTAL <> Null Then
    codePostal = Me.CODE_POSTAL
    End If
    End Sub

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    En effet, les formulaires indépendants c'est plutôt pour les boîtes de dialogue.

    Pour un formulaire normal, une possibilité serait d'utiliser l'événement beforeUpdate (avant maj) du formulaire :

    Mettre un tag au moment d'appuyer sur le bouton de sauvegarde Me.Tag = "Enregistrement", pour lui indiquer que le code sur beforeUpdate ne s'exécute pas.

    Dans tous les autres cas il se déclenchera :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub CmdSave_Click()
        Me.Tag = "Enregistrement" ' on indique qu'on a appuyé sur le bouton d'enregistrement
        Me.Refresh ' déclenche l'événement BeforeUpdate
        Me.Tag = "" ' on revient à l'état normal
    End Sub
    Si on a pas appuyé sur le bouton de sauvegarde, on affiche un message pour savoir si l'utilisateur souhaite sauvegarder ou pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Form_BeforeUpdate(Cancel As Integer)
        If (Me.Tag = "") Then ' on a pas appuyé sur le bouton cmdSave
            If MsgBox("Souhaitez-vous enregistrer les modifications apportées aux données ?", vbYesNo + vbExclamation) = vbNo Then ' si l'utilisateur ne souhaite pas sauvegarder
                Me.Undo ' on annule les modifications
            End If
        End If
    End Sub
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 32
    Points : 21
    Points
    21
    Par défaut
    J'ai essayé et ça marche nickel merci infiniment

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 338
    Points : 19 573
    Points
    19 573
    Billets dans le blog
    65
    Par défaut
    Pas de quoi
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

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

Discussions similaires

  1. formulaire de modification
    Par VIRGINIE87 dans le forum IHM
    Réponses: 7
    Dernier message: 24/01/2007, 10h04
  2. rafraichissement formulaire suite modif sous-form
    Par pontoise dans le forum IHM
    Réponses: 5
    Dernier message: 24/11/2006, 23h46
  3. Réponses: 14
    Dernier message: 19/10/2006, 14h23
  4. Formulaire et modifications
    Par climz dans le forum IHM
    Réponses: 7
    Dernier message: 24/05/2006, 08h19
  5. problème sur un formulaire de modification
    Par puppusse79 dans le forum Access
    Réponses: 13
    Dernier message: 14/04/2006, 15h48

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