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 :

Probleme avec Findfirst sur une Date [AC-2007]


Sujet :

VBA Access

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 36
    Points
    36
    Par défaut Probleme avec Findfirst sur une Date
    Bonjour,

    en utilisant la fonction findfirst sur une Date, j ai l'erreur : Argument non valide qui m'est retournée , et je ne comprends pas d’où vient l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim db As DAO.Database
     Dim rst As DAO.Recordset
     Dim StrJour As Date
     
     Set db = CurrentDb()
     Set rst = db.OpenRecordset("T_Date", dbOpenDynaset)
     
    StrJour = Date
    rst.FindFirst StrJour
     
    ...
    je cherche à me positionner sur la première occurrence de la date du jour dans ma table

    Edit : ma table T_Date est liée

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    Vous cherchez votre date sur quel champ de votre table ou quelle est la valeur recherchée ?
    FindFirst demande un argument du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rst.FindFirst  "[ChampTableAChercher] = " & ValeurARechercher
    Vous ne mettez qu'un argument. Donc normal si ça lève une erreur

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 36
    Points
    36
    Par défaut
    ma valeur cherchée se trouve dans la table T_Date effectivement, dans un champ appelé "Date"

    du coup la syntaxe serait ?:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    rst.FindFirst  "[Date] = " & strJour
    ca a l'air de mieux fonctionner

    Merci pour le coup de main !

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Bonjour,

    C'est bien par contre je ne pouvais pas laisser passer le fait que vous nommez votre champ "Date", c'est un mot réservé dans Access.
    Si vous êtes au début de votre application, je vous conseille de modifier parce que ça peut être source d'erreur dans les codes après.

    Bonne continuation et n'oubliez pas de mettre en "RESOLU"

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 36
    Points
    36
    Par défaut
    Merci du conseil, mais je n'avais pas nommé ce champ Date, c'était seulement pour simplifier mon explication

    par contre j'ai toujours un probleme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    StrJour = Date
        rst.FindFirst "[date] =" & StrJour
        If rst.NoMatch = True Then
    Dans mon idée, je parcours le champ date à la recherche d'un match avec Strjour.
    si je trouve rien (If rst.NoMatch = True) alors je fais quelque chose, sinon je fais autre chose.
    par contre mon test ci-dessus, ne fonctionne pas.

    une idée du pourquoi ?

    voila le vrai 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
     
    Dim db As DAO.Database
        Dim rst As DAO.Recordset
        Dim StrJour As Date
     
        Set db = CurrentDb()
        Set rst = db.OpenRecordset("T_Date", dbOpenDynaset)
     
        StrJour = Date
     
        rst.FindFirst "[suivi JPM date] =" & StrJour
        If rst.NoMatch = True Then              'si je ne trouve pas de date dans la table égale à la date du jour
            rst.Edit
            rst.AddNew
            rst("suivi JPM nb") = 1
            rst("suivi JPM date") = StrJour
            rst.Update
            Else                                'si je trouve une date dans la table égale à la date du jour
                rst("suivi JPM nb") = "suivi JPM nb" + 1
        End If

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Re-,

    Ces 2 lignes de commandes ne devraient pas "aller" ensemble, vu qu'elles font 2 actions différentes :
    rst.Edit : pour modifier les valeurs
    rst.Addnew : pour ajouter un enregistrement.

    Donc, c'est soit l'un, soit l'autre à mon avis.

    Cordialement,
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 36
    Points
    36
    Par défaut
    oui, tu as raison .

    par contre mon test NoMatch, ne fonctionne toujours pas , dans tous les cas le test me retourne vrai ... même si il y a bien une date identique présente dans la table. une idée?

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    3 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 840
    Points : 7 974
    Points
    7 974
    Par défaut
    Mets rst.Nomatch tout court.
    Mandresy
    "Je ne sais qu'une chose, c'est que je ne sais rien" Socrate

    N'oublions pas de mettre quand on a trouvé notre bonheur. Soyons sympa pour les futurs heureux.

    Merci, c'est toujours sympa de recevoir des de votre part

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 38
    Points : 36
    Points
    36
    Par défaut Probleme avec Findfirst + NoMatch sur une Date
    Merci pour ton aide, j'ai bien avancé mais j'ai toujours un souci.
    je clos ce sujet et j'en ouvre un autre pour précis.

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

Discussions similaires

  1. Probleme avec localisation sur une carte google maps
    Par dibax100 dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 22/05/2013, 23h32
  2. Requete avec condition sur une date
    Par Romain0 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/02/2012, 10h49
  3. Select avec max sur une date
    Par olibara dans le forum Requêtes
    Réponses: 10
    Dernier message: 06/07/2010, 07h18
  4. Probleme avec Renderer sur colonne Date
    Par touftouf57 dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 19/01/2010, 02h16
  5. Query SQL avec tri sur une date + groupement
    Par Raphael1980 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/02/2009, 15h12

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