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 :

Problème avec tables liées et openrecordset


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Resp. Ordonnancement
    Inscrit en
    Juillet 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Resp. Ordonnancement
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2013
    Messages : 14
    Points : 13
    Points
    13
    Par défaut Problème avec tables liées et openrecordset
    Bonjour à toutes et à tous!

    J'ai un petit souci avec Access qui m'empêche de finaliser mon projet. Je m'explique.
    Pour ouvrir un de mes formulaires, j'exécute une requête SQL en passant par un morceau de code qui: "Set rs=currentDb.OpenRecordset (strsql)".
    Lors du développement, aucun souci. Sauf que pour finaliser le projet, j'ai fractionné ma base en deux (table d'un coté et le reste de l'autre). Du coup maintenant, j'ai des tables liées et VBA bloque sur ce morceau de code en m'indiquant:
    Erreur d'exécution '3048';
    Impossible d'ouvrir plus de bases de données.
    Voici le code qui s'exécute à l'ouverture du formulaire:

    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
    Public Sub leslignes()
    Dim rs As DAO.Recordset
    Dim strsql As String
    Dim i As Integer
    'selction des opérations en fonction du journal
    strsql = "SELECT T_annuaireADM.ID_contact_ADM, T_annuaireADM.[A quitté entreprise], T_annuaireADM.[Affectation service ADM] FROM T_annuaireADM WHERE (((T_annuaireADM.[A quitté entreprise])=False)AND(T_annuaireADM.[Affectation service ADM]=""3""));"
    Set rs = CurrentDb.OpenRecordset(strsql)
     'sinon on parcout pour recupérer les ID
        rs.MoveFirst
        rs.Move 6 * lapage
        For i = 1 To 6
        If Not rs.EOF Then
        tblligne(i) = rs(0)
        rs.MoveNext
        Else
        tblligne(i) = 0
        End If
        Next i
    'End If
    rs.Close
    Set rs = Nothing
    End Sub
    J'ai bien essayé de chercher sur internet des solutions cependant, je n'ai pas trouvé. J'espère avoir été assez clair dans mes explications.

    Pouvez-vous m'aider à résoudre ce souci?

    Cordialement,

  2. #2
    Membre à l'essai
    Homme Profil pro
    Resp. Ordonnancement
    Inscrit en
    Juillet 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Resp. Ordonnancement
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2013
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    Re-bonjour à toutes et à tous,

    Après être passé un peu sur des forums anglo-saxons, j'ai pu comprendre que cela pouvait venir du fait que le formulaire appelé contenait trop d'objets (formulaires, sous-formulaires...). Ce qui s'est révélé être exact! J'ai supprimé 2 sous-formulaires et le code fonctionne correctement.
    Sauf que ça ne m'arrange pas d'avoir supprimé ces 2 sous-formulaires.

    Maintenant que le sujet est un peu plus ciblé (je vais dire ça comme ça) avez-vous des solutions, des suggestions à ce sujet?

    J'ai essayé sous Access 2010 et le résultat est le même. Peut être au niveau des références VBA (j'ai cru lire ça sur certains forums)???

    Cordialement,

  3. #3
    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
    CurrentDb crée un nouvel objet Database à chaque appel. Il ne s'agit pas d'une propriété mais d'une méthode. C'est pour cela que l'on préconise de recourir à un seul objet DAO.Database instancié en début de traitement. L'objet peut être déclaré en entête de module pour voir sa portée étendue.

    Et ensuite, les recordset sont ouverts depuis oDb

    http://warin.developpez.com/access/d...tie_3#L3.3.1.1

Discussions similaires

  1. [Core] Problème de mise à jour avec tables liées
    Par mithrendil dans le forum Hibernate
    Réponses: 11
    Dernier message: 06/07/2012, 15h32
  2. Problème de table liée externe avec ORACLE LOADER
    Par culass dans le forum Import/Export
    Réponses: 1
    Dernier message: 01/06/2011, 18h03
  3. [AC-2003] Problème de lag sur formulaire avec table liée
    Par benjamin002 dans le forum IHM
    Réponses: 0
    Dernier message: 04/02/2010, 09h42
  4. Problème de table liées sous Access 2003
    Par FuRioX dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2006, 12h19
  5. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10

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