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 :

Travailler sur un enregistrement


Sujet :

VBA Access

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut Travailler sur un enregistrement
    Bonjour a tous.
    Je vous soumet un problème sur lequel je m’arrache les cheveux…


    Je suis en train de créer une base access que plusieurs utilisateurs utiliseront EN MEME temps.
    Les données sont donc sur un serveur dans une base unique, les utilisateurs n’ayant sur leur machine que les formulaires.

    Ces utilisateurs saisiront des données sur une même table.

    Lors de l’ouverture du formulaire de saisie, une clé de type Entier Long est calculé, clé qui est immédiatement injecté dans la table avec tous les autres champs de cette base vide…

    Mon soucis est que je veux aussi réserver l’enregistrement de la table sur lequel l’utilisateur travaille pour ensuite créer un record set sur lequel je peux travailler….

    Par exemple, j’ouvre le formulaire, cela me calcule ID=10, et injecte dans la base de données une requête SQL du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert into MaTable (ID, champs1, champ2, …) Values (10, null, null, …)
    Cet enregistrement sera a la position XY de ma table.
    Comment récupérer l’enregistrement XY pour que ensuite, chaque utilisateur puisse travailler sur son enregistrement, même si 4 utilisateurs ait crées des enregistrement XY+1, XY+2, …

    L’interet est que des qu’un utilisateur insere une valeurs a « Champs X », la table soit mise a jour automatiquement…

    Me comprenez vous ?

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 346
    Points : 23 809
    Points
    23 809
    Par défaut
    Tu peux continuer à t'arracher les cheveux ou utiliser Access et ses méchanismes de contrôle d'accès intégrés.

    En faisant un formulaire lié classique plutôt qu'en utilisant du SQL, Access gère lui-même les verrouillages nécessaires. Il suffit d'aller dans Outils/Option/Avancé/Vérouillage par défaut/Enregistrement modifié.
    Access va vérouiller l'enregistrement en cours de saisie empéchant que plusieurs personnes le modifie en même temps.

    A+

  3. #3
    Membre régulier
    Inscrit en
    Août 2006
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 73
    Points : 79
    Points
    79
    Par défaut
    Bonjour,

    Je ne comprend pas pourquoi tu insères un enregistrement vide ?

    Personnellement, sur ce type de bases multi-utilisateurs, je fonctionne de la manière suivante :

    - L'utilisateur entre ses données dans le formulaire et clique sur un bouton "Valider" pour enregistrer.

    - Ce bouton déclanche des procédures de contrôle de validité. Je n'accède pas à la base tant que toutes les données ne sont pas renseignées et qu'elles ne sont pas conformes à la structure de la base.

    - Si c'est Ok, je calcule mon identifiant à partir d'une table compteur et j'insère mon enregistrement.

    NB : je n'utilise pas SQL, mais DAO et je fonctionne en transactionnel parce-que souvent il n'y a pas qu'une table à mettre à jour.

    Cordialement

    Sergio

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Merci.

    je ne peux pas modifier la base...

    donc il faut que je bosse en utilisant les me.requery...

    Lors de l'ouverture de mon formulaire, je calcule la clé et je l'affecte a mon 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
     
    Private Sub Form_Load()
     
        'Définition du records set
        Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
        Dim sSQL As String
        ' Ouverture de la base de données
        Set db = CurrentDb
        sSQL = "Select * From Exploitants"
        ' Ouverture du recordset
        Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
     
        'Nouvel enregistrement
        DoCmd.GoToRecord , , acNewRec
        'insertion dans la table exploitant du code Exploitant
        Me.CodeExploitant = Module1.CalculCodeExploitant
        'Mise a jour du champ CodeExploitant dans la table...
        Forms![SaisieExploitants].CodeExploitant.Requery
     
     
    End Sub
    Le soucis est qu'aucun enregistrement ne s'insere en auto dans la table exploitants :'(

    a l'aide

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Up

    Quelqu'un peux m'aider svp?

    Au secoursssss !!!!!!!!!!!!!!!!

Discussions similaires

  1. Comment savoir si on travail sur un nouvel enregistrement
    Par tactac29 dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/01/2009, 18h11
  2. Travailler sur 1 classeur actif non enregistré
    Par pat_che dans le forum VBA Access
    Réponses: 1
    Dernier message: 22/11/2007, 10h38
  3. Travailler sur des données qui doivent être triées
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 19/07/2003, 17h13

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