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 :

Erreur de syntaxe sur RunSQL


Sujet :

VBA Access

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Erreur de syntaxe sur RunSQL
    Bonjour,

    Je cherche à exécuter dans une base Access Office Professional Plus 2010 version 14.0.7228.5001 une requête SQL.
    Je vous livre mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         DoCmd.RunSQL "TRANSFORM Count(Data.Commentaire) AS CompteDeCommentaireSELECT Data.Commentaire FROM Data WHERE (((DatePart('y', Now()) - DatePart('y', [Heure])) <= 10) And ((Data.Etat) = 'UNACK_ALM')) GROUP BY Data.Commentaire ORDER BY Format([Heure],'dd/mm') DESC PIVOT Format([Heure],'dd/mm');"
    J'ai en retour un message d'erreur "Erreur d'exécution '3143': Erreur de syntaxe dans l'instruction TRANSFORM"
    Quelqu'un a une idée? J'ai essayé plein de choses mais rien ne fonctionne ! Merci pour votre collaboration.

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 183
    Points : 5 515
    Points
    5 515
    Par défaut
    Bonjour,
    Simple faute de frappe?
    CompteDeCommentaireSELECT >> CompteDeCommentaire SELECT
    Cdt

  3. #3
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Merci Eric, il y avait effectivement une faute de frappe. Après avoir mis en pratique ton bon conseil, j'ai une nouvelle erreur:
    "Erreur d'exécution '2342': "Une action exécuter SQL nécessite un argument consistant en une instruction SQL."
    Je pense qu'il doit y avoir encore autre chose. Quelqu'un a une idée ?

  4. #4
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Gilles93, EricDgn,

    Un "DoCmd.RunSQL" demande une requête action seulement (Insert, Update etc...).

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Entendu et Merci. Je cherchais simplement à faire effectivement un tableau croisé. C'est vrai que c'est de la consultation. Quelqu'un peu me proposer qque chose? Je souhaite lacer une requête et lui passer un paramètre externe.
    Je crée donc une variable publique que je stocke dans le formulaire par lequel je lance une requête. Cette requête me génère un tableau croisé.
    Il s'avère impossible d'afficher mon formulaire car lorsque je le lance j'ai l'erreur: "L'expression SurOuverture entrée comme paramètre de type évènement est à l'origine d'une erreur. Le membre existe déjà dans un module objet dont le présent module est dérivé."

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Compare Database
    Public cN As ADODB.Connection
    Public Mon_Nb_Jours As Integer
    Public rs As ADODB.Recordset
    Private Sub Commande23_Click()
    ' Mon_Nb_Jours est la variable stockée dans le formulaire d'appel de la Commande23.
    ' Il est aussi dans la requête ci dessous "Nb alarme par type et par jour" sous la forme: [Formulaires]![Menu Général]![Mon_Nb_Jours]
        Mon_Nb_Jours = CInt(InputBox("Entrer le nombre de jour sur lesquel vous recherchez les alarmes", "Visualisation des alarmes", "10"))
        DoCmd.OpenQuery "Nb alarme par type et par jour"
    End Sub

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    Je souhaite lacer une requête et lui passer un paramètre externe.
    je n'ai pas tout compris mais ce que je sais c'est qu'il faut passer par un RecordSet pour récupérer les données d'une requête de type sélection:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim strSQL as string
    Dim oRst as DAO.Recordset
    Dim oDb as DAO.Database
    set oDb = Currentdb
    strSQL ="TRANSFORM Count(Data.Commentaire) AS CompteDeCommentaire SELECT Data.Commentaire FROM Data" _
     & " WHERE (((DatePart('y', Now()) - DatePart('y', [Heure])) <= 10) And ((Data.Etat) = 'UNACK_ALM'))" _
     & " AND Monchamp = " & Mavariable _     ' <========== pour utiliser une variable externe
     & " GROUP BY Data.Commentaire ORDER BY Format([Heure],'dd/mm') DESC PIVOT Format([Heure],'dd/mm');"
    orst = oDb.Openrecordset(strSQL)
    Do Until oRst.EOF
    ' ici je récupère les données de la requête
        Unevariable = orst.Fields("UnchampduRecordset")
        oRst.MoveNext		
    Loop
    J'espère que cela t'aidera
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre expert
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2012
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2012
    Messages : 1 869
    Points : 3 448
    Points
    3 448
    Par défaut
    Bonjour Gilles93,

    Entendu et Merci. Je cherchais simplement à faire effectivement un tableau croisé. C'est vrai que c'est de la consultation. Quelqu'un peu me proposer qque chose? Je souhaite lacer une requête et lui passer un paramètre externe.
    Voici une fonction qui répond a cette demande (a mettre dans un module ainsi tu peux réutiliser facilement):
    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
    Public Function fuRQ(strNom As String, strSQL As String)
    On Error GoTo err_fuRQ
     
        Dim db As DAO.Database: Set db = CurrentDb
        Dim qdf As DAO.QueryDef
     
        Set qdf = db.QueryDefs(strNom)                   'La requête existe et on l'affecte
        qdf.SQL = strSQL                                 'Choix du sql pour la requêt
        DoCmd.OpenQuery strNom                           'Affichage de la requête
        Set qdf = Nothing                                'Libère l'objet
        Set db = Nothing                                 'Idem
     
    Exit_fuRQ:
        Exit Function
    err_fuRQ:
        Select Case err.Number
            Case 3265                                       'Erreur levée quand la requête n'existe pas
                Set qdf = db.CreateQueryDef(strNom, strSQL) 'Création de la requête
                Application.RefreshDatabaseWindow           'Affichage dans onglet navigation
                DoCmd.OpenQuery strNom                      'Affichage de la requête
                Set qdf = Nothing                           'Libère l'objet
                Set db = Nothing                            'Idem
                Resume Exit_fuRQ
            Case Else
                MsgBox err.Description & ", " & err.Number
        End Select
    End Function
    Puis sur ton bouton Commande23:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Commande23_Click()
    ' Mon_Nb_Jours est la variable stockée dans le formulaire d'appel de la Commande23.
    ' Il est aussi dans la requête ci dessous "Nb alarme par type et par jour" sous la forme: [Formulaires]![Menu Général]![Mon_Nb_Jours]
        Mon_Nb_Jours = CInt(InputBox("Entrer le nombre de jour sur lesquel vous recherchez les alarmes", "Visualisation des alarmes", "10"))
        fuRQ "LeNomDeLaRequete", "Select leSQL désiré Where LeNombreDeJours = " & Mon_Nb_Jours
    End Sub
    Une bonne chose est de mettre en début de module:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Compare Database
    Option Explicit
    Pour le reste:
    Je crée donc une variable publique que je stocke dans le formulaire par lequel je lance une requête. Cette requête me génère un tableau croisé.
    Il s'avère impossible d'afficher mon formulaire car lorsque je le lance j'ai l'erreur: "L'expression SurOuverture entrée comme paramètre de type évènement est à l'origine d'une erreur. Le membre existe déjà dans un module objet dont le présent module est dérivé."
    Cela me fait penser a une déclaration en double. Les variables publiques doivent être déclarées une seule fois. En mode pas à pas tu devrais voir d'où vient le problème.

    Bonne journée
    Ce qui se conçoit bien s’énonce clairement et les mots pour le dire arrivent aisément. Nicolas Boileau
    Si tout est OK, n'oubliez pas de cliquer sur

  8. #8
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Merci Tee_Grandbois et Robert pour vos propositions. Je vais tenter la solution de Tee qui me semble peut-être plus simple, même si je ne comprend pas trop comment formuler la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unevariable = orst.Fields("UnchampduRecordset")
    Je vais tenter.... et vous tiens au courant. Merci encore !

  9. #9
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    J'ai donc essayé, mais sans succès!
    J'arrive bien à paramétrer la requête SQL sans problème, mais au lancement de la commande j'ai l'erreur: "Erreur de compilation: Utilisation incorrecte de la propriété" pointée sur la ligne 19. Je ne vois pas du tout non plus comment je peux libeller la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unevariable = oRst.Fields("UnchampduRecordset")
    Voici le code:
    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
    Private Sub Commande23_Click()
        Dim strSQL As String
        Dim oRst As DAO.Recordset
        Dim oDb As DAO.Database
        Set oDb = CurrentDb
        Mon_Nb_Jour = Val(InputBox("Entrer le nombre de jour sur lesquel vous recherchez les alarmes", "Visualisation des alarmes", "10"))
        strSQL = "TRANSFORM Count(Data.Commentaire) AS CompteDeCommentaire" _
        & " SELECT Data.Commentaire" _
        & " FROM Data" _
        & " WHERE (((Data.Commentaire)<>'') AND ((Val(Format([Heure],'hh')))>18 Or (Val(Format([Heure],'hh')))<8)" _
        & " AND ((Data.Etat)='UNACK_ALM') AND ((Data.Commentaire) Not Like 'SITE MONTSOURIS SYNTHESE*')" _
        & " AND ((Weekday([Heure]))>1 And (Weekday([Heure]))<7)" _
        & " AND ((DatePart('y',Now())-DatePart('y',[Heure]))<=" & Mon_Nb_Jour & ")) OR (((Data.Commentaire)<>'')" _
        & " AND ((Data.Etat)='UNACK_ALM') AND ((Data.Commentaire) Not Like 'SITE MONTSOURIS SYNTHESE*')" _
        & " AND ((Weekday([Heure]))=1 Or (Weekday([Heure]))=7)" _
        & " AND ((DatePart('y',Now())-DatePart('y',[Heure]))<=" & Mon_Nb_Jour & "))" _
        & " GROUP BY Data.Commentaire" _
        & " PIVOT Format([heure],'dd/mm');"
        oRst = oDb.OpenRecordset(strSQL)
    '    oDb.OpenRecordset (strSQL)
    Do Until oRst.EOF
    ' ici je récupère les données de la requête
        Unevariable = oRst.Fields("UnchampduRecordset")
        oRst.MoveNext
    Loop
     MsgBox (strSQL)
     
     
    End Sub
    Désolé de vous importuner à nouveau, si quelqu'un a une solution, je pense ne pas être loin de la fin...

    Merci encore

  10. #10
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Je vous livre la dernière version de mon code: j'arrive bien à créer l'objet Recordset, mais n'arrive pas à le visualiser.
    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
    Private Sub Commande23_Click()
        Dim strSQL As String
        Dim oRst As DAO.Recordset
        Dim oDb As DAO.Database
        Set oDb = CurrentDb
        Mon_Nb_Jour = Val(InputBox("Entrer le nombre de jour sur lesquel vous recherchez les alarmes", "Visualisation des alarmes", "10"))
        strSQL = "TRANSFORM Count(Data.Commentaire) AS CompteDeCommentaire" _
        & " SELECT Data.Commentaire" _
        & " FROM Data" _
        & " WHERE (((Data.Commentaire)<>'') AND ((Val(Format([Heure],'hh')))>18 Or (Val(Format([Heure],'hh')))<8)" _
        & " AND ((Data.Etat)='UNACK_ALM') AND ((Data.Commentaire) Not Like 'SITE MONTSOURIS SYNTHESE*')" _
        & " AND ((Weekday([Heure]))>1 And (Weekday([Heure]))<7)" _
        & " AND ((DatePart('y',Now())-DatePart('y',[Heure]))<=" & Mon_Nb_Jour & ")) OR (((Data.Commentaire)<>'')" _
        & " AND ((Data.Etat)='UNACK_ALM') AND ((Data.Commentaire) Not Like 'SITE MONTSOURIS SYNTHESE*')" _
        & " AND ((Weekday([Heure]))=1 Or (Weekday([Heure]))=7)" _
        & " AND ((DatePart('y',Now())-DatePart('y',[Heure]))<=" & Mon_Nb_Jour & "))" _
        & " GROUP BY Data.Commentaire" _
        & " PIVOT Format([heure],'dd/mm');"
        Set oRst = oDb.OpenRecordset(strSQL) ' dbOpenSnapshot)
    n = 0
    Do Until oRst.EOF
    n = n + 1
        MCommentaire = oRst.Fields("Commentaire")
    '    MsgBox (MCommentaire)
        oRst.MoveNext
    Loop
     MsgBox (strSQL)
    ' MsgBox (n)
    End Sub
    Quelqu'un a une idée, merci pour votre aide !

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    Je vous livre la dernière version de mon code: j'arrive bien à créer l'objet Recordset, mais n'arrive pas à le visualiser.
    C'est pour visualiser dans un champ du formulaire ? Si oui, quel est le nom du champ ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Oui Tee, c'est pour visualiser tous les champs du recordSet, sachant qu'un seul a un nom fixe, "Commentaire" et les autres champs ont une entête variante suivant le paramètre "Mon_Nb_Jour" , je peux aller de 2 à n colonnes
    Un exemple de ce que je dois avoir:

    Nom : Résutat.jpg
