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 :

Erreur 3111 sur création ou suppression de table [AC-2002]


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 43
    Points
    43
    Par défaut Erreur 3111 sur création ou suppression de table
    Bonjour,

    Dans une procédure VBA depuis une base de données Access 2002, j'ouvre une autre base de données Access 2002 afin d'y créer une table.

    Mais lors de l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <base>.TableDefs.Append tdfTable
    ...j'obtiens l'erreur suivante :
    Erreur d'exécution '3111':
    Création impossible; pas d'autorisation de modification de la structure de la table ou de la requête '<table>'.
    Idem pour la suppression

    Précisions :
    - J'utilise un fichier de groupe de travail personnalisé
    - L'identifiant employé est administrateur
    - Si j'ouvre la base de données avec cet identifiant, je peux créer, modifier, supprimer des tables.


    Merci pour votre aide.

    waici

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Bonjour,

    Comment est ouvert l'objet Base ? Et l'objet Worskpace ?

    Un exemple de code :

    http://access.developpez.com/sources...#DAOConnectMDW

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    La base est ouverte avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim db As Database
    Set db = OpenDatabase(Base, False, False)

    Par contre si j'essaie de créer un Workspace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim ws As Workspace
    Set ws = CreateWorkspace("ws", User, Pwd)
    j'obtiens une autre erreur :
    Erreur '3028' : Impossible de démarrer votre application. Le fichier d'informations du groupe de travail est absent ou ouvert en mode exclusif par un autre utilisateur.
    Idem si je passe par un DBEngine comme dans l'exemple de la FAQ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim bde As DBEngine
    Set bde = New DBEngine
    bde.SystemDB = "<chemin_fichier_MDW>"
    Set ws = bde.CreateWorkspace("ws", User, Pwd)
    Set db = ws.OpenDatabase(Base, False, False)
    erreur sur bde.CreateWorkspace

    Mon fichier de groupe de travail est utilisé simultanément par plusieurs bases de données, je ne comprends pas pourquoi il serait ouvert en mode exclusif...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Etonnant quand même, en mode debug, une fois passé l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dbe.SystemDB = "<chemin_fichier>"
    , en survolant l'expression dbe.SystemDB avec la souris, la valeur affichée est "system.mdb" alors que mon fichier s'appelle "GDT00003.mdw"

    Normal ou pas ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 47
    Points : 43
    Points
    43
    Par défaut
    Ca y est, j'ai trouvé !

    Il fallait bien utiliser un DBEngine, mais de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim bdeZ As New DBEngine
    Il fallait insérer le New dans la déclaration de variable et non pas avec l'instruction 'Set dbe = New DBEngine'.

    Et là la propriété SystemDB prend bien la valeur que je lui affecte (chemin du MDW perso)

    Nota : J'ai essayé ça car j'avais eu des problèmes en VBA Excel (97-2002) pour me connecter à une base Access avec ADODB, je dois déclarer des "Dim objet As New ADODB.Connection" car cela ne fonctionne pas avec "Dim objet As ADODB.Connection" puis "Set objet = New ADODB.Connection"

    Merci pour le lien vers la FAQ !

    waici

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

Discussions similaires

  1. Erreur LNK1104 sur création de librairie
    Par Florian3112 dans le forum C
    Réponses: 2
    Dernier message: 01/07/2015, 10h44
  2. [LibreOffice][Base de données] Message d'erreur sur Création de table
    Par Malick dans le forum OpenOffice & LibreOffice
    Réponses: 5
    Dernier message: 05/03/2014, 18h58
  3. Erreur 429 sur création
    Par olimpio dans le forum Installation, Déploiement et Sécurité
    Réponses: 1
    Dernier message: 13/09/2008, 02h36
  4. Erreur sur Création de Table
    Par lailai dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/12/2007, 15h59
  5. Erreur 145 sur table mysql
    Par ramses83 dans le forum Requêtes
    Réponses: 1
    Dernier message: 06/09/2007, 21h09

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