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 :

Problème de syntaxe sql [Débutant(e)]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut Problème de syntaxe sql
    Bonjour,

    J'ai un problème de syntaxe, j'espère que quelqu'un pourra m'aider.

    voici le tableau que j'avais :

    AnneeEffet Quartile
    2001 23,25
    2002 24,56
    2003 21,58
    2004 24,59
    2005 29,45
    2006 30,14

    Que je faisais avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Quartil(strTable As String, strField As String, param As String, anne As integer, rang As Integer) As Double
    [...]  Set oRST = oDBS.OpenRecordset("SELECT * FROM " & strTable & " WHERE " & param & " = " & anne & " ORDER BY " & strField)
    [...]
    Maintenant, il a été décidé dans le service, que le tableau serait :

    N-4 et avant 24,26
    N-3 21,58
    N-2 24,59
    N-1 29,45
    N 30,14

    Donc l'année en format integer, devient un string. Et je n'arrive absolument pas à faire fonctionner la fonction qui marchait très bien !

    Voila comment j'appelais la fonction avant :
    Q1_AgeSous: Quartil("GRBR_Nettoyé_en_cours_access";"[AGESOUS]";"[AnneeSOUS]";[AnneeSOUS];1)

    Comment changer cette syntaxe pour que l'année de souscription soit prise comme un string ?

    Voici la fonction est entier : (j'ai changé anne as string et dans le SELECT je n'arrive pas à faire le changement adéquat)

    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
    Function Quartil(strTable As String, strField As String, param As String, anne As String, rang As Integer) As Double
     
    Dim oDBS As DAO.Database
    Dim oRST As DAO.Recordset
    Dim blnEven As Boolean
    Dim vntMedian As Variant
     
    If rang = 1 Then rang = 25
    If rang = 3 Then rang = 75
     
      Set oDBS = CurrentDb()
      Set oRST = oDBS.OpenRecordset("SELECT * FROM " & strTable & " WHERE " & param & " = " & anne & " ORDER BY " & strField)
     
      If oRST.EOF = False Then
         oRST.MoveLast
         'Is there an even number of records in the recordset?
         blnEven = (oRST.RecordCount Mod 2 = 0)
         'Rounds down if there is an even number of records...
         oRST.PercentPosition = rang
         vntMedian = oRST.Fields(strField)
         If blnEven Then
             oRST.MoveNext
             '...so take the average of the this and the next value up
             vntMedian = (vntMedian + oRST.Fields(strField)) / 2
         End If
      End If
     
      Quartil = vntMedian
      oRST.Close
      Set oRST = Nothing
      Set oDBS = Nothing
     
    End Function

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 54
    Points : 59
    Points
    59
    Par défaut
    essai

    WHERE " & param & " = '" & CStr(anne) & "' ORDER BY

    n'oublie pas les simple quote!

  3. #3
    Expert éminent

    Avatar de Maxence HUBICHE
    Homme Profil pro
    Développeur SQLServer/Access
    Inscrit en
    Juin 2002
    Messages
    3 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur SQLServer/Access

    Informations forums :
    Inscription : Juin 2002
    Messages : 3 842
    Points : 9 197
    Points
    9 197
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    SELECT * FROM " & strTable & " WHERE " & param & " = "& chr(34) & anne & chr(34) & " ORDER BY
    [Edit]
    Oups !
    doublé
    [/Edit]

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Juin 2006
    Messages : 86
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par jm_force
    essai

    WHERE " & param & " = '" & CStr(anne) & "' ORDER BY

    n'oublie pas les simple quote!

    Super Merci pour cette réponse rapide et qui fonctionne !

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

Discussions similaires

  1. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  2. Syntaxe SQL sous BCB
    Par ORLIK dans le forum C++Builder
    Réponses: 2
    Dernier message: 13/10/2004, 20h47
  3. Pb configuration et syntaxe SQL
    Par Glloq dans le forum Débuter
    Réponses: 2
    Dernier message: 09/09/2004, 15h17
  4. syntax sql spéciale pour postgresql ???
    Par krimson dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/05/2004, 15h23
  5. requete syntaxe sql
    Par tomm dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/04/2004, 16h56

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