begin process at 2010 02 10 04:52:15
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de Donnees

 > RECOUPEMENT ENTRE DEUX BASES DE DONNÉES ACCESS

RECOUPEMENT ENTRE DEUX BASES DE DONNÉES ACCESS


 Information sur la source

Note :
Aucune note
Catégorie :Base de Donnees Classé sous :vba, vb, access, données, bdd Niveau :Débutant Date de création :28/11/2005 Vu / téléchargé :10 833 / 3 057

Auteur : M000004965

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

L'objectif est d'avoirs deux tables identiques.
Le code parcoure la première table et vérifie que chaque enregistrement existe dans la seconde. S'il n'existe pas, le code l'ajoute dans la seconde base pour obtenir deux bases identiques.


 Conclusion

Le code est les bases access en exemple sonts aux normes Access 97.
Il faudra modifier dans le code le moteur "Microsoft.Jet.OLEDB.3.51" en fonction de la version Access utilisé.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) DATA ACCESS COMPONENT par zaimfaycal
Source avec Zip GESTION ENSEIGNANTS par Elmarzougui
Source avec Zip GESTION D'UNE BIBLIOTHÈQUE par Elmarzougui
Source avec Zip VISUALISATION BASE ACCESS par claude440
Source avec Zip SUPER MONEY par MdelM

 Sources en rapport avec celle ci

Source avec Zip GEOLOCALISATION WGS84 par l0r3nz1
Source avec Zip Source avec une capture Source .NET (Dotnet) EXECUTÉ UNE PROCEDURE STOCKÉ "STOREPROC" DANS UNE BD ACCESS par jaknight007
Source avec Zip Source avec une capture Source .NET (Dotnet) ACCESS TO ( XML,EXCEL ) par simo5963
Source avec Zip CONNEXION BASES DE DONNÉES par l0r3nz1
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DE BASE DE DONNÉE ACCESS COMPLÈTE AVEC ORIENTÉ OBJET par ThoT49

Commentaires et avis

Commentaire de BruNews le 28/11/2005 12:39:12 administrateur CS

Une simple requête "INSERT INTO" n'aurait pas suffi ?
"Provider=Microsoft.JET.OLEDB.4.0" va bon pour moi avec les Access 2 jusque 2003.

Commentaire de asimengo le 30/11/2005 09:41:42

@M000004965: En bidouillant juste un peu ta source je te propose une petite amelioration qui te permettra de faire la mise à jour d'une tableB dune BD_B par rapport à une tableA de la BD_A quelconque.

L'essentiel de la modif est faite dans ta procédure "Verification_traitement"

'PNomTableA est le nom de la tableA dans la BD_A
'PNomTableB est le nom de la tableB dans la BD_B
'PNomChampClePrimaire est le nom du champ qui fait office de clé primaire pour les 2 tables.

Public Sub Verification_traitement(PNomtableA As String, PNomTableB As String, PNomChampClePrimaire As String)
Dim fld As Field

PathFileDB_A = App.Path & "\"      'même chemin que ton appli
PathFileDB_B = App.Path & "\"
NameFileDB_A = "baseA.mdb"
NameFileDB_B = "baseB.mdb"

SQLA = "SELECT * FROM [" & PNomtableA & "]"  'tous les enregistrements de la tableA

Call Open_Connection
  Call Open_RecordSetA

If RsAccessA.EOF = False Then    ' Vérifie qu'il existe au moins un enregistrement

    RsAccessA.MoveFirst   'se place sur le premier enregistrement

    Do    'ammorce une boucle "tant que..."
        'Suivant le type du champ clé primaire formaté la valeur du critère
        Select Case RsAccessA.Fields(PNomChampClePrimaire).Type
            Case adVarChar, adVarWChar, ...: CriterFiltre_B = Chr$(34) & RsAccessA.Fields(PNomChampClePrimaire).Value & Chr$(34)
            Case adDate, adDBDate, ...: CriterFiltre_B = "#" & Format(RsAccessA.Fields(PNomChampClePrimaire).Value, "mm/dd/yy") & "#"
            Case Else:CriterFiltre_B = RsAccessA.Fields(PNomChampClePrimaire).Value
            
        End Select
    
        SQLB = "SELECT * FROM [" & PNomTableB & "]" & _
            " WHERE [" & PNomChampClePrimaire & "]=" & CriterFiltre_B & _
            " ORDER BY [" & PNomChampClePrimaire & "]"
            

        Call Open_RecordSetB
    
            If RsAccessB.EOF = False Then 'Verifier si enregistrement existe
                GoTo SUITE_A 'Il existe donc on passe à la recherche suivante
            Else
                ' il n'existe pas, on rajoute dans base B
                RsAccessB.AddNew 'Ajouter un enregistrement
                
                'Chaque enregistrement ajouté à la tableB doit être identique à la tableA
                For Each fld In RsAccessB.Fields
                    fld.Value = RsAccessA.Fields(fld.Name).Value
                Next fld

                RsAccessB.Update 'Valider l'ajout en mettant à jour la base

            End If
