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 :

Form - Copie de la valeur d'un champ ds un autre champ


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 42
    Points : 25
    Points
    25
    Par défaut Form - Copie de la valeur d'un champ ds un autre champ
    Bonjour,

    Je souhaite sur la base d'un form reporter la valeur d'un champ dans un autre champ dudit form et reporter la valeur en question dans ma table.

    Ma table se présente comme suit:
    - Dénomination de l'article
    - Code d'article
    - Code d'article structuré

    Je souhaite par conséquent en mode form pouvoir dès la saisie d'un code d'article dans le champ "Code d'article" dupliquer ce dernier dans le champ "Code d'article structuré" et le structurer en fonction de diverses règles structurelles qui restent à développer. Cette procédure terminée, j'aurais donc pour chaque article un code d'article d'origine, le nouveau code d'article structuré - cette dernière information étant enregistrée dans ma table dans un champ correspondant que j'aurais créé à cet effet auparavant.

    Bonne journée et merci d'avance pour toute aide...

    Papillon00

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Dans le principe :
    - tu crées un champ CodeArticleStructuré dans la table
    - tu crées un contrôle CodeArticleStructured dans le form, contrôle ayant pour source le champ.
    - tu crées une procédure évènementielle sur mise à jour du CodeArticle, du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub CodeArticle_AfterUpdate
    Me.CodeArticleStructured = ...
    End sub
    Bon courage,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Bonjour pgz,

    D'avance merci pour ton aide.

    Je me permets de te poser une question de compréhension: ta proposition n'est-elle pas par définition limitée à une représentation de la nouvelle valeur dans un deuxième champ de mon form... or je recherche une solution pour MAJ ma table en arrière plan.

    Je viens de développer le code que voici. Ce dernier fait l'affaire en boucle pour tous les enregistrements de ma table. Comment dois-je procéder pour que les modifications ne s'appliquent qu'à l'enregistrement affiché à l'écran par le form ?

    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
     
     
    Sub Test()
    Dim cnn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim strFile As String
    Dim Ref As Integer
     
    ' Ouvrir la table
    Set cnn = CurrentProject.Connection
    Set rst = New ADODB.Recordset
    rst.Open "[tblArticles]", cnn, adOpenDynamic, adLockOptimistic, adCmdTable
     
    While Not rst.EOF
     
        Debug.Print rst("N°")
        Ref = rst("N°")
        Debug.Print rst("CodeArticle")
        strFile = rst("CodeArticle")
     
        rst!CodeArticleStructuré = strFile
     
        rst.Update
     
    rst.MoveNext
    Wend
     
    rst.Close
    Set rst = Nothing
    cnn.Close
    Set cnn = Nothing
     
    End Sub
    Pour la suite utile...

    Amicalement

    Papillon00

  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
    Points : 3 834
    Points
    3 834
    Par défaut
    Bonjour,

    Je me permets de répondre à la place de pgz.....
    ta proposition n'est-elle pas par définition limitée à une représentation de la nouvelle valeur dans un deuxième champ de mon form... or je recherche une solution pour MAJ ma table en arrière plan.
    Si ton formulaire est basé sur ta table, ton champ "Code Article Structure" sera automatiquement mis à jour lors de tous changements....manuellement ou par code....

    Exemple:
    - Tu souhaite "mettre en forme" ton champ "Code Article Structure" en fonction du champ "Code Article" de façon à ajouter en début "ART-" et finir par "-2007"

    - Sur ton formulaire basé sur table, tu dispose l'ensemble de tes champs.
    - Tu mets la propriété "Activé" = NON et "Verrouillé" = OUI du champ "Code Article Structure" (cela évitera des saisies indésirables..)
    - PUis comme te le disait pgz sur l'événement "Après MAJ" du champ "Code Article" tu tape le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Code_Article_AfterUpdate()
    'Mise en forme du champ [Code Article Structure]
    Me.Code_Article_Structure.Value = "ART-" & Me.Code_Article.Value & "-2007"
    End Sub
    Voilà, c'est aussi simple.....
    FreeAccess
    "Petit à petit l'araignée tisse sa toile"

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2003
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    @ pgz,
    @ FreeAccess,

    ...Désolé, mais je souhaitais rebondir et vous adresser une question subsidiaire. Je vous présente mes plus plates excuses et vous remercie pour votre précieuse aide.

    Amicalement

    un Papillon00 en toute liberté...

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

Discussions similaires

  1. Chercher la valeur d'un champ dans un autre champ ?
    Par [ZiP] dans le forum Requêtes
    Réponses: 2
    Dernier message: 22/12/2010, 17h30
  2. [AC-2007] Attribuer une valeur automatique en fonction d'un autre champ
    Par spaukensen dans le forum Modélisation
    Réponses: 2
    Dernier message: 17/10/2009, 14h03
  3. Réponses: 1
    Dernier message: 20/09/2009, 20h39
  4. [XL-97] Copie capricieuse des valeurs d'un range vers une autre feuille
    Par Michel Delapouaitte dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 24/04/2009, 09h34
  5. [Conception] valeur d'un identifiant dans un autre champ
    Par suya95 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 03/07/2006, 21h27

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