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 :

[VBA/SQL]Execution d'une requete via une fonction


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 52
    Par défaut [VBA/SQL]Execution d'une requete via une fonction
    Bonjour,

    Je cherche à créer une fonction qui en passant en paramètre une date me remonte le mois comptable.

    Qu'est ce que le mois comptable ? Il correspond à cette table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    mois    debutmois         finmois
    1	01/01/2007	26/01/2007
    2	27/01/2007	23/02/2007
    3	24/02/2007	30/03/2007
    4	31/03/2007	27/04/2007
    etc.


    Donc pour récupérer le mois comptable, il faut que je regarde la date dede réalisation pour dire dans quel mois comptable la date se trouve en la comparant aux dates de début et de fin de mois comptable.

    J'ai donc songé à déclarer une fonction moiscomptable (date)...

    ... mais elle ne marche pas.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function MoisComptable(DateParam As Date) As Integer
    Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.Field
    Dim sSQL As String
    Set db = DBEngine.OpenDatabase("K:\MLR3.MDB")
    sSQL = "SELECT calendrier_mois FROM calendrier WHERE calendrier_datedebmois<=" & DateParam & "and calendrier_datefinmois>=" & DateParam
    Set rst = db.OpenRecordset(sSQL, dbOpenForwardOnly, dbReadOnly)
    rst.MoveNext
    MoisComptable = rst("calendrier_mois")
    rst.Close
    End Function
    L'erreur que j'obtiens est :
    Erreur d'exécution '3021'
    Aucun Enregistrement en cours.
    Quand je remplace le MoveNext par un MoveFirst j'obtiens:
    Erreur d'exécution '3219'
    Opération non valide.
    Je vois pas ou est mon erreur :s

    Merci d'avance de votre aide.

  2. #2
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sSQL = "SELECT calendrier_mois FROM calendrier WHERE calendrier_datedebmois <= #" & DateParam & "# and calendrier_datefinmois >= #" & DateParam & "#"
    Avec les dates au format US => mm/jj/aaaa

Discussions similaires

  1. [Débutant] Remplissage d'une listbox via une requete SQL
    Par arngrimur dans le forum ASP.NET
    Réponses: 9
    Dernier message: 26/09/2011, 11h31
  2. Réponses: 5
    Dernier message: 28/01/2010, 19h40
  3. Réponses: 1
    Dernier message: 22/12/2009, 20h05
  4. mise a jour d une requete via une macro
    Par adelsunwind dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 10/03/2009, 10h00
  5. comment charger une listbox via une requete access
    Par sanfour_walhan dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/12/2006, 07h44

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