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 :

Modifications d'un champ


Sujet :

VBA Access

  1. #1
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut Modifications d'un champ
    Bonjour à tous.

    Dans un formulaire, sur un champ, je voudrais faire la chose suivante :

    - si le champ est vide, autoriser la saisie d'une valeur.
    - si le champ n'est pas vide, afficher un MsgBox prévenant que le champ va être modifier et demander de Valider pour continuer ou Annuler pour anuler la saisie.

    Merci d'avance et bon week-end à tous.


  2. #2
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut
    Bonjour,

    Sr l'évènement Entrée du champ, tu peux imaginer une procédure évènementielle du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    If Not IsEmpty(ActiveControl) Then
        intReponse = MsgBox("La valeur contenue dans le champ va etre modifiée - Voulez vous continuer ?", vbYesNo + vbQuestion)
        If intReponse  = vbNo then
            DoCmd.GoToCOntrol "NouveauChampASaisir"
        Else
             ActiveControl.SelStart = 1
             ActgiveControl.SelLenght = Len(ActiveControl)
        End If
    End If

    A+
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  3. #3
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Merci d'avoir répondu aussi vite.

    Mais j'obtiens une erreur sur IntReponse (Variable non définie)

    Encore merci.

  4. #4
    Membre Expert
    Avatar de FreeAccess
    Homme Profil pro
    Un monde ou prendre est plus facile qu'apprendre.
    Inscrit en
    Mars 2006
    Messages
    2 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Un monde ou prendre est plus facile qu'apprendre.

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 745
    Par défaut
    Bonjour,
    j'obtiens une erreur sur IntReponse (Variable non définie)
    ...
    ....alors comme te l'indique le message d'erreur...il suffit de définir ta variable IntReponse.....
    Au début de ton code tu doit insérer une ligne du type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim IntReponse As String
    Bonne continuation...

  5. #5
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Bonjour (je suis très matinal !!!)

    ça ne fonctionne pas, ou plus exactement, j'ai des messages d'erreurs.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.GoToCOntrol "NouveauChampASaisir"
    où NouveauChampASaisir n'est pas reconnu (Champ Ordre pour moi) !!!

    et où
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActgiveControl.SelLenght = Len(ActiveControl)
    me renvoi également une erreur (2109)

    J'ai omis de préciser que j'étais avec Access 2003. Le soucis est peut être là ???

    Bonne journée.

  6. #6
    Rédacteur/Modérateur
    Avatar de Jeannot45
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2004
    Messages
    3 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 871
    Par défaut
    Hello,

    Auteur du code envoyé, il est de mon devoir de voler à ton secours :

    ActgiveControl.SelLenght = Len(ActiveControl)
    Mille excuses, il y a une énorme faute de frappe. Il faut lire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveControl.SelLenght = Len(ActiveControl)
    si pour toi, le champ à atteindre est "ORDRE" le code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.GoToControl "ORDRE"
    Excuses moi encore de t'avoir induit en erreur avec des explications trop succintes.

    A+
    Jeannot

    Liens Office indispensables à visiter: Cours (Tutos), F.A.Q., Sources VBA

    Ne posez pas de questions par MP, je n'ai pas le temps d'y répondre

  7. #7
    Membre Expert Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 579
    Par défaut
    Bonjour et merci des réponses, mais les problèmes subsistent :

    Si je répond OUI à la modification du champ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActgiveControl.SelLenght = Len(ActiveControl)
    renvoi une erreur 438 (propriété ou méthode non gérée par cet objet)

    Si je répond NON, j'ai une erreur 2109 (il n'y a pas de champ nommé 'Ordre' dans l'enregistrement en cours) alors que le champ en cours de modif est bien 'Ordre'


  8. #8
    Membre éclairé Avatar de berti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 239
    Par défaut
    essai ce code avec l'évènement sur clic pour le champ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub champ_Click()
    Dim reponse
     
        If Not IsNull(Me![champ]) Or Not Me![champ] = "" Then
            reponse = MsgBox("le champ va être modifier voulez vous continuer ", vbYesNo, "ATTENTION")
     
            If reponse = vbYes Then
                Me![champ].SetFocus
            Else
                Me![autrechamp].SetFocus
            End If
        End If
     
    End Sub

Discussions similaires

  1. Date de modification d'un champs
    Par Samish dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/09/2005, 12h34
  2. Réponses: 9
    Dernier message: 22/06/2005, 08h45
  3. Modification d'un champs texte
    Par shinobi dans le forum Access
    Réponses: 2
    Dernier message: 15/06/2005, 10h05
  4. empêcher la modification d'un champ
    Par shurized dans le forum Oracle
    Réponses: 29
    Dernier message: 30/08/2004, 18h25
  5. DBNavigator, requete SQL et modif d'un champ
    Par TieumB dans le forum C++Builder
    Réponses: 9
    Dernier message: 27/01/2004, 08h50

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