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 :

Utiliser la valeur d'un champ


Sujet :

Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Août 2006
    Messages : 78
    Points : 49
    Points
    49
    Par défaut Utiliser la valeur d'un champ
    Bonjour,

    voilà 1 jour que je cherche dans tout le forum sans rien trouver.
    Mon travail est le suivant: il y a la Table1 sous Access que je compte travaillée en passant par visual basic (toujours sous Access).

    Le but est de parcourir tous les enregistrements de cette table à l'aide d'une boucle. Jusqu'ici tout va bien.

    Pour chaque enregistrement, un jeu de conditions du genre :
    Si le champ A est vrai alors copier l'enregistrement dans la table 2 (que je créé au préalable).
    Si le champ A est faux alors je vérifie d'autres champs et je copie ou pas dans l'idée de modifier des champs ou d'en déplacer par la suite. (toutes les modifications seront apportées sur la table 2)

    Voilà donc le principe.
    Le problème, pour l'instant, se situe au niveau de la récupération de la valeur d'un champ afin de la comparer ou de voir son état (vrai ou faux pour mes cases à cocher).

    Voici mon début de code :
    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 Commande6_Click()
     
    Dim a, b As String
    b = 100
     
    DoCmd.OpenTable "Table1", acViewNormal, acReadOnly
     
     
    For a = 1 To b then
    DoCmd.GoToRecord acDataTable, "Table1", acNext
    DoCmd.GoToControl ("Champ1")
    ActiveControl.SetFocus
    If Champ1 = vrai Then
        ...   'conditions pas encore établies
    End If
    DoCmd.CopyObject , "Table2", acTable, "Table1"
    Next
     
    End Sub
    Si quelqu'un a bien compris et c'est comment je peux m'en sortir ? Une fois le ces quelques termes compris je pourrais enfin grandir mon code afin d'accomplir toutes les opérations qu'il me faut.

    En tout cas merci d'avance.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 147
    Points : 172
    Points
    172
    Par défaut
    Bonjour,
    La methode qui va bien pour "lire" les champs d'une table ou requete est le RECORDSET. §Je te laisse feuilleter la fac je suis sur que tu trouvera ton bonheur.
    a+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Août 2006
    Messages : 78
    Points : 49
    Points
    49
    Par défaut
    Merci pour l'info. Je suis allé voir ça sur la FAQ mais là je suis confronté à un autre problème. Je n'y comprend rien du tout
    Je n'arrive pas à trouver ce qui me concerne dans le recordset...

  4. #4
    Invité
    Invité(e)
    Par défaut


    Dans l'éditeur VBA -> Menu "Outils" -> "Références"
    Vérifier que "Microsoft DAO 3.6 Object Library" est bien coché !

    Ensuite, tu peux faire :
    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
     
    Private Sub ParcourEnr()
    On Error GoTo Erreur_Proc
      Dim rs As DAO.Recordset, db As Database
      Set db = Application.CurrentDb
      Set rs = db.OpenRecordset("Table1", dbOpenDynaset)
      With rs
        Do
          If .Fields("Champ1") = True then
            .Edit
            ' On peut modifier les champs que l'on veut ici
            .Fields("Champ2") = "MonTexte"
            ' Ne pas oublier de mettre à jour
            .Update
          Endif
        While Not .Eof
      End With
     
    Exit_Proc:
      rs.Close
      Set rs = Nothing
      Set db = Nothing
      Exit Sub
     
    Erreur_Proc:
      MsgBox Err.Description & vbCrLf & "Inscription dans fichier 'ErrorLog.txt'"
      Resume Exit_Proc
    End Sub
    Un truc de ce style là

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Août 2006
    Messages : 78
    Points : 49
    Points
    49
    Par défaut
    Ou plutot :

    Do Until
    .
    .
    .
    Loop


    Merci énormément, voilà ce qu'il me fallait. Ca marche parfaitement. Il ne me reste donc plus qu'à compliquer sérieusement la partie des conditions (en espérant que ce ne sera pas trop lourd pour mon CPU), mais je pense que pour cette macro le plus dur est passé.

    Et sincèrement je ne pense pas que j'aurais réussi seul.

    Encore

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/07/2011, 15h57
  2. [AC-2007] Utiliser la valeur d'un champ d'une table pour faire une requête
    Par tibofo dans le forum VBA Access
    Réponses: 2
    Dernier message: 29/09/2009, 14h10
  3. comment utiliser une valeur d'un champs dans un select ?
    Par cholopat dans le forum Requêtes
    Réponses: 10
    Dernier message: 20/06/2009, 08h15
  4. utiliser la valeur d'un champ d'un autre formulaire
    Par Alain7751 dans le forum IHM
    Réponses: 7
    Dernier message: 10/02/2009, 00h50
  5. Utiliser la valeur d'un champs indépendant
    Par Tiroy dans le forum IHM
    Réponses: 9
    Dernier message: 26/02/2007, 11h20

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