begin process at 2012 02 15 09:02:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Base de données

 > 

Access

 > 

Gestion des tables liées via VB


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Gestion des tables liées via VB

vendredi 24 août 2007 à 12:21:43 | Gestion des tables liées via VB

Tuxyl

Bonjour,

J'ai deux fichiers liés dynamiquement par access : appli.mdb et tables.mdb.
A l'installation de l'application, je l'aisse à l'utilisateur le choix des répertoires où seront installés les deux fichiers.
Les répertoires choisis sont écris dans un fichier ini.
Au cas où les répertoires sont différents, comment pourrais-je lier les tables (une 20aine) à l'application frontale, sans utiliser l'interface access ? Je n'arrive pas à trouver de fonction utile pour ça et je vous serais très reconnaissant de m'orienter. Merci beaucoup !


mardi 28 août 2007 à 16:47:04 | Re : Gestion des tables liées via VB

eltino

Réponse acceptée !

Bonjour,
Il y a un certain temps, j'ai écrit ces fonctions permettant les attaches et dés-attaches de table.
Tu n'as qu'à insérer les 3 fonctions ci-dessous dans un module et le tour est joué.
Nota : Je n'ai pas eu le courage de vérifier si ce code est optimisé mais il fonctionne parfaitement (exemple : le cas error de la fonction table_existe n'est pas traité!). Toutes les applis que j'ai developpées les utilisent chaque jour, en environnement réseau.
Bonne continuation,
Eltino

Public Function attachT(ByVal strtable As String, strConnect As String, strSourceTable As String) as boolean
' Attache une table à la base de données courante, paramètres :
' strtable : nom local de la table à créer
' strconnect : localisation de la base où trouver la table à attacher
' strsourcetable : nom de la table dans la base source

On Error GoTo Err_attachT

Dim dbsTemp As Database
Dim tdfLinked As TableDef
Dim rstLinked As Recordset
Dim intTemp As Integer
Dim endroit As String
endroit = ";DATABASE=" & strConnect
   
Set dbsTemp = CurrentDb

' Crée un objet TableDef, définit ses propriétés
' Connect et SourceTableName en fonction des
' arguments passés et ajoute l'objet à la collection TableDefs.
Set tdfLinked = dbsTemp.CreateTableDef(strtable)

tdfLinked.Connect = endroit
tdfLinked.SourceTableName = strSourceTable
dbsTemp.TableDefs.Append tdfLinked

' table attachée ?
If table_existe(strtable) <> "no found" Then
    attachT = True
Else
    attachT = False
End If
Exit Function

Err_attachT:
    attachT = False
    Exit Function
End Function


Public Function detachT(ByVal strtable As String) as boolean
' Supprime l'attache d'une table dont le nom est passé en paramètre

' si la table n'existe pas, inutile d'aller plus loin
If table_existe(strtable) = "no found" Then
    detachT = True
    Exit Function
End If

On Error GoTo Err_detachT

Dim dbsTemp As Database
Set dbsTemp = CurrentDb
dbsTemp.TableDefs.Delete strtable
Set dbsTemp = Nothing

' table détachée ?
If table_existe(strtable) = "no found" Then
    detachT = True
Else
    detachT = False
End If
Exit Function

Err_detachT:
    Set dbsTemp = Nothing
    detachT = False
    Exit Function
End Function

Public Function table_existe(ByVal strtable As String)
' Est-ce que la table donnée existe dans la base courante ?
On Error GoTo err_table_existe
Dim dbs As Database, tdfLoop As TableDef, strrep As String
Set dbs = CurrentDb
strrep = "no found"
For Each tdfLoop In dbs.TableDefs
    If UCase(tdfLoop.Name) = UCase(strtable) Then
        strrep = strtable
        Exit For
    End If
Next tdfLoop
Set tdfLoop = Nothing
Set dbs = Nothing
table_existe = strrep
Exit Function

err_table_existe:
Set tdfLoop = Nothing
Set dbs = Nothing
table_existe = "error"
End Function

mardi 28 août 2007 à 17:06:30 | Re : Gestion des tables liées via VB

chaibat05

Réponse acceptée !


Salut,

Pour la fonction table_existe, tu oublies de declarer son type
Public Function table_existe(ByVal strtable As String) As String

Ensuite , moi je fais comme ceci:

Public Function table_existe(ByVal strtable As String) As Boolean
' Est-ce que la table donnée existe dans la base courante ?

Dim dbs As Database
Set dbs = CurrentDb

Dim i As integer, xCount As Integer
xCount =dbs.TableDefs.Count
For =i=1 To xCount
   If UCase(strtable)=UCase(dbs.TableDefs(i).Name) Then
        table_existe=True
        Exit For
    End If
Next
End Function


I LIKE TO BE HERE WHEN I CAN


dimanche 2 septembre 2007 à 19:58:51 | Re : Gestion des tables liées via VB

Tuxyl

Merci infiniment !! C'est exactement ce que mon programme a besoin.
Encore merci à vous deux
mercredi 30 avril 2008 à 10:48:23 | Re : Gestion des tables liées via VB

Ouneufe

Très cool, c'est strictement ce dont j'avais besoin.

le feu ça fait peur mais avec l'eau tu l'arrêtes, le feu.
L'eau, tu l'arrêtes pas.


Cette discussion est classée dans : vb, gestion, répertoires, tables, liées


Répondre à ce message

Sujets en rapport avec ce message

Access, VB et tables liées [ par GrosLolo ] Bonjour,J'ai développé une application VB qui utilise 3 bases access.La première utilise plusieurs tables contenues dans les 2 autres DB ( j'ai lié le Tables liées et VB (pas VBA) [ par gprodhon ] Bonjour,Je suis à la recherche d'un exemple de code en VB (pas VBA)qui permet de rattacher une ou plusieurs tables d'une base Access dans une autre ba connection 3 base tables access avec vb [ par amita ] svp, vraiment je suis plus que bloqué, ...je cherche un code source ou un example de connction de 3 tables access avec vb.pour l'exemple suivant :cha VB et les tables dBase [ par pledoux ] Bonjour,J'ai une table (dont je ne maitrise pas le format) dans laquelle je dois mettre à jour des champs. Sous VB ma propiété CONNECT vaut "FoxPro 3. FileSystemWatcher - VB.Net [ par Romuald76 ] Salut à tous,Voilà mon problème....D'après une liste de répertoire ou fichier, je voudrais pouvoir "surveiller" ces répertoires ou fichiers...Je pourr récupérer les noms des tables Access avec VB [ par messbass ] J'aimerais savoir s'il est faisable, de récupérer le nom des tables dans une base Access, ainsi que tous le snoms des champs présent dan sces tables. [VB.NET] Comment charger plusieurs tables ds un DataAdapter ? [ par dorian53 ] Bonjour,Tout est ds le titre, comment charger plusieurs tables ds un DataAdapter ?Jusqu'a present j'ai testé avec une table a charger grace aobjDataAd gestion des documents word dans une application VB 6.0 [ par radhouene ] je suis en train de développer une application de gestion et mon application doit permettre d'ajouter des liens vers des fichiers .doc et d'accéder à Gestion d'erreur [ par Minikisscool ] Bonjour, je suis en train de faire un programme en VB.Ke voudrais avoir des renseignemetns concerant la gestion d'erreur sous VB.J'ai déjà vu plusieur


Nos sponsors


Sondage...

Comparez les prix

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 : 1,560 sec (3)

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