Pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter, inscrivez-vous gratuitement !

 

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut syntax error in number in query expression number and date in vb6

    Un Bonjour à ceux qui mon aidé précedement l_autodidacte, ProgElecT, iclic.

    Désole de revenir vers vous mais j ai toujours pas résolus mon souci DAO en vB6. mais la ligne de commande fonctionne en VB5 pour quelle raison je ne sais pas...... Si une personne a une idée voici une image et une partie du code sinon je vous laisse un lien du fichier du programme et de la base de donnée qui fonctionne pas. Sinon si on arrive pas en ADO la faire en récent contrôle de données ADO.

    voici le code qui fonctionne en VB5. en precisant que c est la date qui donne l erreur pour VB6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     DataHisto.DatabaseName = App.Path & "\technique.mdb"
          DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =" & Format(ListeDateh) & ""
    DataHisto.Refresh
    Nom : Capture.JPG
Affichages : 67
Taille : 63,8 Ko

    j ai aussi essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Data1.RecordSource = "select * from histo where numéro =" & Val (LblNuméro) & "and date = # " & Format (ListeDateh) & " # "
    'ou
    DataHisto.RecordSource = "select * from histo where date = # " & Format(ListeDateh, "dd.mm.yyyy") & " # "
    'ou
     DataHisto.RecordSource = "SELECT * FROM histo WHERE numéro = " _
                           & Val(LblNuméro) _
                           & " AND date = #" _
                           & Str$(CDate(ListeDateh)) _
                           & "#"
    toujours eu le même code erreur 3075

    Pour ceux qui veulent avoir la form et le data de test voici le lien :

    https://github.com/siadli/histo

    " pour ce qui sont intéressé du projet de gestion de réparation de voiture pour un garage complet je peux le fournir "
    Merci de votre aide et expérience que j ai plus malheureusement .....

  2. #2
    Modérateur
    Avatar de l_autodidacte
    Homme Profil pro
    Retraité : Directeur de lycée/Professeur de sciences physiques
    Inscrit en
    juillet 2009
    Messages
    2 071
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Retraité : Directeur de lycée/Professeur de sciences physiques
    Secteur : Enseignement

    Informations forums :
    Inscription : juillet 2009
    Messages : 2 071
    Points : 4 736
    Points
    4 736

    Par défaut

    Dans le projet de test, il manque frmVéhicule.
    Dans la Sub ListeDateh_Click() , il manque l'index de l'élément sélectionné et il y a des espaces de trop avant et après le caractère dièse (#) : DataHisto.RecordSource = "select * from histo where date = # " & Format(ListeDateh, "dd.mm.yyyy") & " # ".
    Cette ligne de code devrait être écrite comme suit : DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh.List(ListeDateh.ListIndex), "dd.mm.yyyy") & "#"
    Ne pas oublier le tag si satisfait.
    Voter pour toute réponse satisfaisante avec pour encourager les intervenants.
    Balises CODE indispensables. Regardez ICI
    Toujours utiliser la clause Option Explicit(VBx, VBS ou VBA)
    Vous pouvez consulter mes contributions
    Consultez les différentes FAQs et les Cours/Tutoriels VB6/VBScript
    Ne pas oublier L'Aide VBScript et MSDN VB6 Fr ICI

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut

    Citation Envoyé par l_autodidacte Voir le message
    Dans le projet de test, il manque frmVéhicule.
    Dans la Sub ListeDateh_Click() , il manque l'index de l'élément sélectionné et il y a des espaces de trop avant et après le caractère dièse (#) : DataHisto.RecordSource = "select * from histo where date = # " & Format(ListeDateh, "dd.mm.yyyy") & " # ".
    Cette ligne de code devrait être écrite comme suit : DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh.List(ListeDateh.ListIndex), "dd.mm.yyyy") & "#"

    Bonjour Mr,
    j ai juste mi la page ou il ya le problème. pour cela que la frmVéhicule
    j ai bien testé votre ligne mais j ai toujours le même code erreur 3075
    " erreur de syntaxe dans la date dans l expression ' date=#22.01.2018#'
    l aviez vous testé sur votre VB6 car j ai la version vb6.0 sans SP6 car j arrive pas a l installé sur mon win10_64bit

  4. #4
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 532
    Points : 9 779
    Points
    9 779

    Par défaut

    Salut
    Citation Envoyé par siadli Voir le message
    ....
    car j ai la version vb6.0 sans SP6 car j arrive pas a l installé sur mon win10_64bit
    Pour installer SP6 , il faut le faire absolument en tant qu'administrateur, sinon à un moment donné cela plante l’installe.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut rajout du zip

    Citation Envoyé par siadli Voir le message
    Un Bonjour à ceux qui mon aidé précedement l_autodidacte, ProgElecT, iclic.

    Désole de revenir vers vous mais j ai toujours pas résolus mon souci DAO en vB6. mais la ligne de commande fonctionne en VB5 pour quelle raison je ne sais pas...... Si une personne a une idée voici une image et une partie du code sinon je vous laisse un lien du fichier du programme et de la base de donnée qui fonctionne pas. Sinon si on arrive pas en ADO la faire en récent contrôle de données ADO.

    voici le code qui fonctionne en VB5. en precisant que c est la date qui donne l erreur pour VB6
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     DataHisto.DatabaseName = App.Path & "\technique.mdb"
          DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =" & Format(ListeDateh) & ""
    DataHisto.Refresh
    Nom : Capture.JPG
