begin process at 2012 02 10 01:36:21
  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é :12 101 / 3 147

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 avec une capture BIEN ADMINISTRER LES ETUDIANTS ET LEURS CÔTES par okosa
Source avec Zip VBA EXEL GESTION DE PERSONEL NOUVEAU CONTRAT DE TRAVAI par oudlarbi
Source avec Zip Source avec une capture CREATION D'UN OBJET D'ACCÈS AUX DONNÉES par okosa
Source avec Zip Source .NET (Dotnet) MISAHORAIRE par MdelM
Source avec Zip Source avec une capture BASEDEDONNEES,GESTIONDEMALADES,DATABASSE par shadkitenge

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) ACCESS TO POSTGRESQL par Elmarzougui
Source avec Zip Source avec une capture CREATIONBASE par danobj
Source avec Zip Source avec une capture Source .NET (Dotnet) EPHEMERIDE_VB.NET par Le Pivert
Source avec Zip Source avec une capture LES BASES DE DONNÉES EN VB6 par ghuysmans99
Source avec Zip OUTIL DE FORMATION par l0r3nz1

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...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,952 sec (3)

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