Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Contribuez
Contribuez Access : Vos contributions. Postez ici vos codes sources, conseils, astuces et autres propositions. Ce forum n'est pas un forum technique mais destiné aux contributions pour www.developpez.com
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/06/2007, 14h11   #1
Membre chevronné
 
Avatar de cavo789
 
Homme Christophe Avonture
Développeur Web
Inscription : mai 2004
Messages : 649
Détails du profil
Informations personnelles :
Nom : Homme Christophe Avonture
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 649
Points : 774
Points : 774
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 :
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
cavo789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/06/2007, 22h06   #2
Rédacteur/Modérateur
 
Avatar de Dolphy35
 
Homme Morgan BILLY
Technicien de Production
Inscription : octobre 2004
Messages : 4 106
Détails du profil
Informations personnelles :
Nom : Homme Morgan BILLY
Âge : 33
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Technicien de Production
Secteur : Industrie

Informations forums :
Inscription : octobre 2004
Messages : 4 106
Points : 8 742
Points : 8 742
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
__________________
Personnaliser la vue Backstage d'Access 2010
Découvrez avec nous Office 2010
Je ne réponds pas aux questions techniques par MP
Dolphy35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2007, 06h54   #3
Membre chevronné
 
Avatar de cavo789
 
Homme Christophe Avonture
Développeur Web
Inscription : mai 2004
Messages : 649
Détails du profil
Informations personnelles :
Nom : Homme Christophe Avonture
Âge : 37
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mai 2004
Messages : 649
Points : 774
Points : 774
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.
cavo789 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h17.


 
 
 
 
Partenaires

Hébergement Web