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

VB 6 et antérieur Discussion :

runtime error 3075 syntax error (comma)


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut runtime error 3075 syntax error (comma)
    Bonjour,

    Je dois faire une requête vers une base de donnée Access afin de compter le nombre de résultat dans une table "Réservation" avec pour condition : que la date de séance et l'horaire de réservation.
    En lançant la requête j'obtiens une erreur runtime 3075 syntax error (comma) in query expression 'DateSeance = 01/01/2000, HoraireSeance = 9h15'.


    Voici mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub Generer_Click()
    Dim RGenerer As String
    Dim Nb As Integer
     
    Nb = 0
    If IsDate(TDateSeance.Text) = True Then
        RGenerer = "select * from RESERVATION where DateSeance = " & TDateSeance.Text & " , HoraireSeance = " & CHoraireSeance.Text & " "
        Set rs1 = base.OpenRecordset(RGenerer)
            rs1.MoveLast
            Nb = rs1.RecordCount + 1
            LNb = Nb
    End If
     
    End Sub
    Où se trouve le problème dans ma requête? ^^"

    Merci pour vos futur réponse

  2. #2
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 120
    Points : 15 689
    Points
    15 689

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Merci ! je comprenais pas pourquoi j'avais une requête INSERT avec données sous format date et ça marchais, alors que ici, avec une simple requête SELECT ça ne marchais pas

    Edit : ça ne marche toujours pas

    j'ai essayé de faire comme dans la FAQ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGenerer = "select * from RESERVATION where DateSeance = #" & Format(TDateSeance, "mm/dd/yyyy") & "# , HoraireSeance = " & CHoraireSeance.Text & " "
    Mais toujours la même erreur... Est-ce que j'ai mal recopié le code du formatage?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir,
    quel est le type données de ton champ : HoraireSeance ...? si c'est du texte tu dois rajouter des guillements : '

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Bonsoir =)

    Alors dans ma base de donnée, mon champs HoraireSeance est de type Texte car j'ai remarqué que le format heure sous Access ne permet que le date sous forme " 10:00" alors que dans mon projet je suis sous un format : " 10h00".
    Dans ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RGenerer = "select * from RESERVATION where DateSeance = #" & Format(TDateSeance, "mm/dd/yyyy") & "# , HoraireSeance = '" & CHoraireSeance.Text & "' "
    "CHoraireSeance" est une combobox, je sais pas si ça pose un problème ici mais juste pour dire que ce n'est pas une textbox

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    J'ai modifié qqch dans ma requête car je me suis aperçus d'une erreur similaire en changeant la " , " entre deux conditions par un "And".
    Je ne sais pas si c'est correct mais je n'ai plus l'erreur
    Malgré ça ^^ j'ai une autre erreur cette fois :
    "Runtime error '3021' No Current record"

    J'ai essayé plusieurs choses : Ma table était vide, je l'ai remplie d'un enregistrement "manuellement" . => aucune différence
    L'erreur étant sur le "rs.movelast", j'ai essayé de mettre ce bout de code avant, après mon "recordcount" cela change rien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Nb = 0
    If IsDate(TDateSeance.Text) = True Then
        RGenerer = "SELECT * from RESERVATION WHERE DateSeance = #" & Format(TDateSeance, "mm/dd/yyyy") & "# And HoraireSeance = '" & CHoraireSeance.Text & "' "
        Set rs1 = base.OpenRecordset(RGenerer)
            rs1.MoveLast
            Nb = rs1.RecordCount + 1
            LNb = Nb

  7. #7
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 120
    Points : 15 689
    Points
    15 689
    Par défaut
    Salut

    Si tu utilises ADO, essais comme cela
    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
            RGenerer = "SELECT * from RESERVATION WHERE DateSeance = #" & Format(TDateSeance, "mm/dd/yyyy") & "# And HoraireSeance = '" & CHoraireSeance.Text & "' "
            On Error Resume Next
            Set rs1 = base.OpenRecordset(RGenerer)
            If Err.Number <> 0 Then
                MsgBox "Erreur N°" & Err.Number & vbCrLf & Err.Description, vbInformation, "Erreur non gérée"
                Exit Sub
            End If
            If rs1.EOF Then
                rs1.Close
                MsgBox "Aucun enregistrement disponible pour cette requête", vbInformation, ""
                Exit Sub
            End If
    	'c'est bon       
    	rs1.MoveLast
            Nb = rs1.RecordCount + 1
            LNb = Nb
    Cela fonctionne peut être aussi avec DAO.
    Si tu as le message Aucun enregistrement disponible pour cette requête et que tu es sûr qu'un enregistrement correspond dans ta table, c'est que la formulation de ta requête et mal rédigée.

  8. #8
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Bonsoir,

    Alors oui je vais essayé mais enfait j'ai oublié de dire une petite précision;
    Je dois, pour ma réservation, Générer un numéro sous une certaine forme (Un numéro de réservation quoi). Ce numéro est composé du jour, date, l'horaire de la séance et un numéro qui s'incrémente ( par exemple : Ve-10/06/2011-9h00-x (x étant un numéro qui s'incrémente sous certaines conditions)).

    Si il existe déjà une réservation le vendredi 10/06/2011 à 9h00 alors le numéro sera 2 ; Si il n'existe aucune réservation pour un jour et une heure alors le numéro est de 1.

    Tout ça pour dire que j'avais penser faire un select count sur ma table mais compter seulement les résultats où la date et la séance correspondent à une textbox date et une textbox horaire. Dans quel cas, si aucunes réservations était trouvées je ferais Nb = rs1.recordcount +1 (Nb initialisé à 0)

    Je sais pas si j'ai été clair ^^'
    merci pour votre patience

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Bonjour,

    J'ai mis ton code, il me disais qu'il n'y avait aucun enregistrement; Ce qui est normal finalement si je veux faire une réservation pour une date et une heure donnée et que personne n'a encore réserver pour celles-ci. Donc j'ai ajouté :

    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
    If rs1.EOF Then
                rs1.Close
                MsgBox "Aucun enregistrement disponible pour cette requête, une nouvelle réservation sera créée", vbInformation, ""
     
               Nb = Nb + 1
               jour = Format(TDateSeance, "dddd")
               jour1 = Left(jour, 2)
     
               date1 = TDateSeance.Text
               heure = CHoraireSeance.Text
     
               Text4.Text = jour1 & "-" & date1 & "-" & heure & "-" & Nb
            End If
        'c'est bon
        rs1.MoveLast
            Nb = rs1.RecordCount + 1
            LNb = Nb
            jour = Format(TDateSeance, "dddd")
               jour1 = Left(jour, 2)
     
               date1 = TDateSeance.Text
               heure = CHoraireSeance.Text
     
               Text4.Text = jour1 & "-" & date1 & "-" & heure & "-" & Nb
    pour avoir ma bonne nomenclature de numéro de fiche.

  10. #10
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Je reviens une dernière fois sur le sujet de mon post : le problème des dates

    J'ai une requête pour afficher des infos dans une msflexgrid.
    Et je dois y afficher une date. Seulement la date n'est plus dans la requête mais dans l'affichage de celle-ci. j'ai essayé de bricoler qqch par rapport à ce que j'ai lu et ce que vous m'avez dit de faire (avec le format(date, "mm/dd/yyyy")) ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Do While rs.EOF = False
        MSFlexGrid1.AddItem rs("NomOrganisme") + Chr(9) + rs("VilleOrganisme") + Chr(9) + rs("[N°FicheReservation]") + Chr(9) + rs("Format(DateSeance, "mm/dd/yyyy")) + Chr(9) + rs("HoraireSeance")
     
        rs.MoveNext
    Loop
    J'ai tout essayé et il me dit toujours error type mismatch. c'est sur c'est la date qui met la m... d’après mes tests. Comment je dois structurer le code pour que cela marche?

  11. #11
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour,

    L'erreur n'est pas toujours là où on la croit...

    Et si tu faisais un essai en séparant tes additems
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MSFlexGrid1.AddItem rs("NomOrganisme") + Chr(9)
    MSFlexGrid1.AddItem rs("VilleOrganisme") + Chr(9) 
    'etc..
    pour être certain où se produit l'error type mismatch.

  12. #12
    Expert éminent sénior
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 120
    Points : 15 689
    Points
    15 689
    Par défaut
    Tu as un guillemet en trop dans ta ligne Additem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        MSFlexGrid1.AddItem rs("NomOrganisme") & Chr(9) _
                            & rs("VilleOrganisme") & Chr(9) _
                            & rs("[N°FicheReservation]") & Chr(9) _
                            & rs(Format(DateSeance, "mm/dd/yyyy")) & Chr(9) _
                            & rs("HoraireSeance")
    Je pencherai dailleurs plutôt pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    & Format(rs("DateSeance"), "mm/dd/yyyy") & Chr(9) _

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 129
    Points : 45
    Points
    45
    Par défaut
    Merci beaucoup ça marche impec' maintenant


Discussions similaires

  1. Réponses: 2
    Dernier message: 05/10/2009, 17h43
  2. Réponses: 27
    Dernier message: 16/03/2009, 10h36
  3. error near "(" :syntax error
    Par elekis dans le forum SQLite
    Réponses: 1
    Dernier message: 27/09/2008, 00h37
  4. Réponses: 7
    Dernier message: 18/03/2008, 18h58
  5. Réponses: 14
    Dernier message: 11/07/2006, 17h11

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