Vba réalisation

Résolu
Bonjour,
Je souhaiterai réaliser un module access qui m'afficherait les enregistrements (qui correspondes dans deux tables différentes) dans un tableau access.
Quelqu'un aurait il une idée? Tout conseil de votre part étant bien évidemment le bien venu.
Configuration: Windows XP Internet Explorer 6.0

91 réponses

Résumé de la discussion

Il s'agit d'afficher dans un formulaire Access les enregistrements issus de deux tables différentes et de les relier pour qu'ils apparaissent côte à côte dans le même tableau. La solution clé est d'utiliser soit une table soit une requête comme source du formulaire, à condition de disposer d'un champ commun permettant de lier les données. Le choix entre tables ou requêtes n'est pas restrictif et dépend du besoin, le code reste essentiellement inchangé lorsque le lien s'opère par un champ commun (numéro d'enregistrement ou autre). En pratique, on peut exploiter une jointure SQL ou une requête regroupant les données des deux sources pour les afficher dans un seul formulaire, ce qui permet d'éviter des duplications et de clarifier les correspondances.

Bobot (l’IA à votre service)
  1. éhéh! Euh...ouai, enfin j'y taf quoi,lol
    Nan là ils m'ont demandés de faire l'explicatif en priorité (Oo?? ouai moi aussi j'comprend pas mais bon...)
    Mais j'vais y arrivé, pour l'explicatif le prob, c'est qu'il commence au tout tout tout début, jusqu'a la création des enregistrement et tout et tout, et là c'est franchement long, mais bon faut que je procède par étape et que je me rappel de tout ce que j'ai fait,... pas simple!
    1. Contributeur
      ca c'est pour pouvoir refourger le bébé à quelqu'un quand tu partira.. qu il comprenne les méandres tres compliqué de tes manip ;)

      un classique :p

      Mais bon, comme t'a tout bien suivi et compris (enfin, j espere).. ca devrais pas etre compliqué ;)

      Bon, t'as rajouter le code de mon formulaire activate dans le tient?? et ca marche comme tu veux ?
      1. :D ok, et cerise sur le gateau, my boss m'a demandé de créer un explicatif word sur tout ce que j'ai fait depuis le début! XD Y sont fous ces patrons!
        1. Contributeur
          Ben faut lire un peu ;)

          2) Le controle des différence se fait dans la propriete activate du formulaire :

          Et oui, je sais, je suis tres tres tres patient... comme dirais colombo.. ma femme me (le) dit toujours... ;) :p

          Allez, vas y rambo.. c'est presque fini :p
          1. Encore merci! j'vais essayé de m'dépatouiller!(un peu d'courage comme dirait rambo)
            Juste une dernière chose, où mettre ce code? (je doit creer un nouveau module VB pour ça?)
            Merci encore pour ta patience exemplaire!
            1. Contributeur
              1) les requete que j ai mises sont juste pour te montrer que le formulaire marche avec une reference aux requete et non au table.. donc t'a rien à changer pour ca..

              2) Le controle des différence se fait dans la propriete activate du formulaire :

              je te recopie ici le code :

              Dim NomCtrl1, NomCtrl2, NomCtrlExt As String
              Dim NomControle
              NomControle = "Requête1"
              For Each cCont In Form_Formulaire1.Controls
              'MsgBox TypeName(cCont) & " - " & cCont.Name
              Select Case TypeName(cCont):
              Case "ComboBox"
              'ici code combo
              Case "TextBox"
              '
              NomCtrl1 = Left(cCont.Name, InStr(1, cCont.Name, ".") - 1) 'Nom controle avant ex Requête1.N°=> Requête1
              NomCtrl2 = Left(NomCtrl1, Len(NomCtrl1) - 1) & "2" 'Nom controle avec 2=> Requête2
              NomCtrlExt = Right(cCont.Name, Len(cCont.Name) - InStr(1, cCont.Name, ".") + 1) 'extentetion => .N°
              Set cCont2 = Form_Formulaire1.Controls(NomCtrl2 & "" & NomCtrlExt) 'fait reference à Requête2.N°
              If NomCtrl1 = NomControle Then 'Si le ctrl s'appele comme ceux qu on cherche .. ici Requête1
              If cCont.Value = cCont2.Value Then
              cCont.BackColor = 8421631 'met en rouge
              cCont.Locked = True 'block
              cCont2.BackColor = 8421631 'idem pour ctrl2
              cCont2.Locked = True 'block
              Else
              cCont.BackColor = 16777215 'Transparent
              cCont.Locked = False 'deblock
              cCont2.BackColor = 16777215
              cCont2.Locked = False

              End If
              End If
              'if cCont.Value = cCont
              'cCont.Locked = lockctrl
              Case "ListBox"
              'ici listbox
              Case "BalloonCheckBox"
              'ici BalloonCheckBox
              Case "OptionButton"
              'ici OptionButton
              End Select
              Next
              1. Donc, j'ai mon formulaire qui m'affiche bien les enregistrements de mes deux tables les uns en face des autres, ok
                Là tu m'a envoyé bd1 avec deux requêtes et un formulaire et deux table, ces requetes ont (ou doivent avoir) pour but de montrer les écarts entres les champs des enregistrement des deux tables et de les afficher en rouge, ok
                là tout est ok dans ce qu'il me faut, sauf que...
                J'ui une grosse m**** et que j'ai quand même compris que ce que tu m'a donné je doit l'adapter à mon formulaire, mais je ne sais pas comment incorporer ce que tu m'a donné avec ma base de donnée, en clair où mettre les requêtes? doit je créer deux requetes similaire dans ma bd?
                1. Argh! j'uis un peu dans une impasse pour les requètes que tu m'a envoyées...C'est chiant d'être un noobie :(
                  En fait j'ai repris l'formulaire depuis que tu m'a envoyé bd1, et là actuellement j'essaye de trouver comment incorporer ce que tu m'a donné dans le formulaire... Dsl de cette incompétence.
                  1. Contributeur
                    c'est un des premier appel quand tu charge (ou recharge) un formulaire .. c'est la dedans que je met le code pour vérifier les données (cf la bd d exemple)
                    1. SUPER!!!! :)))))))))))))))))))))))))))))))))))))
                      J vais faire ça, vraiment trop cool!
                      Je te recontact pour te donner des nouvelles, comment ça tourne et tout et tout.
                      Merci!
                      1. Contributeur
                        voili :)

                        http://dl.free.fr/getfile.pl?file=/gQqXl5cI

                        Tu pourra faire un copier coller dans ton form_activate et y aura que 2 modifs:

                        NomControle = "Requête1" renommer COMP TRANSACTIONS

                        et

                        NomCtrl2 = Left(NomCtrl1, Len(NomCtrl1) - 1) & " R7" 'Nom controle avec 2=> Requête2

                        voili ;)
                        1. Contributeur
                          par défault on peut ecrire de dans.. donc
                          =>

                          moncontrol.Locked = true pour bloquer ;)
                          1. En fait les tables à modif si il y a des erreur sont TRANSACTION et TRANSACTION R7.
                            Au fait comment on fait pour autoriser l'ecriture (la modif des données affichées dans les champs du formulaire).
                            1. La dernière fonctionnalité attendu de ce formulaire c'est d'indiquer en rouge les champs qui ne corresponderaient pas (les écarts), est ce possible de faire cela?
                              1. Contributeur
                                TOUT est possible ;)

                                donc, tu as des champs nommés COMP TRANSACTIONS R7.aaa COMP TRANSACTIONS R7.bbb ect et les meme nommés COMP TRANSACTIONS.aaa,COMP TRANSACTIONS.bbb, ect...

                                c'est super ! c'est exactement ce qu'il fallait ;)

                                Bon, je modifie un peu le code de ma bd exemple et je t envoie ca, avec les modif demandés :si == en rouge et block saisie, sinon, laisse libre... ah oui d ailleurs.. les 2 champs doivents rester libre une y a une table particuliere seulement à changer ??
                            2. J'espère que ce que je t'ai donné correspond bien à tes attentes...
                              • 1
                              • 2
                              • 3
                              • 4
                              • 5