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

Contribuez Discussion :

[Sources] SetConnectString - Change la connexion d'une table


Sujet :

Contribuez

  1. #1
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut [Sources] SetConnectString - Change la connexion d'une table
    J'ai une DB qui reprend des données au jour le jour. En fin de mois, je sauve une copie de ma DB afin d'avoir des chiffres figés. Ma DB en "production" est elle mise-à-jour et pourrait l'être en rétro.

    Parfois, je dois lancer une application sur ma DB en production parfois je dois lancer l'application sur une DB figée.

    Le code ci-dessous me permet de changer la connexion d'une table pour aller sur une DB.

    Un autre exemple d'utilisation serait d'avoir une DB en développement et, une fois l'application développée et testée; migrer la DB vers un environnement en production; ceci en changeant simplement les liens.

    Remarque : j'ai simplifié le code. Il y aurait lieu de vérifier l'existence de la table ainsi que du fichier référencé par sConnect.


    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    Public Function SetConnectString(ByVal sTable As String, ByVal sConnect As String) As Boolean
     
    Dim bReturn As Boolean
     
       With Currentdb
     
          ' Don't process system table
     
          If Not (.TableDefs(sTable).Attributes And dbSystemObject) Then
     
             If (.TableDefs(sTable).Connect <> "") Then
     
                Err.Clear
     
                On Error Resume Next
     
                .TableDefs(sTable).Connect = ";DATABASE=" & sConnect
     
                ' And refresh the table link (mandatory)
     
                .TableDefs(sTable).RefreshLink
     
                bReturn = (Err.Number = 0)
     
                On Error GoTo 0
     
             End If ' If (.TableDefs(sTable).Connect <> "") Then
     
          End If
     
       End With
     
       On Error GoTo 0
     
       ZSetConnectString = bReturn
     
    End Function
    Christophe
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  2. #2
    Expert éminent sénior
    Avatar de Dolphy35
    Homme Profil pro
    Responsable Systemes d'Information
    Inscrit en
    Octobre 2004
    Messages
    4 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable Systemes d'Information
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 373
    Points : 11 218
    Points
    11 218
    Par défaut
    Bonjour Christophe,

    merci pour ton code.

    moi je préfère utiliser l'attribut dbAttachedTable de la table car il se peut que la bdd possède des tables non liées

    autre point intérréssant à faire c'est de lister les tables attachées, modifier la liaison puis d'enlever la table de la liste, ceci permet lors d'un problème de savoir quelle tables ont été liées (bonne idée tof' )

    voici le code que j'utilise http://dolphy35.developpez.com/artic...eseaux/#LVII-A

    Dolphy

  3. #3
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    dbAttachedTable... mais bien sûr !!! En fait, j'ai développé mon code lorsque j'étais sous MS Access 2 et je ne l'ai pas fait évolué depuis.
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/05/2015, 14h29
  2. Réponses: 4
    Dernier message: 06/06/2014, 18h43
  3. pb fonction avec connexion sur une table
    Par NATOU2 dans le forum VBA Access
    Réponses: 6
    Dernier message: 25/08/2008, 14h32
  4. connexion a une table postgreSQL ?
    Par aquafafa dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 27/08/2007, 12h50
  5. Temps de connexion à une Table
    Par Tardiff Jean-François dans le forum Requêtes
    Réponses: 10
    Dernier message: 17/11/2006, 06h32

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