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

Access Discussion :

Supprimer les donnée d'un fichier Excel depuis une requête Access


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Employer
    Inscrit en
    Août 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Employer
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 99
    Points : 57
    Points
    57
    Par défaut Supprimer les donnée d'un fichier Excel depuis une requête Access
    Bonjour,

    Pour importé des donnée Excel depuis Access, j'utilise ce code VBA suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DoCmd.SetWarnings False
    DoCmd.OpenQuery "Ma_Requête_Ajouter"
    Après l'importation, je doit vidé les donnée de la feuille1 d'Excel par une requête de suppression, impossible, il affiche "Erreur code 3086".

    J'ai fait une recherche sur cette erreur, résultat :

    Étapes à définir le Query’s unique Records Propriété à Oui:
    Étape 1: Ouvrez la requête de suppression en mode Création.
    Étape 2: Si la feuille de propriétés de la requête n’est pas ouverte, appuyez sur F4 pour l’ouvrir.
    Étape 3: Cliquez sur le concepteur de requêtes pour afficher les propriétés de la requête
    Étape 4: Dans la feuille de propriétés de la requête, vous devez rechercher la propriété Enregistrements uniques et la définir sur Oui.

    J'ai trouver (Enregistrement unique) est j'ai modifier pour Oui, malheureusement l'erreur reste la même et la requête de suppression ne marche pas

    J'ai essayer de faire marcher avec un code que j'ai trouver sur internet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Commande10_Click()
    Dim xlBook As Excel.Workbook
    Dim xlApp As Excel.Application
    Dim xlSheet As Excel.Worksheet
    Dim vtemp As Variant
     
    Set xlApp = CreateObject("Excel.Application")
    Set xlBook = xlApp.Workbooks.Open("D:\Ne pas supprimé\PartagesApplications\BD_Externe\Externe_liste.xlsx")
    Set xlSheet = xlSheet.sheet1
     
    xlSheet.Rows("2:" & Rows.Count).ClearContents
     
    Set xlSheet = xlBook.Worksheets(1)
    End Sub
    Non plus, erreur du début de ligne.

    J'ai vidé directement depuis le fichier Excel, le problème c'est qu'il affiche encore des ligne actifs, si je supprime les lignes, access ne trouve pas les champs utilisé auparavant, il me reste plus le choix que de créer un autres fichier et l'écraser, c'est le moyen que j'ai trouver pour l'instant.

    J'aimerai vider tous les champs d'une feuille spécifique proprement sauf la première ligne avec l'exécution d'une requête VBA.

    Pourquoi supprimer les donnée ?
    C'est une application intermédiaire pour importer des donnée Excel vers une autres base de donnée externe sous Access, j'ai pas besoin d'archivé le contenu.

    Merci.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Le code devrait plutôt être de ce genre:
    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 Commande10_Click()
        Dim xlBook As Excel.Workbook
        Dim xlApp As Excel.Application
        Dim xlSheet As Excel.Worksheet
     
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Open("D:\Ne pas supprimé\PartagesApplications\BD_Externe\Externe_liste.xlsx")
        Set xlSheet = xlBook.Worksheets(1)
     
        xlSheet.Rows("2:" & Rows.Count).ClearContents
     
        xlBook.Close True
        Set xlBook = Nothing
        xlApp.Quit
        Set xlApp = Nothing
    End Sub
    Cordialement.

  3. #3
    Membre du Club
    Homme Profil pro
    Employer
    Inscrit en
    Août 2015
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Employer
    Secteur : Santé

    Informations forums :
    Inscription : Août 2015
    Messages : 99
    Points : 57
    Points
    57
    Par défaut
    Re-Bonjour,

    J'ai essayer votre code et il ne marche pas, est ce que je doit activé quelque chose ?

    Cordialement.

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 239
    Points : 5 610
    Points
    5 610
    Par défaut
    Bonjour,

    Il suffit sans doute d'ajouter en ligne 11 l'instruction xlBook.Save pour sauver le fichier après en avoir effacé les lignes 2 et suivantes.

    Cordialement.

Discussions similaires

  1. [AC-2013] Modifier les données d'un fichier Excel lié à une table Access 2013
    Par morobaboumar dans le forum Access
    Réponses: 3
    Dernier message: 11/04/2020, 22h25
  2. Réponses: 16
    Dernier message: 26/03/2014, 18h21
  3. Réponses: 1
    Dernier message: 17/03/2009, 16h33
  4. Importer les données d'un fichier excel dans une table
    Par dams95190 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 07/12/2007, 10h35
  5. Réponses: 3
    Dernier message: 27/07/2007, 13h06

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