Erreur 424 sous access

Résolu
Bonjour,
J'ai créé un petit code sous access et j'ai une erreur a l'exécution de mon code.
Voici mon code :

Sub salaries()
If salariés.[code départ] > Now() Then <-- erreur est généré ici
salariés.[code collaborateur] = "0"
End If
End Sub

Merci d'avance
Configuration: Windows XP
Internet Explorer 6.0

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. As tu bien ouvert ton recordset "salariés"?
    style: set salariés= currentdb.openrecordset("le nom de ma table")

    Est-ce que la référence à DAO est bien activée (et si oui, se situe-t-elle bien avant celle de AdoDB si celle-ci est aussi activée)?
    1. Non je n'avais pas mis ce code(le code que j'ai posté au dessus était le code que j'ai mis dans ma page)

      DAO = microsoft DAO 3.6 object library et AdoDB = adobe acrobat 7.0 browser control type library 1.0?
      Parske si c sa DAO était bien coché mais pas AdoDB.

      Merci bcp bnb
      1. Bon on va pousser un peu plus loin le developpement...

        Code VBA:
        Public Function Test() as boolean
        dim db as database
        dim rst as recordset

        on error goto Erreur
        set db = currentdb
        set rst = db.openrecordset("salariés")
        with rst
        if not .eof then
        .movefirst
        do until .eof
        If rst![code départ] > Now() Then
        .edit
        rst![code collaborateur] = "0"
        .update
        endif
        .movenext
        loop
        End If

        Test = true

        Sortie:
        On error resume next
        set rst = nothing
        set db = nothing

        Erreur:
        Msgbox err.number & " : " & err.description
        Test = false
        resume Sortie

        End function
      2. @bnbOups j'ai oublié d'insérer "end with" sur la ligne précédent "Test = True"

        Sorry
    2. Merci bnb mais ça ne marche tjs pas!
      En fait je voudrais que ce code soit éxecuter a l'ouverture de ma base de donénes et quand j'ouvre ma base de données c'est un formulaire principal qui s'ouvre comme je le voulais.
      Ensuite, j'ai été dans les propriété du formulaire et j'ai mis "sur chargement" le code que tu m'a mis.c'est bien sa qu'il faut faire?
      Merci
      1. Il faut que je commence le code par : Private Sub Form_Load() et finir le code par : end sub????
        Parce que quand je ne commence pas par Private Sub Form_Load() et fini pas par end sub le code par quand je rééxecute le programme!C'est a dire que dans les propriété du formulaire principal "sur chargement" est vide alors que j'y avais mis le code!!
        Merci d'avance
        1. Ok tu retapes le code dans l'evenement onload de ton formulaire.
          Tu retires le "as boolean" de la fonction et les 2 "test = true/false".
          N'oublie pas le "end with" que j'avais omis dans mon code et tu testes!
      2. J'ai testé est au chargement de ma base j'ai un message d'erreur qui s'affiche :
        3265 : Element non trouvé dans cette collection et quand je click sur ok un autre message d'erreur aparait, 0:!!!
        Mais les salariés dont la date de départ est dépassé sont toujours la!!!
        Merci
        1. SA MARCHE!!!!!!!!!!!!
          Voici mon code :

          Private Sub Form_Load()

          Dim db As Database
          Dim rst As Recordset

          On Error GoTo Erreur
          Set db = CurrentDb
          Set rst = db.OpenRecordset("salariés")
          With rst
          If Not .EOF Then
          .MoveFirst
          Do Until .EOF
          If rst![date départ] < Now() Then
          .Edit
          rst![Code collaborateur] = "0"
          .Update
          End If
          .MoveNext
          Loop
          End If

          End With

          Sortie:
          On Error Resume Next
          Set rst = Nothing
          Set db = Nothing

          Erreur:
          MsgBox Err.Number & " : " & Err.Description
          Resume Sortie

          End Sub

          Cela dit j'ai un petit souci juste a l'ouverture de ma base, j'ai message Microsoft office acces avec marké :0 et quand je click sur ok ma base marche bien derriere!!
          Un grand merci bnb pour ton aide sans toi je n'aurais jamais réussi a faire ce code!
          Merci encore
        2. SA MARCHE!!!!!!!!!!!!
          Voici mon code :

          Private Sub Form_Load()

          Dim db As Database
          Dim rst As Recordset

          On Error GoTo Erreur
          Set db = CurrentDb
          Set rst = db.OpenRecordset("salariés")
          With rst
          If Not .EOF Then
          .MoveFirst
          Do Until .EOF
          If rst![date départ] < Now() Then
          .Edit
          rst![Code collaborateur] = "0"
          .Update
          End If
          .MoveNext
          Loop
          End If

          End With

          Sortie:
          On Error Resume Next
          Set rst = Nothing
          Set db = Nothing

          Erreur:
          MsgBox Err.Number & " : " & Err.Description
          Resume Sortie

          End Sub

          Cela dit j'ai un petit souci juste a l'ouverture de ma base, j'ai message Microsoft office acces avec marké :0 et quand je click sur ok ma base marche bien derriere!!
          Un grand merci bnb pour ton aide sans toi je n'aurais jamais réussi a faire ce code!
          Merci encore
      3. Et si je veux que quand la date départ > 1 an on supprime l'enregistrement??c juste la "requete"qui change?
        Merci bcp bnb