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 :

Erreur 3251: Opération non autorisé pr ce type d'objet


Sujet :

Access

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut Erreur 3251: Opération non autorisé pr ce type d'objet
    Bonsoir,

    Suite au découpage de ma BD en 2 avec une partie données et une partie application, à chaque fois que je fais appel à une procédure contenant de la DAO j'ai cette erreur. Il ne reconnait plus les tables j'ai l'impression.
    Pour découper ma BD j'ai utiliser l'outil fractionner d'access.
    Comment pt-on résoudre ce problème?
    Merci de votre aide.

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonsoir,

    Citation Envoyé par Ragnarok85
    à chaque fois que je fais appel à une procédure contenant de la DAO j'ai cette erreur
    Quels appels ? (Du code, des extraits,... nous ne sommes pas devant ton écran qui plus est ne savons pas comment tu codes...)

    Argy

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Excusez-moi du manque de clarté.

    Voici un exemple de code qui ne fonctionne plus:
    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
    Sub AjoutCode_Unite()
    Dim oRst As DAO.Recordset
    Dim oDb As DAO.Database
    Set oDb = CurrentDb
    Dim Resultat As String
    If (IsNull(Forms!frmEntree!txtUnite) = False) And (IsNull(Forms!frmEntree!txtEquivalence) = True) Then
        Message = MsgBox("Veuillez compléter le champ Equivalence", vbInformation, "Erreur")
    End If
    For i = 1 To Forms!frmEntree!txtUnite.ListCount
        If Forms!frmEntree!txtUnite = Forms!frmEntree!txtUnite.Column(0, i - 1) Then
            Resultat = "Existant"
        End If
    Next
    Set oRst = oDb.OpenRecordset("tblUnite")
    oRst.Index = "Primarykey"
    Quand j'exécute pas à pas, oRst = Nothing, et ceci pr l'ensemble des procédures utilisant des recordset en DAO.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Septembre 2006
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 30
    Points : 27
    Points
    27
    Par défaut
    Si je ne me trompe pas tu ne peux pas utiliser "index" sur des tables liée.Ensuite verifie dans gestionnaires de tables lié vers ou pointes tes liens de tables.

  5. #5
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Est-ce que ton erreur est rencontrée lorsque cette condition est vraie ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If (IsNull(Forms!frmEntree!txtUnite) = False) And (IsNull(Forms!frmEntree!txtEquivalence) = True) Then
        Message = MsgBox("Veuillez compléter le champ Equivalence", vbInformation, "Erreur")
    End If
    Ce code fonctionnait-il avant que tu scindes ?
    Pour moi, ton bloc If/End If est générateur d'erreurs puisque tu ne sorts pas si cette condition est vraie...

    De plus, la propriété Index est mal employée, ici...

    Argy

  6. #6
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Je ne sais pas pr index, mais le problème est le même pour les actions addnew, edit... simplement pr lire les enregistrement en utilisant la DAO.
    Sinon j'ai verifié mes liens, pas de problème, de plus j'utilise des requêtes ayant pr source mes tables, et il n'y a aucun problème.

  7. #7
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Mon bloc if/end if ne pose pas de problème.
    Par contre tu as raison pr l'index, j'avais fais un copier/coller et j'ai oublié de supprimer cette partie du code.
    Désormais cela fonctionne, je vais vérifier l'ensemble de mon code, car suite à la division de ma BD j'ai pls erreur ds mon code DAO que je n'avais pas avant.
    Merci de votre aide.

  8. #8
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Le problème vient bien de oRst.Index, il ne gère plus ce code or j'en ai besoin pr éviter d'avoir des doublons.
    Comment je peux résoudre le problème des doublons autrement ou utiliser Index avec une BD scindé?

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Je cherche quelqu'un qui aurait rencontré le même problème lorqu'il a fractionné sa base de donnée, et qui aurait résolu le problème.
    Merci de votre aide

  10. #10
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    J'ai résolu le problème de l'index par le calcul des clés primaires en utilisant une double boucle qui vérifie pr chaque valeur si elle est déjà attribué.

  11. #11
    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
    Pour utiliser les index et la méthode Seek dans un recordset il faut que celui-ci soit ouvert en mode OpenTable, ce qui est incompatible avec des tables liées.

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

Discussions similaires

  1. [AC-2007] Opération non autorisée pour ce type d'objet
    Par mcryco dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/02/2014, 16h25
  2. [AC-2003] [VBA] Opération non autorisée pour ce type d'objet.
    Par ludobalu dans le forum VBA Access
    Réponses: 7
    Dernier message: 31/10/2012, 08h26
  3. erreur 3251 opération non autorisé pour ce type d'objet
    Par alexkickstand dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/02/2008, 21h39
  4. Erreur 3251: opération non autorisée..
    Par gbzmt dans le forum VBA Access
    Réponses: 5
    Dernier message: 21/02/2008, 22h01
  5. erreur d'exécution '3251' ? opération non autorisée
    Par ttfme dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/01/2008, 09h21

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