Affichages : 507
Taille : 86,4 Ko

    Merci pour ton aide Tee !!!

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonsoir,
    c'est pour visualiser tous les champs du recordSet, sachant qu'un seul a un nom fixe
    donc on laisse tomber le RecordSet.
    Il faut ajouter dans ton formulaire un contrôle de type sous-formulaire/sous-état, c'est cet icône:

    Nom : frm_SousForm.JPG
Affichages : 503
Taille : 55,8 Ko

    il va te créer un objet nommé Fille0, tu peux laisser ce nom et le dimensionner comme tu le souhaites.
    Tu modifies ensuite ton code 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Private Sub Commande23_Click()
    Dim strSQL As String
    Dim strNomRqTemp As String
    Dim Qdf As QueryDef
    Dim oDb As DAO.Database
     
     On Error GoTo GestErr
     
        Set oDb = CurrentDb
        Mon_Nb_Jour = Val(InputBox("Entrer le nombre de jour sur lesquel vous recherchez les alarmes", "Visualisation des alarmes", "10"))
     
        strSQL = "TRANSFORM Count(Data.Commentaire) AS CompteDeCommentaire" _
        & " SELECT Data.Commentaire" _
        & " FROM Data" _
        & " WHERE (((Data.Commentaire)<>'') AND ((Val(Format([Heure],'hh')))>18 Or (Val(Format([Heure],'hh')))<8)" _
        & " AND ((Data.Etat)='UNACK_ALM') AND ((Data.Commentaire) Not Like 'SITE MONTSOURIS SYNTHESE*')" _
        & " AND ((Weekday([Heure]))>1 And (Weekday([Heure]))<7)" _
        & " AND ((DatePart('y',Now())-DatePart('y',[Heure]))<=" & Mon_Nb_Jour & ")) OR (((Data.Commentaire)<>'')" _
        & " AND ((Data.Etat)='UNACK_ALM') AND ((Data.Commentaire) Not Like 'SITE MONTSOURIS SYNTHESE*')" _
        & " AND ((Weekday([Heure]))=1 Or (Weekday([Heure]))=7)" _
        & " AND ((DatePart('y',Now())-DatePart('y',[Heure]))<=" & Mon_Nb_Jour & "))" _
        & " GROUP BY Data.Commentaire" _
        & " PIVOT Format([heure],'dd/mm');"
     
    'Création temporaire de la requête
       strNomRqTemp = "RQ_TEMPORAIRE"
     
       Set Qdf = oDb.CreateQueryDef(strNomRqTemp, strSQL)
       Me.Fille0.SourceObject = "Requête." & strNomRqTemp
     
    Sortie:
    Exit Sub
     
    GestErr:
    Select Case Err.Number
    Case 3012   ' la requête existe déjà
        oDb.QueryDefs.Delete strNomRqTemp
        Resume  ' on retourne à l'instruction qui a provoqué l'erreur
    Case Else
        MsgBox "Erreur " & Err.Number & " - " & Err.DESCRIPTION
        Resume Sortie	
    End Select
     
    End Sub
    maintenant, tu peux voir le résultat de ta requête dans ton sous-formulaire
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Merci Tee, je vois effectivement comme ça le résultat de ma requête. Mais y a t il moyen d'envoyer le résultat dans une fenêtre indépendante comme ce que j'ai imagé au cours de la discution, parce qu'un sous formulaire est moins commode à gérer. J'ai essayé QueryDef ou des chose avec view mais sans succès!!!
    Merci Tee, pour ta patience et tes conseils

  15. #15
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour Gilles93,
    et merci pour tes encouragements.
    Oui, la méthode fonctionne aussi avec un formulaire indépendant. Le code est juste légèrement différent:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' On ouvre le formulaire s'il n'est pas déjà chargé
        If Not CurrentProject.AllForms("FormulaireIndépendant").IsLoaded Then _
            DoCmd.OpenForm "FormulaireIndépendant"
        Forms!FormulaireIndépendant.Fille0.SourceObject = "Requête." & strNomRqTemp
    et bien sur, le code reste dans le formulaire appelant ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  16. #16
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Désolé Tee, mais je crains m'être mal fait comprendre.
    Je ne souhaite pas de sous formulaire, qu'il qu'il soit dans dans le formulaire appelant le code SQL ou inclus dans un autre formulaire indépendant.
    J'aimerai que mes résultats apparaissent dans un feuille de réponse dynamique, sachant que suivant la variable 'Mon_Nb_jour' on a un nombre de lignes variable et un nombre de colonnes variable également et une entête de colonnes variable aussi suivant l'interrogation.
    Je crois qu'il va falloir revenir à la méthode OpenRecordset avec un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    set bds = CurrentDb
    set rst = bds.OpenRecordset(strSQL)
    Do While (Not rst.EOF)
     
    .
    .
    rst.moveNext
    Loop
    Tout ce qui a été fait n'a pas été vain mais si je m'expliqias mieux nous y arriverions plus facilement.
    Merci encore pour tes propositions. Je ne sais comment extraire les entêtes de colonnes...

  17. #17
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    veux-tu que je t'envoie une base de test pour voir par toi-même le résultat ?
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  18. #18
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Oui je veux bien , ça m'aideras sûrement!! Merci

  19. #19
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    voici l'objet:
    ExempleFeuilleDynamique.rar

    je pense que cela va intéresser aussi d'autres personnes qui ont des soucis avec l'affichage des requêtes croisées dans les IHM

    [EDIT] je rajoute un nouvelle version avec la base au format .mdb
    ExempleFeuilleDynamique.zip
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  20. #20
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut
    Merciiiiii encore Tee . Je crois qu'avec ça je devrais y arriver. Je fais passer le code dès que j'ai la solution. L'important c'est que ça puisse aider les autres. Un peu OQP cette semaine, je répond avant lundi prochain mais pas sûr !!!! Bravo Tee.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Erreur de syntaxe sur requête
    Par winnie82 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 21/03/2006, 13h51
  2. [MySQL] Erreur de syntaxe sur ma requête SELECT
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 08/03/2006, 11h50
  3. [MySQL] Erreurs de syntaxe sur requêtes DELETE
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2006, 15h53
  4. Erreur de syntax sur JOIN
    Par helje dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/03/2006, 17h36
  5. Erreur de syntaxe sur la création d'une vue.
    Par cgougeon dans le forum Installation
    Réponses: 3
    Dernier message: 09/09/2005, 11h00

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