Affichages : 67
Taille : 63,8 Ko

    j ai aussi essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Data1.RecordSource = "select * from histo where numéro =" & Val (LblNuméro) & "and date = # " & Format (ListeDateh) & " # "
    'ou
    DataHisto.RecordSource = "select * from histo where date = # " & Format(ListeDateh, "dd.mm.yyyy") & " # "
    'ou
     DataHisto.RecordSource = "SELECT * FROM histo WHERE numéro = " _
                           & Val(LblNuméro) _
                           & " AND date = #" _
                           & Str$(CDate(ListeDateh)) _
                           & "#"
    toujours eu le même code erreur 3075

    Pour ceux qui veulent avoir la form et le data de test voici le lien :

    https://github.com/siadli/histo

    ou le dossier en .ZIP

    technique.zip

    " pour ce qui sont intéressé du projet de gestion de réparation de voiture pour un garage complet je peux le fournir "
    Merci de votre aide et expérience que j ai plus malheureusement .....

  6. #6
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 532
    Points : 9 779
    Points
    9 779

    Par défaut

    Salut

    Dans ta BDs, table Histo, le champs Date est formaté comme cela: 05/02/2017, dans ta requête, tu lui passes la date qui elle est formatée 24.04.2006, cela provoque l'erreur.
    Soit tu modifies ton ListeDateh, soit il faut formater avant de passer l'information dans ta requête.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim DateAuFormatBDs As Date, DateFormatListe As String
    DateFormatListe = "24.04.2006"
    DateAuFormatBDs = CDate(Replace(DateFormatListe, ".", "/"))
           DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & DateAuFormatBDs & "#"
    ou en plus condensé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & CDate(Replace(ListeDateh.Text, ".", "/")) & "#"
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut

    Citation Envoyé par ProgElecT Voir le message
    Salut

    Dans ta BDs, table Histo, le champs Date est formaté comme cela: 05/02/2017, dans ta requête, tu lui passes la date qui elle est formatée 24.04.2006, cela provoque l'erreur.
    Soit tu modifies ton ListeDateh, soit il faut formater avant de passer l'information dans ta requête.
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim DateAuFormatBDs As Date, DateFormatListe As String
    DateFormatListe = "24.04.2006"
    DateAuFormatBDs = CDate(Replace(DateFormatListe, ".", "/"))
           DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & DateAuFormatBDs & "#"
    ou en plus condensé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & CDate(Replace(ListeDateh.Text, ".", "/")) & "#"
    Bonjour Mr,
    Ma BDs histo est bien configurée sur mon ordinateur j ai bien le format date avec les points comme 05.05.2017, comme sur ma liste de recherche.
    J ai bien testé vos Codes mais ça me donne toujours la même erreur.
    Vos code fonctionnent ils sur mon exemple donner sur mon Zip sur votre ordinateur?
    ------------------------------------------------------
    merci les amis de votre soutiens

  8. #8
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 532
    Points : 9 779
    Points
    9 779

    Par défaut

    Re

    Chez moi cela fonctionne de cette façon,
    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
    Private Sub ListeDateh_Click()
        'DataHisto.DatabaseName = App.Path & "\technique.mdb"
        'DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & Format(ListeDateh) & "#"
     
       '   "vb6 "
      'DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "dd.mm.yyyy") & "# "
       DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "dd/mm/yyyy") & "# "
     
             DataHisto.Refresh
             Do While DataHisto.Recordset.EOF = False
              LblEmployéh = DataHisto.Recordset("employé")
              LblKilomètreh = DataHisto.Recordset("kilomètre")
              TxtEffectuéh = DataHisto.Recordset("prévoir")
     
              If IsNull(DataHisto.Recordset("Débiteur")) = False Then
               LblDébiteurh = DataHisto.Recordset("Débiteur")
     
     
              Else
               LblDébiteurh = ""
              End If
     
              Exit Do
             Loop
             CdeSupprimeh.Enabled = True
             CdeModifierh.Enabled = True
    End Sub
    Comme tu le voies, j'ai adapté avec la ligne 7.
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut

    Citation Envoyé par ProgElecT Voir le message
    Re

    Chez moi cela fonctionne de cette façon,
    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
    Private Sub ListeDateh_Click()
        'DataHisto.DatabaseName = App.Path & "\technique.mdb"
        'DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & Format(ListeDateh) & "#"
     
       '   "vb6 "
      'DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "dd.mm.yyyy") & "# "
       DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "dd/mm/yyyy") & "# "
     
             DataHisto.Refresh
             Do While DataHisto.Recordset.EOF = False
              LblEmployéh = DataHisto.Recordset("employé")
              LblKilomètreh = DataHisto.Recordset("kilomètre")
              TxtEffectuéh = DataHisto.Recordset("prévoir")
     
              If IsNull(DataHisto.Recordset("Débiteur")) = False Then
               LblDébiteurh = DataHisto.Recordset("Débiteur")
     
     
              Else
               LblDébiteurh = ""
              End If
     
              Exit Do
             Loop
             CdeSupprimeh.Enabled = True
             CdeModifierh.Enabled = True
    End Sub
    Comme tu le voies, j'ai adapté avec la ligne 7.
    Bonjour Mr,

    Après avoir vu votre message que chez vous sa fonctionnez, j'ai repris votre ligne numéro 7 et fait des tests en changeant mes paramètres régionaux par jj/MM/aaaa. pour modifié la date qui devient 28/08/2018 au lieu de 28.08.2018 .

    Ma constations a eu une joie de remerciement pour vous et Mr l_autodidacte, qui avait aussi raison dans ces lignes de programme.

    Mais j'ai un souci majeur que je n'arrive pas comprendre c'est les 12 premiers jours de chaque mois “ exemple : 01/03/2004 a 12/03/2004” le clic sur la liste ne fais aucun effet, alors que sur les autres jours du “13/05/2015 a 31/05/2015” cela fonctionne. Pour quelle raison mystère.

    Aviez-vous eu ce problème ?

    J'aurais d'autres questions pour comprends mais essayons de trouvé une solution pour mes 12er jours qui fonctionne pas.....

    Et Merci de votre aide précieuse.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut Remerciment

    Je remercie le pseudo ProgElecT et l_autodidacte d'avoir donné leur connaissance.

  11. #11
    Rédacteur/Modérateur
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    décembre 2004
    Messages
    4 532
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : décembre 2004
    Messages : 4 532
    Points : 9 779
    Points
    9 779

    Par défaut

    Salut siadli

    Citation Envoyé par siadli
    Mais j'ai un souci majeur que je n'arrive pas comprendre c'est les 12 premiers jours de chaque mois “ exemple : 01/03/2004 a 12/03/2004” le clic sur la liste ne fais aucun effet, alors que sur les autres jours du “13/05/2015 a 31/05/2015” cela fonctionne. Pour quelle raison mystère.
    Tu ne nous dis pas si tu as trouvé la solution ?

    Pour ma part, je n'ai pas réussi à modifier les paramètres généraux de la BDs pour les champs dates.

    Par contre, j'ai fais une bidouille par code qui fonctionne mais n'est pas l'idéale car il serai mieux de le faire au niveau de la BDs.
    A toutes fins utiles
    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 ListeDateh_Click()
        'DataHisto.DatabaseName = App.Path & "\technique.mdb"
        'DataHisto.RecordSource = "select * from histo where numéro=" & Val(LblNumVoiture) & " and date =#" & Format(ListeDateh) & "#"
     
       '   "vb6 "
      'DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "dd.mm.yyyy") & "# "
       DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "dd/mm/yyyy") & "# "
             DataHisto.Refresh
             '-----------------------> si pas d'enregistrement retourné, on inverse le jour avec le mois <----------------
             If DataHisto.Recordset.EOF = True Then
                DataHisto.RecordSource = "select * from histo where date = #" & Format(ListeDateh, "mm/dd/yyyy") & "# "
                DataHisto.Refresh
             End If
             Do While DataHisto.Recordset.EOF = False
    ProgElecT
    Soyez sympa, pensez -y
    Balises[CODE]...[/CODE]
    Balises[CODE=NomDuLangage]...[/CODE] quand vous mettez du code d'un autre langage que celui du forum ou vous postez.
    Le bouton en fin de discussion, quand vous avez obtenu l'aide attendue.
    ......... et pourquoi pas, pour remercier, un pour celui/ceux qui vous ont dépannés.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    avril 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2014
    Messages : 15
    Points : 8
    Points
    8

    Par défaut

    J ai du changer mes paramètres région du système avec les lignes de commandes que vous m'aviez faites.

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

Discussions similaires

  1. syntax error in number in query expression number and date in vb6
    Par siadli dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 23/02/2016, 09h29
  2. Réponses: 4
    Dernier message: 28/11/2008, 14h52
  3. Réponses: 5
    Dernier message: 13/07/2007, 14h51
  4. Réponses: 14
    Dernier message: 11/07/2006, 16h11
  5. Réponses: 3
    Dernier message: 27/03/2006, 14h00

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