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 :

Comment ajouter des nouveaux champs ds une Base Access suite à la modification des fichiers sources ?


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Par défaut Comment ajouter des nouveaux champs ds une Base Access suite à la modification des fichiers sources ?
    Bonjour,

    Je suis en stage .Je suis débutant dans VBA et access. Je rencontre le problème suivant :
    On est sur un réseau partagé on a une base de données appelée « ROCPTA ». Cette base contient un code VBA (détails en bas) qui importe des fichiers Excel (ces fichiers Excel sont en format Excel csv sous un emplacement réseau).
    Ces fichiers Excel ont été modifiés récemment par l’ajout de 3 colonnes. On est passé de 25 champs à 28.lors de l’exécution de la macro Access ( qui contient le code VBA de la base ROCPTA) l’importation des fichiers ne se fait pas correctement. En effet les tables dans ROCPTA ont toujours le même nombre de champ 25. Access ne tient pas compte de la modification (les 3 champs supplémentaires).

    Comment intégrer dans mes tables de la base ROCPTA , ces nouveaux champs ?

    Pourriez-vous m'aider svp ?


    le code VBA


    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
    Function F_Utilitaires_DonneDate(target_id) As Date
    ' ---------------------------------------------------------
    ' - Date : 21/10/00
    ' - Auteur : N. FERRASSE
    ' - Commentaire : Gestion des dates paramètres
    ' ---------------------------------------------------------
     
    tb0 = "Date"
    Dim BDD As Database
    Set BDD = CurrentDb
    Dim RS As Recordset
     
    a = "SELECT DISTINCTROW [" & tb0 & "].date "
    b = "FROM [" & tb0 & "]"
    c = "WHERE ([" & tb0 & "].target = '" & target_id & "')"
     
    z = a & b & c
     
    ' Début du traitement
    ' Selectionne la date demandée dans la table Init_Param
    Set RS = BDD.OpenRecordset(z, dbOpenSnapshot)
    F_Utilitaires_DonneDate = RS!Date
     
    End Function
    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
    Function ImportROCPTA()
    Datesel = F_Utilitaires_DonneDate("Date_jour")
    DatRes = Mid(Datesel, 7, 4) & Mid(Datesel, 4, 2) & Mid(Datesel, 1, 2)
    MsgBox (DatRes)
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base 10260", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_10260_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base 10117", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_10117_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base 10002", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_10002_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base 10115", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_10115_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base TRESO", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_TRESO_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base TAUX", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_TAUX_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base LA", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_LA_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base ACTION", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_ACT_CPTA.csv"
    DoCmd.TransferText acImportDelim, "ROCPTA", "Base LS CIGOGNE", _
    "\\Umilp-p2.cdm.cm-cic.fr\CIC-Ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_2014\Report_mensuel\Rappro ROCPTA\Fichiers ROCPTA\ROCPTADetailc_M_" & DatRes & "_LS_CI_CPTA.csv"
     
     
    End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function ExportROCPTAInput()
    Datesel = F_Utilitaires_DonneDate("Date_jour")
      datinput = Mid(Datesel, 7, 4)
     MsgBox datinput
     tb0 = "Fichier Input"
     
    ' Envoie sous Excel dans Input'
     
     DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel97, tb0, _
    "\\Umilp-p2.cdm.cm-cic.fr\cic-ctrlint$\Controle_des_resultats\Rapprochement_de_resultat\Reporting_" & datinput & "\Report_mensuel\Input\ROCPTA CIC"
     
     
     
    End Function

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut
    Bonjour,

    En plaçant le curseur sur une méthode ou une propriété puis en appuyant sur F1, cela affiche l'aide correspondante. Pour la méthode TransferText de l'objet Docmd, l'aide nous indique :

    Citation Envoyé par Aide d'Access
    La méthode TransferText exécute l'action TransférerTexte dans Visual Basic.
    expression.TransferText(TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage)

    expression Variable représentant un objet DoCmd.
    En gros l'action TransférerTexte d'Access permet, dans ton cas (on le voit grâce au premier paramètre acImportDelim), d'importer un fichier CSV dans une table qui est passée en 3ème argument. Il te faut donc rajouter les 3 champs (dans le même ordre, voir lien vers le site de Microsoft) dans chacune des tables :
    • "Base 10260"
    • "Base 10117"
    • "Base 10002"
    • "Base 10115"
    • "Base TRESO"
    • "Base TAUX"
    • etc...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Par défaut
    Citation Envoyé par paidge Voir le message
    Bonjour,

    En plaçant le curseur sur une méthode ou une propriété puis en appuyant sur F1, cela affiche l'aide correspondante. Pour la méthode TransferText de l'objet Docmd, l'aide nous indique :



    En gros l'action TransférerTexte d'Access permet, dans ton cas (on le voit grâce au premier paramètre acImportDelim), d'importer un fichier CSV dans une table qui est passée en 3ème argument. Il te faut donc rajouter les 3 champs (dans le même ordre, voir lien vers le site de Microsoft) dans chacune des tables :
    • "Base 10260"
    • "Base 10117"
    • "Base 10002"
    • "Base 10115"
    • "Base TRESO"
    • "Base TAUX"
    • etc...


    Bonjour,

    Merci pour votre réponse. en effet j'ai dejé essayé d'ajouter les 3 nouveaux champs dans mes tables . Mais aprés excution de la macro les 3 champs ajoutés sont supprimés et mes tables sont toujours comme avant.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu pensé à refaire le filtre d'importation ROCPTA ?

    Philippe

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Bonjour

    As-tu pensé à refaire le filtre d'importation ROCPTA ?

    Philippe
    Honnetement je ne sais pas comment faire ou refaire le filtre d'importation ?

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Par défaut
    Citation Envoyé par Abdelbasset BEL Voir le message
    Honnetement je ne sais pas comment faire ou refaire le filtre d'importation ?
    1. Tu vas dans le ruban, sur l'onglet "Données externes", tu cliques sur "Importations enregistrées". Tu supprimes l'importation nomméée ROCPTA puis tu fermes la boîte de dialogue.
    2. Ensuite, toujours dans le ruban, sur l'onglet "Données externes", tu cliques sur fichier texte. Tu sélectionnes "Importer les données sources dans une nouvelle table de la base de données active", tu choisis ton fichier CSV en cliquant sur parcourir puis tu suis les étapes.
    3. A la fin, n'oublies pas de nommer ton importation ROCPTA

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Par défaut
    Merci pour vos reponses. le pbm est enfin résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment ajouter dynamiquement dans champs dans une vue?
    Par AmFaye2 dans le forum Odoo (ex-OpenERP)
    Réponses: 1
    Dernier message: 12/09/2013, 17h27
  2. Comment ajouter de nouveaux champs dans Outlook Contacts
    Par andrepatry dans le forum Outlook
    Réponses: 0
    Dernier message: 07/09/2010, 17h33
  3. Comment importer des matrices Excel dans une base Access?
    Par BobDesign dans le forum VBA Access
    Réponses: 1
    Dernier message: 18/02/2010, 17h09
  4. Réponses: 1
    Dernier message: 27/07/2009, 14h29
  5. Réponses: 15
    Dernier message: 07/11/2007, 14h08

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