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

VBA Access Discussion :

Recordset qui ne fonctionne pas


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 82
    Points : 52
    Points
    52
    Par défaut Recordset qui ne fonctionne pas
    Bonjour,

    j'essaie depuis pas mal de temps de résoudre ce problème mais je n'y arrive pas. Alors j'en appel à votre aide.
    Voici tout d'abord le code qui pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim oDB As DAO.Database
    Set oDB = CurrentDb
    Dim strSQL As String
    strSQL = "SELECT [Composant].[Type], [ContenuInventaire].[Composant], [ModificationMarque].[SB], [ModificationMarque].[StatusSbOut], [Composant].[StatusTL], [ContenuInventaire].[Qte]"
    strSQL = strSQL & " FROM ((Chantier INNER JOIN Inventaire ON [Chantier].[Inventaire]=[Inventaire].[Numero]) INNER JOIN (Composant INNER JOIN ContenuInventaire ON [Composant].[PN]=[ContenuInventaire].[Composant]) ON [Inventaire].[Numero]=[ContenuInventaire].[Inventaire]) INNER JOIN ModificationMarque ON [Inventaire].[Numero]=[ModificationMarque].[Inventaire]"
    strSQL = strSQL & " WHERE (((ModificationMarque.SB)=[ContenuInventaire].[SB]) AND ((ContenuInventaire.Qte)>0) AND ((ContenuInventaire.Inventaire) In (SELECT Chantier.Inventaire FROM Chantier WHERE (Chantier.ESN=" & Chr(34) & [Forms]![Prepa_Choix_Action]![Text_ESN] & Chr(34) & " AND Chantier.DateDebut=" & Chr(34) & [Forms]![Prepa_Choix_Action]![Text_Date] & Chr(34) & "))))"
    strSQL = strSQL & " ORDER BY [ContenuInventaire].[Composant];"
    Set oRstDate = oDB.OpenRecordset(strSQL, dbOpenDynaset)
    la ligne qui plante est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set oRstDate = oDB.OpenRecordset(strSQL, dbOpenDynaset)
    Message d'erreur:
    Type de données incompatible dans l'expression du critère

    Pourtant si je suprrime dans l'instruction SQL cette partie a la fin du where :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " AND Chantier.DateDebut=" & Chr(34) & [Forms]![Prepa_Choix_Action]![Text_Date] & Chr(34) &
    Cela fonctionne mais biensur ca ne me convient pas parce que la cela marche uniquement lorsque je n'ai qu'un seul chantier et pas qu'en j'en ai plusieurs.
    Je me demande si cela ne vient pas de la date.
    Pourtant quand je fais un Debug.print du sql cela me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT [Composant].[Type], [ContenuInventaire].[Composant], [ModificationMarque].[SB], [ModificationMarque].[StatusSbOut], [Composant].[StatusTL], [ContenuInventaire].[Qte] FROM ((Chantier INNER JOIN Inventaire ON [Chantier].[Inventaire]=[Inventaire].[Numero]) INNER JOIN (Composant INNER JOIN ContenuInventaire ON [Composant].[PN]=[ContenuInventaire].[Composant]) ON [Inventaire].[Numero]=[ContenuInventaire].[Inventaire]) INNER JOIN ModificationMarque ON [Inventaire].[Numero]=[ModificationMarque].[Inventaire] WHERE (((ModificationMarque.SB)=[ContenuInventaire].[SB]) AND ((ContenuInventaire.Qte)>0) AND ((ContenuInventaire.Inventaire) In (SELECT Chantier.Inventaire FROM Chantier WHERE (Chantier.ESN="444444" AND Chantier.DateDebut="26/05/2007")))) ORDER BY [ContenuInventaire].[Composant];

    Donc comme on peut le voir cela fonctionne bien car l'ESN et la date sont bien récupéré.

    J'avoue que la j'ai du mal a voir d'ou cela peut provenir.

    Merci d'avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Dans cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " AND Chantier.DateDebut=" & Chr(34) & [Forms]![Prepa_Choix_Action]![Text_Date] & Chr(34) &
    Tu doubles les "", hors c'est du texte dans ton paramètre, essaye
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " AND Chantier.DateDebut='" & [Forms]![Prepa_Choix_Action]![Text_Date] & "'
    Starec

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta réponse Starec.
    Alors j'ai essayé ce que tu m'as dit et j'ai toujours la meme erreur.

    dans le debug.print
    j'ai cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT [Composant].[Type], [ContenuInventaire].[Composant], [ModificationMarque].[SB], [ModificationMarque].[StatusSbOut], [Composant].[StatusTL], [ContenuInventaire].[Qte] FROM ((Chantier INNER JOIN Inventaire ON [Chantier].[Inventaire]=[Inventaire].[Numero]) INNER JOIN (Composant INNER JOIN ContenuInventaire ON [Composant].[PN]=[ContenuInventaire].[Composant]) ON [Inventaire].[Numero]=[ContenuInventaire].[Inventaire]) INNER JOIN ModificationMarque ON [Inventaire].[Numero]=[ModificationMarque].[Inventaire] WHERE (((ModificationMarque.SB)=[ContenuInventaire].[SB]) AND ((ContenuInventaire.Qte)>0) AND ((ContenuInventaire.Inventaire) In (SELECT Chantier.Inventaire FROM Chantier WHERE (Chantier.ESN="444444" AND Chantier.DateDebut='26/05/2007')))) ORDER BY [ContenuInventaire].[Composant];
    Les " qui entourent la date ont été remplacés par des '

  4. #4
    Invité
    Invité(e)
    Par défaut
    Ok

    J'avais pas tout vu.
    Pour les dates ils faut utiliser des # à la place de '

    Starec

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 82
    Points : 52
    Points
    52
    Par défaut
    Youpiiiiiiiiii !

    Ca marche ! Merci Starec

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

Discussions similaires

  1. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 17h10
  2. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 13h26
  3. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 20h33
  4. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 11h04
  5. [VB6] générer un recordset qui n'est pas lier à un bdd
    Par damyrid dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 05/06/2003, 18h48

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