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 :

Requête avec paramètre Date issu de textbox [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 120
    Points : 77
    Points
    77
    Par défaut Requête avec paramètre Date issu de textbox
    Bonjour à tous,
    J'ai un souci à la frontière entre IHM et requête SQL, j'espère donc poster dans le bon forum
    J'ai créé une table de recensement des interventions que les utilisateurs remplissent par l'intermédiaire de formulaires.
    J'aimerais donner la possibilité à l'administrateur d'exporter la base entre deux dates choisies par lui.
    J'ai écrit cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IP.* INTO TEMPORAIRE FROM IP WHERE IP.Date_inter >= Date_début AND IP.Date_inter < Date_fin
    que je lance en VBA, ou TEMPORAIRE est une table où je stocke le résultat de la requête avant de l'exporter en Excel. Cette requête génère des invites pour Date_début et Date_fin. Cela fonctionne bien.
    Mais pour garder une cohérence, je souhaiterais que l'utilisateur saisisse les dates non pas dans les invites mais dans des textbox. Et là, je bloque.
    J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IP.* INTO TEMPORAIRE FROM IP WHERE IP.Date_inter >= Debut AND IP.Date_inter < Fin
    Avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debut = Me.DateDebut.Value
    Fin = Me.DateFin.Value
    Mais lors de l'exécution de la requête, j'ai toujours les invites Debut et Fin qui s'affichent...
    En gros, je voudrais utiliser des valeurs date de textbox dans ma requête.
    Est ce possible ? Si oui comment ?
    D'avance merci pour votre aide.
    Tchebichef

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Bonjour,

    A quoi sert la table temporaire ?
    La requete est saisie en VBA ou stockée et exécutée ensuite ?

    Voici un exemple en VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim qdf As DAO.QueryDef, rst As DAO.Recordset
     
    Set qdf = CurrentDb.QueryDefs("marequeteparametree")
    qdf.Parameters("param1") = textbox1
    ...
    Set rst = qdf.OpenRecordset
    Ensuite rst peut être exporté dans excel
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 120
    Points : 77
    Points
    77
    Par défaut
    Bonjour,
    La table temporaire me permet d'exporter le résultat de la requête avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, "TEMPORAIRE"
    Il doit y avoir moyen de faire plus simple et d'exporter directement le résultat de la requête sans passer par un stockage temporaire, mais je ne sais pas faire
    Le requête est saisie en VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT IP.* INTO TEMPORAIRE FROM IP WHERE IP.Date_inter >= Debut AND IP.Date_inter < Fin;"
    Puis exécutée :
    Je ne sais pas manier les objets DAO mais après tout faut bien s'y mettre, je vais donc essayer votre exemple.
    J'imagine que "marequeteparametree" peut être "SELECT IP.* INTO TEMPORAIRE FROM IP WHERE IP.Date_inter >= Debut AND IP.Date_inter < Fin;"
    avec "param1" égal à Debut et "param2" égal à Fin ?
    Mais pour l'extraction sous Excel, je peux utiliser un code du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, rst
    ?
    Merci +++ pour votre aide.
    Tchebichef

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 120
    Points : 77
    Points
    77
    Par défaut
    Voilà le code que j'ai tenté :
    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
    Private Sub Commande48_Click()
     
    Dim qdf As DAO.QueryDef, rst As DAO.Recordset, sql As String
     
    sql = "SELECT IP.* INTO TEMPORAIRE FROM IP WHERE IP.Date_inter >= Debut AND IP.Date_inter < Fin;"
     
    Set qdf = CurrentDb.QueryDefs(sql)
     
    qdf.Parameters(Debut) = Me.DateDebut
    qdf.Parameters(Fin) = Me.DateFin
     
    Set rst = qdf.OpenRecordset(sql)
     
    DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, rst, "C:\Temp\IP.xls", True, "ImportBaseInterventions"
     
    End Sub
    J'ai une erreur 3265 : Elément non trouvé dans cette collection.
    La ligne à problème étant a priori :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set qdf = CurrentDb.QueryDefs(sql)
    Une idée ?
    Merci

  5. #5
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 087
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 087
    Points : 5 203
    Points
    5 203
    Par défaut
    Personnellement je n'utilise pas TransferSpreadsheet car après export je formate le tableau excel mais ce qui précède me semble correct...

    Comme la requête n'est pas préenregistrée elle peut s'écrire directement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sql = "SELECT IP.* INTO TEMPORAIRE FROM IP WHERE IP.Date_inter >= cdate('" & dateDebut & "') AND IP.Date_inter < cdate('" & dateFin & "');"
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2010
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 120
    Points : 77
    Points
    77
    Par défaut
    Bonjour et merci
    Je vais creuser dans la FAQ pour voir comment exporter sans DoCmd.TransferSpreadsheet.
    Tchebichef

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

Discussions similaires

  1. [AC-2010] Effectuer des calculs avec des dates issues d'une requête
    Par nianiania dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 03/04/2012, 20h51
  2. [reporting services]pb de requête MDX avec paramètre date
    Par lamyae_84 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/06/2007, 17h57
  3. SQL Requête avec des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/03/2006, 18h20
  4. test d'une requête avec paramètre
    Par hervé14670 dans le forum Access
    Réponses: 1
    Dernier message: 12/01/2006, 22h45
  5. [JDBC] Requête avec une date sous la forme dd/MM/yyyy
    Par sylviefrfr dans le forum JDBC
    Réponses: 6
    Dernier message: 12/11/2005, 09h35

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