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

Access Discussion :

Appliquer un VB script à tous les enregistrements d'une table [AC-2003]


Sujet :

Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut Appliquer un VB script à tous les enregistrements d'une table
    Bonsoir,

    je voudrais m'excuser d'avance car ma question est peut-être totalement inepte, mais je me vois parfois obligé de bidouiller sans jamais avoir appris la programmation...

    Voilà: j'ai, dans une table de mon application, un bouton qui lance un script en visual basic qui va s'appliquer à l'enregistrement en cours. Le script transfère des informations de certains champs dans d'autres.

    Comment puis-je faire pour que le script soit lancé pour tous les enregistrements contenus dans la table?

    Merci,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Il serait bon de donner plus de détails, entre autre ton code.

    Ton code est dans Access ? Car lorsque tu écris VB Script on parle en général d'un code externe à Access.

    Philippe

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    merci pour ta réponse. Oui, mon code est dans Access et le voilà en entier:

    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
     
    Private Sub Prenom_Change()
            Dim AdrPr
            If Not IsNull(Me.Titre) Then AdrPr = Me.Titre & " "
            If Not IsNull(Me.Prenom) Then AdrPr = AdrPr & Me.Prenom & " "
            If Not IsNull(Me.Nom) Then AdrPr = AdrPr & Me.Nom & vbCrLf
            If Not IsNull(Me.Organisme) Then AdrPr = AdrPr & Me.Organisme & vbCrLf
            If Not IsNull(Me.Adresse) Then AdrPr = AdrPr & Me.Adresse
            Forms!Client.AdressePrincipale = AdrPr
            Dim AdrFac
            If Not IsNull(Me.Titre) Then AdrFac = Me.Titre & " "
            If Not IsNull(Me.Prenom) Then AdrFac = AdrFac & Me.Prenom & " "
            If Not IsNull(Me.Nom) Then AdrFac = AdrFac & Me.Nom & vbCrLf
            If Not IsNull(Me.Organisme) Then AdrFac = AdrFac & Me.Organisme & vbCrLf
            If Not IsNull(Me.Facturation) Then AdrFac = AdrFac & Me.Facturation
            Forms!Client.AdresseFacturation = AdrFac
            Dim AdrLiv
            If Not IsNull(Me.Titre) Then AdrLiv = Me.Titre & " "
            If Not IsNull(Me.Prenom) Then AdrLiv = AdrLiv & Me.Prenom & " "
            If Not IsNull(Me.Nom) Then AdrLiv = AdrLiv & Me.Nom & vbCrLf
            If Not IsNull(Me.Organisme) Then AdrLiv = AdrLiv & Me.Organisme & vbCrLf
            If Not IsNull(Me.Livraison) Then AdrLiv = AdrLiv & Me.Livraison
            Forms!Client.AdresseLivraison = AdrLiv
     
    End Sub
    Le but de la manip est de remplir, à partir des adresses contenues dans une table, de nouveaux champs permettant d'éditer des étiquettes. Le code ci-dessus s'exécute àdans un formulaire pour un enregistrement donné mais j'aimerais mettre toute la table à jour avec ces paramètres.

    Merci encore pour ton aide,

    Julien

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Bonjour,

    Tout d'abord attention aux termes que tu utilises.

    VB script n'a rien à voir avec VBA.

    Ceci dit :

    Pour traiter des enregistrements ont utilises généralement SQL.
    Maintenant il faut voir exactement ce que fait ta procédure. Si c'est uniquement du transfert de valeur avec quelques applications de fonctions tu peux passer par SQL.

    S'il s'agit de plus compliquer utilises quand même SQL mais converti ta procédure en fonction (function au lieu de Sub). Tu dois lui passer un argument unique tel que le champ ID que tu devrais avoir dans cette table. Inutile d'utiliser l'id dans ton code c'est uniquement destiné à lui faire traiter ta fonction sur chaque enregistrement.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select mafonction([champID]) FROM matable Where ....;
    Note que suivant le traitement il peux y avoir des verrous sur la table ou cela peut prendre énormément de temps pour réaliser l'opération.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Entre temps le post à évoluer.

    Pour ce type de traitement SQL suffit largement.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Bonsoir,

    d'accord, je ferai attention à la différence entre VBA et VB script.

    Je vais tenter ça en SQL suivant tes conseils.

    Merci encore pour avoir pris la peine de m'éclairer.


    Julien

  7. #7
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Si tu as déjà les informations dans une table c'est inutile d'en créer une autre une simple requête suffit comme source d'un état.

    Voici une piste à adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT NZ(TableSource.Titre,"") & " " & NZ(TableSource.Prenom,"") & " " & ...  & vbcrlf & NZ(TableSource.Organisme,"") AS adrFac FROM TableSource;
    Crodialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Points : 35
    Points
    35
    Par défaut
    Bonsoir,

    je crois que je m'emmêle les pinceaux, je ne comprends pas tout ce que tu m'expliques... je vais prendre un bouquin Access et potasser ça pour voir si je peux m'en sortir.

    En attendant, je vais marquer le post résolu en te remerciant pour tes conseils.

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 006
    Points : 24 600
    Points
    24 600
    Par défaut
    Lorsque tu as besoin de transformer des informations existantes dans une ou plusieurs tables inutiles d'en créer une supplémentaire. Une requête suffit.

    La requete que je te propose dans mon post précédent reproduit ton code VBA.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

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

Discussions similaires

  1. Effacer tous les enregistrements d'une table
    Par yendre dans le forum Langage
    Réponses: 10
    Dernier message: 22/03/2013, 14h14
  2. Supprimer tous les enregistrements d'une table
    Par kroma23 dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/05/2008, 16h04
  3. Réponses: 3
    Dernier message: 13/05/2007, 10h36
  4. Effacer tous les enregistrements d'une table
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/08/2006, 15h05
  5. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 08h35

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