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 :

utilisation du sql et affichage des résultats dans un formulaire


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut utilisation du sql et affichage des résultats dans un formulaire
    Bonjour,

    Voila je vous expose mon probleme
    En fait j'aimerais que dans un formulaire, lorsque je rentre une certaine valeur dans un champs, que l'on ai tous les enregistrements concernés par cette valeur qui apparaissent.
    Le truc c'est que je tombe sur l'erreur suivante:"objet non trouvé dans la collection"
    voici mon 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
     
    Private Sub Modifiable19_AfterUpdate()
    Dim rs As DAO.Recordset
    Dim sql As String
     
    sql = "select * from Commandes where [date de livraison]=" & Me.Modifiable19
    Set rs = CurrentDb.OpenRecordset(sql)
     
     Me.Numero_commande.Value = rs.Fields(Numero_commande)
     Me.date_commande = rs.Fields(date_commande)
     Me.date_de_livraison = rs.Fields(date_de_livraison)
     Me.Etat = rs.Fields(Etat)
     
    End Sub
    Amicalement Scons

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 628
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 628
    Points : 34 333
    Points
    34 333
    Par défaut
    salut,
    à moins que toutes les variables existent, il faut que tu les transformes en chaines de caractère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Me.Numero_commande.Value = rs.Fields("Numero_commande")
     Me.date_commande = rs.Fields("date_commande")
     Me.date_de_livraison = rs.Fields("date_de_livraison")
     Me.Etat = rs.Fields("Etat")
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut
    Merci jpcheck.
    Et ben je me sent bete d'avoir pas vu que j'vais pas mit les guillemets, d'autant plus que j'utilise cette syntaxe dans d'autres applications.
    Je te remercie de m'avoir eclairé l'esprit.

    Cependant je bute sur un autre probleme.
    "impossbile d'attribuer une valeur a cette objet"

    en fait je cherche a afficher les resultat de la requete dans un formulaire.
    peut etre que je ne procede pas comme il faut.
    Amicalement Scons

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut
    quel element de formulaire faut il utiliser pour afficher tous les resultats de ma requete sql.
    En fait dans l'etat actuel du formulaire je dispose d'une section details possedant chacun des champs de ma table "commande" (ce ne sont pas des champs indepedants.
    C'est d'ailleurs probablement la raison pour laquelle je ne peut pas attribuer de valeur a ces objets.

    voila si quelqu'un pouvait me donner un ou deux elements de reponses.
    au besoin je peut poster des screenshots de mon formulaire.

    Voila merci
    Amicalement Scons

  5. #5
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 903
    Points
    55 903
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Tu n'as pas besoin de DAO

    Lorsque tu as composé ta requête dans la chaine SQL, tu passes celle-ci en propriété RecordSource de ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Modifiable19_AfterUpdate()
        Dim SQL As String
     
        SQL = "select * from commandes where [date de livraison] = #" & CDate(Modifiable19) & "#"
        Me.RecordSource = SQL
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut
    Pierre ta solution fonctionne cependant cen'est pas ce que je veu faire.
    S i je vais selon ta methode a cahque ouverture du formulaire je tombe sur une boite de dialogue me demandant la valeur de mon parametre "modifiable19"
    Si je le rentre j'ai effectivement la liste des commandes, selon ce critere, qui apparait.

    Moi j'aimerais en fait que mon formulaire s'ouvre et m'affiche toutes les commandes de ma base (Pour ça je n'ai pas de prob)
    Une foi mon formulaire ouvert je voudrais faire une selection des commandes suivant la valeur entrée dans la zone de texte "modifiable 19"
    Mais la j'ai quelques souci.

    j'ai essayé d'integrer une procedure evenementielle qui lance ma requete de selection quand j'appuis sur un bouton.
    En fait lorsque que je clique sur ce bouton je passe ma requete de selection en parametre du Recordsource de mon formulaire.
    Cependant rien ne s'affiche.
    Ma liste avec toutes mes commandes disparait et mon champs "modifiable19" se remet a blanc.
    Amicalement Scons

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut
    J'ai regardé sur differents forums que j'ai pu trouvé et apparement ma methode de modifier le "recordsource" d'un formulaire via un bouton serait correcte.
    Cependant ça ne fonctionne pas chez moi.
    peut etre s'agit'il d'une erreur de syntaxe dans la requete.
    la voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Commande39_Click()
     
    [Form_rappel des commandes].RecordSource = "SELECT Commandes.*, magasins.* FROM magasins LEFT JOIN Commandes ON magasins.[Code magasin] = Commandes.[code magasins] WHERE Commandes.[date de livraison] = " & Me.Modifiable19
    [Form_rappel des commandes].Refresh
     
     
    End Sub
    pour moi ça me parait correcte mais bon un oeil avec plus de recul trouvera peut etre une erreur
    Amicalement Scons

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut
    bon je viens de trouver d'ou vient l'erreur.
    En fait l'erreur porte sur le fait que "modifiable19" est une date.
    Si je fais la meme requete mais avec un autre champs de type numerique (par exemple) ca fonctionne.
    Donc la syntaxe pour une requete avec une date comme variable doit etre sensiblement differente. faut il mettre quelques choses d'autres que le "&" devant "modifiable19"
    Amicalement Scons

  9. #9
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 903
    Points
    55 903
    Billets dans le blog
    131
    Par défaut
    Dans mon exemple, je mentionnais un signe # qui permet d'encadrer une date...

    Cela étant, les dates posent problème dans la mesure ou elles sont parfois interprétées "à l'envers" (jj/mm/aa => mm/jj/aa). Donc je préfère en général convertir en long, et à ce moment, il n'y a plus de problème d'inversion.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    153
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 153
    Points : 86
    Points
    86
    Par défaut
    Merci Pierre
    En fait j'avais pas tilté que tu avais changé la syntaxe pour englober une date.
    J'ai donc utilisé cette syntaxe et la plus de probleme j'arrive enfin au resultat souhaité.
    Un grand merci a toi.
    Amicalement Scons

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 21/09/2011, 15h48
  2. [Débutant] optimiser l'affichage des résultats dans un fichier txt
    Par Sakkou dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/01/2011, 11h29
  3. erreur lors de l'affichage des résultat dans des fichier
    Par bouabid_hanen dans le forum Fortran
    Réponses: 3
    Dernier message: 19/11/2010, 09h34
  4. Réponses: 1
    Dernier message: 28/05/2008, 23h03
  5. Affichage des résultats dans une fenêtre
    Par yoyo69 dans le forum MATLAB
    Réponses: 2
    Dernier message: 10/12/2007, 09h06

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