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 :

Piloter une importation dans une base de donnée dorsale depuis la db frontale


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Piloter une importation dans une base de donnée dorsale depuis la db frontale
    Bonjour,
    Je viens de séparer mon application access en deux db, une frontale et une dorsale.
    Une fois par mois, nous devons importer d'un programme comptable, une table en format .dbf, actualiser cette table dans la db Access et ensuite re-exporter la table vers le programme comptable.
    Cette manipulation ce faisait assez facilement dans l'application tant qu'elle etait en monobloc : docmd.transferDatabase acImport, "dbase5.." .....
    Mais avec les tables liées, ce n'est plus possible. Je voudrais donc pouvoir importer dans la base dorsale, un table .dbf via un bouton situé dans ma base frontale et de même pour l'exportation. Merci pour votre aide

  2. #2
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonjour Olibr,

    Si tu as liée tes tables (dorsale) à l'application (frontale) il ne doit y avoir aucun soucis. ça reste transparent vis à vis d'access.

    Peux-tu expliquer précisément ce qui ne fonctionne pas ?

    Parce que :
    Mais avec les tables liées, ce n'est plus possible.
    ça n'aide pas vraiment à cerner le problème...

    Curt

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Bonjour,

    Ce que dis curt n'est pas tout a fait vrai, il peut y avoir problemes lors de l'import de données dans une table liée.

    Perso, j'importe les données en local (dans une table Temp par exemple) puis il faut faire une requete qui envoie les données de la table temp vers la bonne table. Enfin, je supprime la table Temp.

    A titre d'exemple, un petit bout de code (a adapter):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DoCmd.TransferText acImportDelim, Trim(fic1("nom_T")), "Temp", Trim(fic1("repert")) & IIf(Right(Trim(fic1("repert")), 1) = "\", "", "\") & fic1("FIC"), False
    'transfert des données vers la table distante
    DoCmd.RunSQL "INSERT INTO K_PLAN_DEM_M ( CAD, CLIENT_OFFRE, PAYS_PREV, MOIS_JJ, NBJM, QTE, MARCHE ) " & _
    "SELECT Temp.CAD, Temp.CLIENT_OFFRE, Temp.PAYS_PREV, Temp.MOIS_JJ, Temp.NBJM, Temp.QTE, Temp.MARCHE FROM Temp"
    'suppression table temp
    DoCmd.RunSQL "drop table Temp"

  4. #4
    Membre émérite Avatar de curt
    Homme Profil pro
    Ingénieur Etudes
    Inscrit en
    Mars 2006
    Messages
    1 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Etudes
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 575
    Points : 2 550
    Points
    2 550
    Par défaut
    Bonsoir Access Newbie,

    surprenant ce que tu écris : tu copies des données sur une table temporaire (dans la frontale je suppose quand tu parles de LOCAL ?) et ensuite tu recopies cette table dans une table liée ???

    Il faudra m'expliquer en argumentant autrement que ça
    Ce que dis curt n'est pas tout a fait vrai
    parce que je ne vois pas pourquoi le transfert direct vers une table distante devrait se faire en passant par une table locale.

    J'effectue régulièrement cette opération depuis des fichiers .dbf de taille conséquentes vers des tables distantes sur serveur sans aucun soucis.

    A moins que celà provienne d'une lenteur de réseau, mais là j'ai comme un doute !!

    Curt

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 357
    Points : 355
    Points
    355
    Par défaut
    Bonjour Curt,

    Citation Envoyé par curt Voir le message
    surprenant ce que tu écris : tu copies des données sur une table temporaire (dans la frontale je suppose quand tu parles de LOCAL ?) et ensuite tu recopies cette table dans une table liée ???
    Oui pour local et frontal, c'est un abus de language qui peut induire en erreur.

    Citation Envoyé par curt Voir le message
    Il faudra m'expliquer en argumentant autrement que ça parce que je ne vois pas pourquoi le transfert direct vers une table distante devrait se faire en passant par une table locale.
    Hé bien personnellement, le problème m'est déjà arrivé, je n'en connais pas la cause mais en utilisant la solution que je donne ci-dessus, on réussi à résoudre le problème. Je ne sais pas si il s'agit d'une limite d'access ou d'un autre problème, mais les faits sont là, ce post en est la preuve.

    Citation Envoyé par curt Voir le message
    J'effectue régulièrement cette opération depuis des fichiers .dbf de taille conséquentes vers des tables distantes sur serveur sans aucun soucis.
    Je suis complètement d'accord, j'ai aussi des applis sur lesquelles le transfert se fait vers des tables distantes sur serveur sans aucun problème.

    Mon but n'est absolument pas de dire que ce que tu as dit était faux, mais j'essaie d'apporter des solutions aux problèmes que j'ai déjà rencontré en proposant les solutions que j'ai trouvé.

    Après il existe peut-être une meilleure façon de faire, mais celle ci fonctionne.

  6. #6
    Membre régulier

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Décembre 2011
    Messages : 11
    Points : 74
    Points
    74
    Par défaut Transfert données Excel dans une table de base dorsale depuis la base frontale sous access
    J'ai essayé la méthode de Access Newbie et ça marche
    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DoCmd.TransferSpreadsheet acImport, , "Temp", "C:\IMPORTATION_TONTINE\RETENUS.XLS", True, "RETENUS!A1:K9000"
    'transfert des données vers la table distante
    DoCmd.RunSQL "INSERT INTO [OPERATIONS TONTINE] ( DateET, LibET, DepotET, RetraitET, NumRecuET, ID_CpteClt_Select, NumClt, AgEpTont, ASEpTont ) " & _
    "SELECT Temp.DateET, Temp.LibET, Temp.DepotET, Temp.RetraitET, Temp.NumRecuET, Temp.ID_CpteClt_Select, Temp.NumClt, Temp.AgEpTont, Temp.ASEpTont FROM Temp"
    'suppression table temp
    'DoCmd.RunSQL "drop table Temp"
    CurrentDb.Execute "DELETE * FROM Temp;"
    Je crée une table temporaire avec la même structure que ma table "OPERATIONS TONTINE"
    je transfert le contenu de mon fichier excel "RETENUS.XLS" dans la table Temp
    ensuite je transfert le contenu de la table Temp dans la table "OPERATIONS TONTINE"
    je vide la table Temp (pour d'éventuelles opérations du même genre"
    ça marche impécable
    Attention: si votre table contient un champ automatique il faudra l'ignorer ce champ

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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