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

VBA Access Discussion :

Connexion entre Access et SIG


Sujet :

VBA Access

  1. #1
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut Connexion entre Access et SIG
    Bonjour à tous
    ,
    Dans le cadre du développement d'une base de données, je souhaite qu'une action mette à jour les données d'un SIG.
    Le fichier de donnée est donc un dbf.
    Je pense que l'action est assez simple, mais j'ai du mal à visualiser la procédure de connexion entre Access et cette table et comment gérer le fait qu'on se connecte simulatanément à la base access et la table externe.
    Merci de votre aide pour me donner quelques pistes!

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    Je te propose d'essayer une commande telle que celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferDatabase transfertype:=acImport, databasetype:="dBaseIV",  databasename:="CheminBaseSIG", objecttype:=acTable, Source:="NomTableSource",  destination:="NomTableDestination"
    Espérant avoir répondu à ton attente...

    Cordialement.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  3. #3
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut
    Merci pour ta réponse,

    Si je comprend bien le fonctionnement de cette fonction, elle va permettre d'importer ou d'exporter les données depuis/vers mon fichier.
    En fait je voudrais faire un tâche un peu plus complexe : les données pourront être mises à jour soit via le SIG, soit via la base access et je souhaiterai mettre à jour l'un en fonction des dernières mises à jour de l'autre (avec un champ date pour connaitre les dernières mises à jour).

  4. #4
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Hello !

    Je comprends bien ce que tu veux faire mais je suppose que tu peux le faire (je ne l'ai jamais testé)

    Essayes avec la fonction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferDatabase transfertype:=acLink, databasetype:="dBaseIV",  databasename:="CheminBaseSIG", objecttype:=acTable, Source:="NomTableSource",  destination:="NomTableDestination"
    Ceci devrait te permettre de "lier" la table se trouvant dans ton SIG et, à partir de là, tu devrais pouvoir modifier cette table depuis les deux environnements.

    Cordialement.
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  5. #5
    Responsable Systèmes


    Homme Profil pro
    Gestion de parcs informatique
    Inscrit en
    Août 2011
    Messages
    17 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Gestion de parcs informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2011
    Messages : 17 453
    Points : 43 108
    Points
    43 108
    Par défaut
    Plutôt que de faire un transfert, il doit être possible de faire un lien ODBC vers un fichier .dbf.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  6. #6
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut
    J'essaie de faire un lien ODBC, mais j'ai un message d'erreur :
    Nom : Capture.PNG
Affichages : 161
Taille : 28,5 Ko

    Voici mon code (récupéré sur un forum), je ne comprends pas trop ce qui pose problème...

    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
    Private Sub Commande0_Click()
        Dim Cn As ADODB.Connection
        Dim Rs As ADODB.Recordset
        Dim Chemin As String, Cible As String, laBase As String
     
        Chemin = "Z:\"
        laBase = "Potentiel_communal.dbf"
     
        Set Cn = New ADODB.Connection
        Cn.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & Chemin & ";"
        Cible = "SELECT * FROM " & laBase & ";"
     
        Set Rs = New ADODB.Recordset
        Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
     
    End Sub

  7. #7
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Salut !

    Je ne veux pas insister mais, as-tu essayé le code que je t'ai proposé ?
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  8. #8
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut
    J'ai un message d'erreur "le type de base de données dBaseIV n'est pas installé ou ne gère pas l'opération sélectionnée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferDatabase transfertype:=acLink, databasetype:="dBaseIV", databasename:="z:\Potentiel_communal.dbf", objecttype:=acTable, Source:="Potentiel_communal", destination:="Commune"

  9. #9
    Membre régulier Avatar de Bragon12
    Inscrit en
    Avril 2008
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 142
    Points : 108
    Points
    108
    Par défaut
    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
    Private Sub Commande0_Click()
        Dim Cn As ADODB.Connection
        Dim Rs As ADODB.Recordset
        Dim Chemin As String, Cible As String, laBase As String
     
        Chemin = "Z:\"
        laBase = "Pote.dbf"
     
        Set Cn = New ADODB.Connection
        Cn.Open "Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=" & Chemin & ";"
        Cible = "SELECT * FROM " & laBase & ";"
     
        Set Rs = New ADODB.Recordset
        Rs.Open Cible, Cn, adOpenKeyset, adLockOptimistic
     
    End Sub
    Je viens de trouver d'où provennait l'erreur en me prommenant sur le web :

    "dBase reste lié à la période “MS-DOS”. Et à cette époque, les noms de fichiers étaient au format 8.3 (8 caractères, un point, 3 caractères d’extension).

    Si vous devez importer un fichier dBase dans Access, il faut que le fichier dBase respecte ce format. Dans l’exemple ci-dessus, renommez votre fichier communes.dbf, ou com.dbf, et ça passe. C’est tout, mais il fallait y penser !"

    Donc en réduisant le nom du fichier de Potentiel_communal.dbf à pote.dbf, ça fonctionne!!!

    Voilà une première étape de passée!

    Il me reste encore à comprendre comment récupérer les infos de la base SIG pour mettre à jour access et l'inverse.

  10. #10
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    J'ai peut-être trouvé quelque chose qui pourrait t'aider... Ici
    Nous n'héritons pas la Terre de nos ancêtres, nous l'empruntons à nos enfants, prenons-en soin !
    (proverbe amérindien)

  11. #11
    Membre éprouvé

    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    789
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2009
    Messages : 789
    Points : 1 266
    Points
    1 266
    Par défaut
    Bonjour,

    Il me semble que j'ai déjà eu ce genre de problème et cela était dù au fait que le fichier ne doit pas dépasser 8 caractères.
    Cordialement

    Christophe

    N'oubliez pas de mettre pour en faire profiter tout le monde.

Discussions similaires

  1. [2007] Problème connexion entre Access et Excel
    Par T4keo dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 10/03/2014, 10h07
  2. Connexion entre access et fichier excel
    Par mimi123456789 dans le forum Access
    Réponses: 4
    Dernier message: 24/07/2012, 08h53
  3. [SQL Server 2005] pb de connexion entre Access et MSSQLS2005
    Par Herlece dans le forum Administration
    Réponses: 1
    Dernier message: 08/01/2010, 11h20
  4. Créer connexion entre Vb.net et une base Access
    Par fixfix dans le forum Accès aux données
    Réponses: 9
    Dernier message: 05/12/2007, 10h07
  5. probleme de connexion entre delphi 7 et une BD access
    Par bob.marley dans le forum Bases de données
    Réponses: 5
    Dernier message: 21/04/2004, 11h17

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