SUITE_A:
            Call Close_RecordSetB
    
        RsAccessA.MoveNext  'passer à l'enregistrement suivant
    Loop While RsAccessA.EOF = False

End If

  Call Close_RecordSetA
Call Close_Connection

End Sub

Donc, dans la procedure Command1_Click tu fera un appel de ce genre: Call Verification_traitement("TableA", "TableB", "Produits")
NB : En tenant compte de tes 2 BD (BaseA et BaseB) le reste n'est pas efficace car le champ "Produits" n'est pas la clé primaire des 2 tables. il faudra donc ajouter dans chaque table un champ clé primaire de même nom.

Vu le niveau débutant de ta source, je pense que cette reflexion est suffisante pour entrevoir la suite. Mais rassures toi ce n'est pas top, c'est juste pour un petit plus

juste une petite remarque, après avoir ajouté les enregistrements manquants, pour les enregistrements existants il faudra penser à une mise à jour.

j'espère t'avoir apporté un petit plus, c'est qu'en ce moment je travaille sur le synchronisation de plusieurs BD ACCESS pour une appli multi site, surtout que BRUNEWS a jeté un oeil la dessus j'étais bien curieux de voir ce que c'était.

A+

Commentaire de m2rtech le 27/12/2007 09:02:16

Bonjour, une amélioration 2 ans après.

il suffit d'une commande SQL du genre :

UPDATE table1 set table1.champs1 = table2.champs1 where table1.champ_reference
not in (SELECT table2.champ_reference
FROM table1 INNER JOIN table2 ON table1.champ_reference  = table2.champ_reference )

RG

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Connexion a la BDD ACCESS - un seul chemin? [ par xtrusion ] Voila, je bosse sur VB.net et je voudré savoir commen faire pr mettre une fois le chemin de la base de donnée access et ainsi pouvoir deplac [Access & VBA] Exporter des données de tables Access Vers Excel [ par Pouf06 ] Bonjours à tous!Je cherche à faire un système pour exporter des données automatiquement vers un fichier Exel! Le problème c'e VB+access [ par mongii ] Je veux développer une application qui prend entrés des bases  de données (lecture seule) .je veux faire des traitement sur ces do BDD Access et projet VB.NET [ par Botanique ] Bonjour,   je débute dans la programmation et la création de projet exportable. Je voudrais créer une base de donné VB et base de données [ par stefdsig ] Bonjour,je dois développer une Application VB pour gérer une base de données Access. Je dois y accéder en saisie, extraction Problème avec mise en relation d'une BDD Access [ par bjipowa ] Bonjour,Je suis une noob en vb, mais je dois créer un projet pour mon BTS.Comment faut il que je connecte ma base de donnée afin de pouvoir VB, Access et Word [ par jekifvb6 ] Bonjour, j'ai créé un petit programme VB qui permet la saisie directe de données simples dans une base Access ".mdb" sans passée Remplissage de BDD [ par Botanique ] Bonjour, j'ai créé une base de données sous access et l'interface utilisateur en VB.NET. Cette base de données contient 10 tables reliées en elles. J Ouvrir Access avec VB [ par miss_aurel_8 ] Bonjour, Alors voila, je dois créer une appli VB 6.0 qui permette d'ouvrir une base Access existante, puis d'envoyer des données se trouvant Access et VB : Problèmes de format de données [ par MMaker13 ] Bonjour, je développe une appli sous VB en stockant les données dans access...sur une forme j'ai des textbox ou je saisi des nombres, ils s'


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,810 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales