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 :

Historique Accès à une base de données...


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut Historique Accès à une base de données...
    Bonjour à tous,

    Je viens faire appel à vous pour une adaptation d'un code VBA que j'utilise sur Excel mais qui cette fois-ci m'intéresserait pour Access.

    Le code est le 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Option Explicit
    Private Const ThePath As String = "C:\XXX\Spy.txt" ' <<<<<<<<<<<<< ADAPTATION
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpBuffer As String, _
    nSize As Long) As Long
     
    'Spy Opening/Closing
    Private Sub Workbook_Open()
    Dim lpBuff As String * 25
    Dim ret As Long
    Dim UserName As String, Spy As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
     
     
    Spy = "Open on : " & vbTab & Format(Now, "DD/MM/YYYY HH:MM:SS") & _
    vbTab & "Computer Log-In User Name : " & vbTab & UserName & vbTab & _
    "Application User Name : " & vbTab & Application.UserName
     
    Open ThePath For Append As #1
    Print #1, Spy
    Close
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim lpBuff As String * 25
    Dim ret As Long
    Dim UserName As String, Spy As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
     
    Spy = "Close on : " & vbTab & Format(Now, "DD/MM/YYYY HH:MM:SS") & _
    vbTab & "Computer Log-In User Name : " & vbTab & UserName & vbTab & _
    "Application User Name : " & vbTab & Application.UserName
     
    Open ThePath For Append As #1
    Print #1, Spy
    Close
    End Sub
    Vous pouvez le tester, il sert à incrémenter un fichier txt avec les données d'ouverture et de fermeture d'un fichier donné en se mettant dans un module VBA.

    Maintenant ce que j'aimerais faire c'est pouvoir faire la même chose dans Access.
    Mais comment adapter ce code, le mettre dans une Module,...?
    Ce qui est important est le et le ...comment faire pour Access.

    Merci d'avance à tous.
    @+

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    ...permettez moi de faire un tit up, j'espère que vous m'en voudrez pas...

  3. #3
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    slt,

    ben il faut un formulaire à l'ouverture que tu laisses ouvert jusqu'à la fermeture de l'application

    et tu mets ton code dans form_open et form_close

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Salut Arkham46,

    Je pensais avoir compris ton odée et j'ai donc mis :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Option Explicit
    Private Const ThePath As String = "C:\Spy.txt" ' <<<<<<<<<<<<< ADAPTATION
    Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _
    (ByVal lpBuffer As String, _
    nSize As Long) As Long
     
    Private Sub Form_Open(Cancel As Integer)
    Dim lpBuff As String * 25
    Dim ret As Long
    Dim UserName As String, Spy As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
     
     
    Spy = "Open on : " & vbTab & Format(Now, "DD/MM/YYYY HH:MM:SS") & _
    vbTab & "Computer Log-In User Name : " & vbTab & UserName & vbTab & _
    "Application User Name : " & vbTab & Application.UserName
     
    Open ThePath For Append As #1
    Print #1, Spy
    Close
    End Sub
     
    Private Sub Form_Close(Cancel As Integer)
    Dim lpBuff As String * 25
    Dim ret As Long
    Dim UserName As String, Spy As String
    ret = GetUserName(lpBuff, 25)
    UserName = Left(lpBuff, InStr(lpBuff, Chr(0)) - 1)
     
    Spy = "Close on : " & vbTab & Format(Now, "DD/MM/YYYY HH:MM:SS") & _
    vbTab & "Computer Log-In User Name : " & vbTab & UserName & vbTab & _
    "Application User Name : " & vbTab & Application.UserName
     
    Open ThePath For Append As #1
    Print #1, Spy
    Close
    End Sub
    Malheureusement il me renvoit une erreur :
    "L'expression Sur ouverture entrée comme paramètre de la propriété de type évènement est à l'origine d'une erreur La déclaration de procédure d'évènement ne correspond pas à la description de l'évènement du même nom."

    Je suis sous Access 97.

    Merci d'avance.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Bonjour à tous.

    Permettez-moi de faire une tite relance sur ce sujet, je suis évidemment preneur de toutes autres idées d'espions qui me permettrait de suivre les ouvertures et fermetures d'une BdD.

    Bon Après-midi.

  6. #6
    Responsable Access

    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 524
    Points
    14 524
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    La déclaration de procédure d'évènement ne correspond pas à la description de l'évènement du même nom.
    le message est clair : tu as une déclaration de procédure d'évènement qui ne correspond pas à la description de l'évènement du même nom...

    Ne crée pas toi même ces déclarations par copier-coller, laisse access les générer.

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'ai déjà fait ce genre de chose.

    Tu ouvres un formulaire lors de l'ouverture de la base de données. Ce formulaire crée un nouvel enregistrement dans une table avec par défaut le nom de l'utilisateur, la date courante sauver l'enregistrement en cours.

    Ensuite, ton formulaire passe la main à un autre.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    J'ai retrouvé le code

    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
     
    Private Sub Form_Open(Cancel As Integer)
     
        Dim UserId As String
     
     
        DoCmd.GoToRecord , , acNewRec
     
        UserId = Environ("username") 'assigne le user name à la variable UserId
       'MsgBox UserId
     
        GetUserName = UserId
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
     
     
        DoCmd.Close
     
        stDocName = "QR"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    End Sub
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  9. #9
    Membre éprouvé
    Avatar de Maître Kenobi
    Homme Profil pro
    Technicien Gestion de Données Techniques sous SAP
    Inscrit en
    Juillet 2002
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Gestion de Données Techniques sous SAP
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 672
    Points : 1 219
    Points
    1 219
    Par défaut
    Citation Envoyé par boulap
    Bonjour à tous.

    Permettez-moi de faire une tite relance sur ce sujet, je suis évidemment preneur de toutes autres idées d'espions qui me permettrait de suivre les ouvertures et fermetures d'une BdD.

    Bon Après-midi.
    salut,
    lis bien les règles stp, les UP = relances = interdit sur ce forum.
    Merci de ta compréhension.
    Que la Force soit avec vous !
    En autoformation : Linux, Python, Bases de données open source, Unity 3D, GODOT, ...

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    ok merci Heureux-oli, mais dois-je créer moi-même la table, comment la nommer, comment nommer le forumlaire...

    J'ai appeler mon forumlaire Form, mais il m'indique une erreur de compilation, Variable non définie sur "GetUserName ="

    Excusez moi pour le tit up précédent mais n'ayant pas eu de news depuis 1 mois je me suis dit...

    Bonne journée.

  11. #11
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 087
    Points : 42 926
    Points
    42 926
    Par défaut
    Tu crée un table avec trois champs : un numéroauto; un avec le username et le dernier avec la date.

    Tu crée un formulaire basé sur la table.

    A l'ouverture de la DB, tu ouvre ce formulaire qui en ouvre immédiatement un autre.

    Il est possible que Environ ne soit pas pris en compte alors, il faut utiliser le code de cafeine qui se trouve dans son tuto
    http://<br /> http://cafeine.develo.../update/<br />
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 310
    Points : 139
    Points
    139
    Par défaut
    Bonjour à tous,

    Avec la préciseuse aide de Heureux-oli, j'ai avancé et donc je me retrouve sur ce code :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Option Compare Database
    Option Explicit
    '''""""""""""""""""""""""""""""""""""""""""""""""""""'''
    '
    '                    API advapi32.dll
    '
    '''""""""""""""""""""""""""""""""""""""""""""""""""""'''
    ' récupérer le login Windows
    Private Declare Function apiGetUserName Lib "advapi32.dll" Alias _
            "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
    Private Function GetLogin() As String
    ' Retourne le nom d'usager fourni lors du branchement au réseau.
    Dim lngLen As Long, lngX As Long
    Dim strUserName As String
    strUserName = String$(254, 0)
    lngLen = 255
    lngX = apiGetUserName(strUserName, lngLen)
    If lngX <> 0 Then
        GetLogin = Left$(strUserName, lngLen - 1)
    Else
        GetLogin = ""
    End If
    End Function
    Private Sub Form_Open(Cancel As Integer)
        Dim UserId As String
        DoCmd.GoToRecord , , acNewRec
        MsgBox GetLogin()
        UserId = GetLogin()  'assigne le user name à la variable UserId
        MsgBox UserId
        GetUserName = UserId
        Dim stDocName As String
        Dim stLinkCriteria As String
        DoCmd.Close
        stDocName = "QR"
        DoCmd.OpenForm stDocName, , , stLinkCriteria
    End Sub
    Le truc maintenant est que j'ai une erreur de compilation : projet ou bibliothèque introuvable sur le XP Pro / Access 97

    Merci pour votre aide...

  13. #13
    Membre éprouvé
    Avatar de Maître Kenobi
    Homme Profil pro
    Technicien Gestion de Données Techniques sous SAP
    Inscrit en
    Juillet 2002
    Messages
    672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Gestion de Données Techniques sous SAP
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2002
    Messages : 672
    Points : 1 219
    Points
    1 219
    Par défaut
    il me semble que c'est un problème de références, mais je ne sais plus lequel
    Que la Force soit avec vous !
    En autoformation : Linux, Python, Bases de données open source, Unity 3D, GODOT, ...

Discussions similaires

  1. [C#] Accés à une base de données AS400
    Par Green Hornet dans le forum Accès aux données
    Réponses: 8
    Dernier message: 14/11/2011, 11h26
  2. Réponses: 4
    Dernier message: 15/01/2005, 16h05
  3. Accès à une base de données ACCESS
    Par Invité dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/01/2005, 08h23
  4. [JDBC]acces à une base de données mysql
    Par sehaba dans le forum JDBC
    Réponses: 13
    Dernier message: 07/12/2004, 00h39
  5. Réponses: 2
    Dernier message: 01/10/2004, 15h13

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