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

Requêtes et SQL. Discussion :

Bureaux libres requête VB.NET [AC-2010]


Sujet :

Requêtes et SQL.

  1. #21
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Salut,

    au risque d'enfoncer une porte ouverte, l'ordre des elements d'une date en sql sous Access est #MM/JJ/AAAA#
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  2. #22
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Merci,

    Je n'avais pas vu cette porte s'ouvrir, je vais vérifier tout de suite les résultats en changeant les formats.

    Je viens de vérifier sur la base Access, et je vois 01/05/2017 correspondant au 5 mai 2017, ne serait-ce donc pas dd/MM/yyyy ?

    En faisant les requêtes avec ce format plutôt que le précédent je me retrouve avec les même résultats

    Cordialement

  3. #23
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    désolé de m'incruster dans une discussion bien entamée sens avoir pris du temps de lire les autre poste, mais tu parle de VB.Net!

    tu vas appeler une requête Access ou ton programme contiendra ta requête?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (SELECT Site,Building,Modul,Room,Desk FROM People WHERE @EndDate  <= EndDate AND @StartDate >= StartDate)

  4. #24
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Bonjour dysorthographie,

    Dans mon programme vb.net je construis la requête en tant que string en fonction des éléments graphiques (textbox,datetimepicker,etc...) puis j'ouvre une connexion avec la base, et j'exécute la requête et je récupère le OleDbDataReader renvoyé par la fonction ExecuteReader().

    Donc je n'appelle pas de requête Access, je la fais à la main, tu penses que ce serait mieux d'appeler une requête Access directement ?

    Cordialement

  5. #25
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Attention,
    si tu ne passes pas par une requete Access, tout ce qui t'a ete dit jusqu'a present dans ce fil peut s'averer inutile

    Et on basculera le sujet en VB.Net pur et non pas en Requetes et SQL sous Access
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #26
    Invité
    Invité(e)
    Par défaut
    déjà je ferais en sorte que ma requête fonctionne en l'état dans Access, mais là je laisse mes collègue qui sont plus au vif du sujet t’aiguiller!

    ensuite je modifierais ma requête dans Access pour accepter de paramètre!

    Code Sql Access : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PARAMETERS  [ @StartDate] DateTime, [@EndDate] DateTime;
    SELECT Site,Building,Modul,Room,Desk FROM People WHERE [@EndDate]  <= EndDate AND [@StartDate] >= StartDate

    et enfin dans VB.net j’appellerais cette requête!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sql="Select * from RequêteAccess"
    PARAMETERS.add("@EndDate",etc...

  7. #27
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Oui je vais regarder sur Access pour effectuer les requêtes, puis les utiliser en vb.

  8. #28
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Bonjour galoir,

    Je viens d'écrire les requêtes sur Access directement, et effectivement avec les paramètres, cela fonctionne correctement.

    Il ne me manque plus qu'à appeler ces requêtes depuis vb

  9. #29
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Avant tu copiais collais ta requête Access dans Vb, la c'est pareil sauf que tu donnes le nom de ta requête!

    Select table ou select requête c'est pareil! Une requête c'est un vue,

    https://www.developpez.net/forums/d1...s/#post8640457
    Dernière modification par Invité ; 22/05/2017 à 15h06.

  10. #30
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    Je reviens vers vous, car toujours avec la même base :

    Nom : DB_After.png
Affichages : 97
Taille : 19,1 Ko


    J'ai créé la requête RequeteFreeDesk :

    Nom : requete_free_desks.png
Affichages : 100
Taille : 3,8 Ko

    Requête contenant le code suivant :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT t.site, t.Building, t.Modul, t.Room, t.Desk
    FROM Offices AS t LEFT JOIN (SELECT Site, Building, Modul, Room, Desk 
          FROM People WHERE ([DebutPeriode] < EndDate) AND ([FinPeriode] > StartDate))  AS r ON (t.Site = r.Site) AND (t.Building = r.Building) AND (t.Modul = r.Modul) AND (t.Room = r.Room) AND (t.Desk = r.desk)
    WHERE r.Site IS NULL
    GROUP BY t.site, t.Building, t.Modul, t.Room, t.Desk;

    J'ai changé les inégalités strictes par des inégalités simples, j'ai aussi essayé avec deux formats pour la date : #30/05/2017# et #05/30/2017# mais tous me donnent les mêmes résultats, c'est à dire tous les bureaux (1902) sauf 12, la table People est pourtant complète au niveau des dates de début, la plupart mises par défaut au 1er janvier 2000 :

    Nom : People_location.png
Affichages : 114
Taille : 78,3 Ko


    J'ai pourtant scrupuleusement respecté les requêtes écrites précédemment, j'ai l'impression de passe à côté de quelque chose mais je ne sais absolument pas quoi.

    Je ne vois pas vraiment d'alternative.

    Cordialement

  11. #31
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Salut,

    un champ nul ne peut pas etre compare a une date =]

    Il te faut des comparaisons par defaut avec la fonction Nz()
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  12. #32
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Merci Jean-Philippe André,


    Je me retrouve donc avec une requête du genre :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT t.Site, t.Building, t.Modul, t.Room, t.Desk
    FROM Offices AS t LEFT JOIN (SELECT Site, Building, Modul, Room, Desk FROM People WHERE (Nz([DebutPeriode],0) < Nz(EndDate,0)) AND (Nz([FinPeriode],0) > Nz(StartDate,0)))  AS r ON (t.Desk = r.Desk) AND (t.Room = r.Room) AND (t.Modul = r.Modul) AND (t.Building = r.Building) AND (t.Site = r.Site)
    WHERE (((r.Site) Is Null))
    GROUP BY t.Site, t.Building, t.Modul, t.Room, t.Desk;

    Est-ce bien une comparaison des Nz des dates ?

    Je ne suis pas certain des valeurs nulles par défaut

  13. #33
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Je serais plutot parti sur

    Nz(TonChampDate,Date())
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  14. #34
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    En faisant cela, si une date de fin n'a pas été remplie, alors elle sera remplacée par la date d'aujourd'hui ?
    Ça ne risque pas de poser des problèmes si par exemple je choisis un bureau 1 mois à l'avance, alors tous les bureaux occupés seront libres vu que les bureaux occupés (sans date de fin) se retrouveront avec une date de fin à la date d'aujourd'hui; et la date qui sera comparée sera celle de dans 1 mois.

  15. #35
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Auquel cas tu fais un plus pragmatique

    Nz([DebutPeriode],EndDate) < EndDate) AND (Nz([FinPeriode],StartDate) > StartDate)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  16. #36
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Oui c'est certainement plus robuste, cependant le soucis persiste, je me retrouve avec 1890 bureaux soit-disant libres, lorsque je fais une requête qui regarde les EndDate non nulles, je me retrouve avec moins de 250 résultats, alors certes, certains de ces bureaux dont les EndDates sont remplies ont peut-être été réassignés, mais c'est la meilleure approximation que j'ai réussi à faire fonctionner.

    Cordialement

  17. #37
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Dans les applications que j'ai gere jusqu'a present, une date vide en date de fin signifie jamais disponible, ce n'est pas ton cas ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  18. #38
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Effectivement, si aucune date de fin n'est renseignée, c'est que le bureau n'a pas prévu d'être libéré pour le moment. Pour voir les bureaux libres à partir d'une certaine date, je prends donc les bureaux qui ont une date de fin renseignée. Ce n'est pas correct ?

  19. #39
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    voilà la syntaxe pour gérer les occupations sans date de fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ... (EndDate IS NULL OR [DebutDate] <= EndDate) AND [FinDate] >= StartDate ...

  20. #40
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 65
    Points : 23
    Points
    23
    Par défaut
    Bonjour galoir,

    Les bureaux sans date de fin ne m'intéressent pas vraiment dans le cadre de la recherche des bureaux libres, puisque s'ils n'ont pas de date de fin, alors ils sont occupés.

    La requête que j'ai pour le moment bien que pas correcte à 100% fonctionne, je pense la garder comme cela, vu que d'une autre façon ça n'a pas l'air de vouloir marcher.

    Je met le sujet en résolu.

    Merci encode de votre aide

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. [Débutant] Conversion d'unités des valeurs d'une requête - VB .NET
    Par Aiman.elmachi dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/06/2014, 09h20
  2. [Débutant] Problème requête ADO.NET
    Par Jah73 dans le forum VB.NET
    Réponses: 6
    Dernier message: 04/01/2013, 10h35
  3. connexion et requête vb.NET 2005
    Par dharkan dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/02/2011, 14h46
  4. [VB.NET] [ODBC] Récupérer des valeurs avec requête ODBC?
    Par Pleymo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/03/2005, 16h38
  5. [VB.NET] [SQL] Pb requête sql, récupérer des params. ?
    Par Pleymo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/02/2005, 20h15

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