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 :

Formulaire de recherche des disponibilités des salles


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2017
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 45
    Points : 19
    Points
    19
    Par défaut Formulaire de recherche des disponibilités des salles
    Bonsoir.
    J'ai mon formulaire qui me permet de rechercher la disponibilité des salles. Lorsque je lance la recherche entre deux dates, je reçois le message d'erreur suivant:
    Citation Envoyé par Access
    Erreur d'exécution '3265' Élément non trouvé dans cette collection.
    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
    40
    41
    42
    43
    44
    45
    Function CreerDispos(pDatedeb As Date, pDatefin As Date)
    Dim strCritere As String
    Dim strSQL As String
    Dim dtdebdispo As Date
    Dim dtfindispo As Date
    Dim oDb As Database
    Dim orst1 As Recordset
    Dim orst2 As Recordset
     
    Set oDb = CurrentDb
    ' Vidage de la table
    strSQL = "delete * from tbTmpDispo"
    oDb.Execute strSQL, dbFailOnError
     
    ' Création du recordset des salles
        Set orst1 = oDb.OpenRecordset("select * from tblSalle", dbOpenSnapshot)
    If orst1.RecordCount > 0 Then
        Do While Not orst1.EOF
    ' Création des dates disponibles
            dtdebdispo = pDatedeb
            dtfindispo = pDatefin
            Set orst2 = oDb.OpenRecordset("select * from tbTmpDispo;", dbOpenDynaset)
            strSQL = "(DatesIntersect({0}, {1}, [date_debut], [date_fin]) = True AND libelle_sal = '{2}')"
     
            Do While dtdebdispo <= dtfindispo
                orst2.AddNew
                orst2!libelle_sal = orst1!libelle_sal
                orst2!dtdispo = dtdebdispo
                ' Recherche des réservations
                strCritere = StringFormat(strSQL, DateHeureUS(dtdebdispo), DateHeureUS(dtdebdispo), orst1!libelle_sal)
                orst2!flnondispo = Nz(IIf(DCount("*", "tblReservation", strCritere) > 0, True, False), 0)
                orst2.Update
                dtdebdispo = dtdebdispo + 1
            Loop
        orst1.MoveNext
        Loop
        orst2.Close
        Set orst2 = Nothing
    End If
     
    orst1.Close
    Set orst1 = Nothing
    Set oDb = Nothing
     
    End Function
    Le résultat que je souhaite avoir est "Réservé" ou "Libre" pour chaque salle selon la période demandée.
    Voici mon formulaire:
    Nom : Formulaire de disponibilites.png
Affichages : 121
Taille : 40,2 Ko
    tblSalle(code_sal(AutoNumber),libelle_sal,...)
    tblReservation(code_res, code_salle,code_clt,dtDebut,dtFin,...)
    tbTmpDispo(code_sal(Numerique),dtDispo(Date/heure),flnondispo(Oui/Non))

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 661
    Points : 14 643
    Points
    14 643
    Par défaut
    bonsoir,
    "Erreur d'exécution '3265' Élément non trouvé dans cette collection.
    comme on n'utilise pas encore de boule de cristal sur le site, merci de préciser la ligne de code qui provoque l'erreur
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2017
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2017
    Messages : 45
    Points : 19
    Points
    19
    Par défaut Formulaire de recherche des disponibilités des salles
    Bonjour à vous, la ligne de code ou se trouve l'erreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    orst2!libelle_sal = orst1!libelle_sal
    orst2!dtdispo = dtdebdispo

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 661
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 661
    Points : 14 643
    Points
    14 643
    Par défaut
    Citation Envoyé par kmomo Voir le message
    Bonjour à vous, la ligne de code ou se trouve l'erreur est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    orst2!libelle_sal = orst1!libelle_sal
    orst2!dtdispo = dtdebdispo
    il y a 2 lignes !

    - si c'est la première, il faut vérifier que le champ libelle_sal se trouve bien dans les tables concernées (tbTmpDispo et tblSalle)
    - si c'est la seconde, il faut vérifier que le champ dtdispo se trouve bien dans la table tbTmpDispo
    - ou vérifier l'orthographe du nom des champs

    [EDIT] d'ailleurs, l'erreur est ici: tbTmpDispo(code_sal(Numerique),dtDispo(Date/heure),flnondispo(Oui/Non))
    libelle_sal n'est pas dans tbTmpDispo
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/11/2017, 15h49
  2. Formulaire de recherche des publications
    Par zeinab ali dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 15/06/2014, 14h49
  3. champ formulaire de recherche des valeurs de table
    Par josephadam dans le forum VBA Access
    Réponses: 9
    Dernier message: 13/12/2013, 21h06
  4. [AC-2010] Recherche des salles libres
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/01/2013, 18h59
  5. Réponses: 3
    Dernier message: 19/01/2006, 08h37

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