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 :

Etat et requête multi-utilisateurs [AC-2010]


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Etat et requête multi-utilisateurs
    Bonjour à tous

    je conçois une base de données qui va servir à plusieurs utilisateurs en même temps, je sais que Acces le gère mais il se trouve que je viens de rencontrer un problème inattendu et pourtant évident, je vous explique.

    J'ai un formulaire qui permet de rechercher des informations en fonction du nom d'une salle, donc j'écris le nom de ma salle, je clique sur rechercher et ça m'ouvre un formulaire contenant un élément "controle de navigation" qui contient X états qui vont m'afficher toutes les informations lié à cette salle.

    Le problème c'est que si deux personnes font une recherche sur une salle différentes en même temps alors les informations affichées seront celle de la dernière recherche et ça sur les deux recherches.

    Ça c'est mon problème actuelle.

    Ma façon de faire est mauvaise mais je ne sais pas faire autrement, je vous explique :

    Donc mon formulaire la où j'entre le nom de la salle contient juste le petit code suivant :

    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
     
    Dim rst As DAO.Recordset
        Dim strLocal As String
        Dim idlocal As Integer
     
        If Texte0.Value <> "" And Not IsEmpty(Texte0.Value) Then
            strLocal = "SELECT id_local FROM Local WHERE local = '" & Texte0.Value & "'"
            Set rst = CurrentDb.OpenRecordset(strLocal, dbOpenForwardOnly, dbReadOnly)
            If Not rst.EOF Then
                idlocal = rst.Fields("id_local")
                DoCmd.OpenForm "Informations du local", acNormal, "", "", acFormPropertySettings, acWindowNormal, idlocal
            Else
                MsgBox "Local introuvable !"
            End If
        Else
            MsgBox "Le champ doit être rempli"
        End If
    donc on vois que je fais un OpenForm qui m'ouvre le formulaire contenant toutes les informations, dans ce formulaire j'ai juste l'élément "Controle de navigation" auquel j'ai lié tous les états qui affiche les différentes informations, bien sur les états sont liés à des requêtes, le problème c'est que chaque requête est mise à jour au moment de la recherche et donc c'est la dernière recherche qui va s'afficher pour tout le monde.

    Je vous mets le code qui mets à jour, on sais jamais ça peux vous servir pour m'aider qui sais :
    Information du local :
    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
     
    Private Sub Form_Open(Cancel As Integer)
        Dim strSQL As String
        Dim rst As DAO.Recordset
        If OpenArgs <> 0 And Not IsEmpty(OpenArgs) Then
            strSQL = "SELECT local,nomination FROM Local WHERE id_local = " & OpenArgs
            Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenForwardOnly, dbReadOnly)
            Me.Étiquette4.Caption = "Informations du local " & rst.Fields("local")
            Me.Étiquette49.Caption = Replace(rst.Fields("nomination"), ";", ", ")
            Call updateEquipement(OpenArgs)
            Call updateActivite(OpenArgs)
            Call updateConsigne(OpenArgs)
            Call updateEPI(OpenArgs)
            Call updateProcedure(OpenArgs)
            Call updateRisque(OpenArgs)
            Call updateFormation(OpenArgs)
        Else
            MsgBox "Une erreur est survenue !"
        End If
        Me.SousFormulaireNavigation.Requery
    End Sub
     
    Public Function updateEquipement(idlocal As Integer)
        Dim strSQL As String
        strSQL = "SELECT id_equip, libelle FROM Equipement WHERE id_equip in (SELECT id_equipement FROM Equipement_local WHERE id_local = " & idlocal & ")"
        CurrentDb.QueryDefs("Liste des équipements").SQL = strSQL
    End Function
    Toutes les fonctions update sont les mêmes (avec très peu de différences) donc je ne vous les mets pas toutes.

    Je pense qu'ici, je viens de vous exposer tout mon problème.

    Ce que je veux exactement c'est que quand j'écris le nom de ma salle et que je clic sur recherche ça m'affiche toute les informations que je veux proprement, c'est pour ça que j'ai utiliser les états et le "controle de navigation", sinon j'aurais très bien pu tous mettre dans des zone de textes et ça aurais fonctionné mais malheureusement cette méthode est franchement laide.

    Je me tourne vers vous pour savoir si vous avez une solution à mon problème, je suis ouvert à toutes proposition qui pourrais me dépanner, je me débrouille en VBA mais je ne suis pas un expert donc n'hésitez pas à m'expliquer votre code si vous m'en laissez :p

    PS : Une des solutions auquel j'avais pensé serait d'injecter ma requête directement dans les onglets du "controle de navigation" mais d'après mes recherches ce n'est pas possible

    Merci de m'avoir lut et de votre aide le cas échéant

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    si je comprend bien une appli access est sur le réseau et plusieurs personnes lance cette appli ?

    Les utilisateur n'ont donc pas un front office Access sur leur poste qui utilise un back office Access sur le réseau pour le partage des données ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2017
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Effectivement, j'ai vue qu'on pouvait avoir un front office en local donc mon problème ne se pose plus vue que mes requetes sont en local

    merci de ta réponse !

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

Discussions similaires

  1. Requêtes multi-base
    Par nicolchr dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 12/11/2014, 11h50
  2. Requête multi-base
    Par Vituret dans le forum Débuter
    Réponses: 1
    Dernier message: 04/04/2005, 16h41
  3. base données avec java mono et multi utilisateurs
    Par Garion dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 03/12/2004, 09h20
  4. Accés multi utilisateurs avec fstab
    Par Sun3clipse dans le forum Administration système
    Réponses: 2
    Dernier message: 26/08/2004, 15h49
  5. Procédure stockée et multi utilisateurs
    Par Bruno34 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/04/2003, 15h32

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