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

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Remplir un champs d'un formulaire Access à partir d'un fichier Excel
    Bonjour à tous
    Je me permets de vous solliciter en espérant que vous puissiez m'aider. Je suis assez nouveau en VBA, et j'aimerai pouvoir remplir un champs de mon formulaire Access (nommé PABX_type), grâce à une donnée contenue dans un fichier Excel (située en cellule A12). Le fichier excel est situé dans un dossier Mail, et j'aimerai qu'une fois la donnée exportée dans mon champs, enregistrer le fichier Excel dans un dossier nommé Sharepoint. Cependant, après 2 jours de recherches passés à décortiquer chaque site, je n'arrive toujours pas à réaliser cette action convenablement.

    Voici mon tout dernier code

    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
    26
    27
    28
    29
    30
     
     
    Public Sub getPABX_type()
     
    Dim myRec As DAO.Recordset
    Dim xl As Excel.Application
    Dim xlsht As Excel.Worksheet
    Dim xlWrkBk As Excel.Workbook
     
     
    Set xl = CreateObject("Excel.Applicatio n")
    Set xlWrkBk = GetObject("D:\Users\abouzid\Do cuments\Automation\Mail\Site1\ AG06W01A CHATEAUNEUF SUR LOIRE.XLS")
    Set xlsht = xlWrkBk.Worksheets(1)
     
    Set myRec = CurrentDb.OpenRecordset("T_Con figuration")
     
    If PABX_Type = "" Then 'Change la valeur du champs PABX_Type uniquement pour les sites où cette valeur n'a pas été renseignée
    myRec.AddNew
    myRec.Fields("PABX_Type") = xlsht.cells(12, "A")
    myRec.Update
    xl.Save ("D:\Users\abouzid\Documents\A utomation\Sharepoint\Site1\AG0 6W01A CHATEAUNEUF SUR LOIRE.XLS")
     
    Else
    xl.Save ("D:\Users\abouzid\Documents\A utomation\Sharepoint\Site1\AG0 6W01A CHATEAUNEUF SUR LOIRE.XLS")
    xl.Delete ("D:\Users\abouzid\Documents\A utomation\Mail\Site1\AG06W01A CHATEAUNEUF SUR LOIRE.XLS")
    End If
     
    Set xl = Nothing
     
    End Sub
    Merci infiniment pour votre aide, j'ai le sentiment d'avoir épuisé toutes mes ressources, et de n'avoir aucune autre piste à explorer...

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 623
    Points : 31 047
    Points
    31 047
    Par défaut
    SAlut,

    sur quelle partie ca bloque ? la donnée de ta cellule A12 ou la partie sauvegarde ?

    le xl.delete, c'est une invention ?
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    SAlut,

    sur quelle partie ca bloque ? la donnée de ta cellule A12 ou la partie sauvegarde ?

    le xl.delete, c'est une invention ?
    Salut

    Merci pour ta réponse. J'avais jusqu'alors une erreur qui stipulait "odbc call failed", liée je pense au Rec.Update. Par hasard je l'ai supprimé et une nouvelle erreur a alors fait son apparition: Run time error 1004 : "Save method of Application class failed" qui pointe sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xl.Save ("D:\Users\abouzid\Documents\Automation\Sharepoint\Site1\AG06W01A CHATEAUNEUF SUR LOIRE.XLS")
    .

    Pour le delete, je souhaitais supprimer le fichier une fois l'info renseignée sur le champs, mais ça doit surement être maladroit.

    Veuillez pardonner ma maladresse et mon manque de "professionnalisme" ^^

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA, C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    13 623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Canada

    Informations professionnelles :
    Activité : Developpeur VBA, C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 13 623
    Points : 31 047
    Points
    31 047
    Par défaut
    Save fonctionne sur un workbook,
    delete n'existe pas directement, mais tu peux passer par un
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Save fonctionne sur un workbook,
    delete n'existe pas directement, mais tu peux passer par un
    J'ai essayé le save sur mon workbook au lieu de l'objet xl, ça me retourne l'erreur "Wrong number of arguments or invalid property assignment"

    Pour ce qui est du delete, j'abandonne la possibilité de supprimer le fichier pour le moment, je préfère m'assurer que le parsing fonctionne.

    Merci encore @Jean-Philippe André

  6. #6
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mai 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mai 2019
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Après avoir passé une journée supplémentaire sans trouver de solution, j'ai décidé de simplifier le code au cas où certains éléments interagissaient "mal" avec le code
    Cependant, je n'obtiens pas de résultat concluant. En fait, le plus gros problème se situe au niveau du Update: Ayant lié mes requêtes et mes formulaires à des tables distantes (sur serveur SQL) via une connection ODBC, c'est cette dernière instruction qui pose problème et qui renvoi l'erreur "ODBC call failed"
    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
    Public Function getPABX_type() As String
     
        Dim myRec As DAO.Recordset
        Dim xl As Excel.Application
        Dim xlsht As Excel.worksheet
        Dim xlWrkBk As Excel.workbook
     
     
     
        Set xl = CreateObject("Excel.Application")
        Set xlWrkBk = GetObject("D:\Users\abouzid\Documents\Automation\Mail\Site1\AG06W01A CHATEAUNEUF SUR LOIRE.XLS")
        Set xlsht = xlWrkBk.Worksheets(1)
     
     
        Set myRec = CurrentDb.OpenRecordset("T_Configuration", dbOpenDynaset, dbSeeChanges)
     
     
        myRec.AddNew
        myRec.Fields("PABX_type") = xlsht.cells(12, "A")
        myRec.Update
     
     
    End Function
    J'ai également testé le même code dans une copie de ma base qui contient des tables locales, mais une autre erreur pop et m'indique que je dois "enter a value in the "T_Configuration.ID_XYZ" field"

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/11/2017, 19h47
  2. [AC-2007] Implémentation des tables sous Access à partir d'un fichier EXCEL
    Par SOFIC dans le forum VBA Access
    Réponses: 1
    Dernier message: 14/06/2015, 08h10
  3. Réponses: 3
    Dernier message: 13/08/2014, 18h14
  4. Remplir un formulaire access à partir d'excel
    Par temga dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/10/2009, 13h16
  5. Réponses: 4
    Dernier message: 31/07/2006, 09h13

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