Critères de Choix pour tri sur un Formulaire - VB/VBA/VBS - Programmation
Marsh Posté le 05-05-2010 à 15:58:38
Pourquoi ouvrir un nouveau topic ?
Pour le critere dans la requete, tu es obligé de tester ce que contient TestChamp5 et Test2Champ5... Tu peux pas passer autrement...
Genre, Vraifaux(TestChamp5 = ">";>[Formulaire]![Choix de Formulaire]![TonChampDate];Vraifaux(TestChamp5 = "<";<[Formulaire]![Choix de Formulaire]![TonChampDate];Vraifaux(TestChamp5 = ">=";>=[Formulaire]![Choix de Formulaire]![TonChampDate]))) etc.
Le mieux, est donc de construire ta requete en VB, comme ca tu peux passer ce que contient tes pioches (du texte) directement en operateur (> ; >= etc.)
Exemple :
Soit une table [Table] avec deux champs :
[Num] et [Date]
Un formulaire : Formulaire1
Une pioche comme toi avec des operateurs dedans : Operateur1
Une textbox comme toi où on saisit une date : SDate1
Ensuite tu as deux possibilités, soit tu créés une table du resultat, soit tu créés directement une requete (qui sera effacé a chaque fois, logique)
Pour créer la requete :
Code :
|
Pour créer une table, autant passer directement par une requete ajout :
Code :
|
Marsh Posté le 06-05-2010 à 09:53:24
Salut,
Déja merci pour ta réponse ( j'ai crée un nouveau topic parce que c'est un problème différent de l'autre, mais tu as raison la prochaine fois je mettrais à la suite ^^ ),
Alors je l'ai testé ( méthode de la création d'une Table de résultat du Test )
Code :
|
J'ai pas compris pourquoi tu as mis "Table.Num", enfin je pense que c'est ds le cas où je test sur plusieurs Champs de ma Table non ? Dans le doute je l'ai enlevé,
Sinon, lorsque je clique sur mon Bouton après avoir rentré par exemple ">" dans TestChamp5 et "01/11/2009" dans ValChamp5, rien ne se passe, la requête qui était créée auparavant "Requête1" se supprime donc c'est normal c'est le code, mais après elle ne se recréée pas =S
Si tu as une idée du pourquoi ?
Marsh Posté le 06-05-2010 à 10:25:27
Deja ce que je peux voir c'est que la syntaxe de ta clause Where n'est pas bonne
"WHERE (((Table0.Date)" & Forms("Choix de Visualisation" )("TestChamp5") & "[Formulaires]![Choix de Visualisation]![ValChamp5]));"
Essaie deja comme cela.
Ensuite, tu as un On Error Resume Next donc tu ne peux pas voir où se situe l'erreur.
Tiens moi au parfum.
Marsh Posté le 06-05-2010 à 10:51:51
J'ai modifié la syntaxe, et j'ai mis "On Error go to suite
[ .... ]
suite : Err.Description
Exit Sub"
Et l'erreur affichée est la suivante : "La Requête doit être construite à partir d'au moins une Table ou une requête Source", il supprime bien la table donc l'erreur doit se produire au moment où il la recrée,
Pourtant l'instruction "CurrentDb.CreateQueryDef "Requête1", InstrSQL" devrait lui fournir le texte SQL qu'on a défini et qui contient une Table Source nan ?
Petite question en passant, la table resultat "TableResult" doit déja être crée au préalable ? ( Edit : Dans le doute j'ai crée "TableResult", il m'affiche la même erreur )
Marsh Posté le 06-05-2010 à 11:16:02
C'est ta syntaxe.
Essaie de faire un Debug.Print InstrSQL et tu verras par exemple que
Code :
|
te donne FROM Table0WHERE
Il manque donc un espace entre Table0 et WHERE
Ensuite moi je créeais la requete pour te montrer ce qu'elle faisait... Pour que tu vois a quoi ressemble requete1
Mais ca ne sert a rien de se taper la commande SQL pour créer une requete1 pour finalement la lancer...
Autant lancer directement la commande SQL...!
Code :
|
Edit :
En image, ma table0 contient les dates du 01/05/2010 au 31/05/2010, le formulaire demande les dates <06/05/2010 et je me retrouve avec ca :
Marsh Posté le 06-05-2010 à 11:46:43
Ha c'est nickel ça fonctionne ! Merci beaucoup pour ton aide !
Je me demandais aussi parallèlement à ça si c'est possible de faire en sorte que l'instruction dans la requête s'adapte en fonction de la table Sélectionnée ( dans la Liste Déroulante de Tables ), je sais pas si je m'exprime bien, par exemple là ça fonctionne pour la Table0 que j'ai sélectionné, mais si je change de table et que je selectionne Table1, la requête m'affichera toujours dans TableResult les résultats pour la Table0.
Et de manière général, là je parle pour tout ce qui est "Date" dans mon Formulaire mais ma question se pose également pour toutes les autres listes déroulantes que j'ai ( pour Contact, la liste déroulante affiche tt les contacts, mais pareille si je change de table sélectionnée la liste m'affichera toujours les contacts de Table0, etc.. ), je me demandais donc s'il y a une manière de procéder là dessus..
Tu as une idée ?
Marsh Posté le 06-05-2010 à 14:08:45
Euh... It's a joke ?
Tu as tous les éléments en main là pour faire ce que tu veux... Si tu n'y arrives pas c'est que tu n'as pas compris ce que faisait "InstrSQL ="
Explication :
InstrSQL = "SELECT Table0.Date INTO TableResult " & _
"FROM Table0 " & _
"WHERE (((Table0.Date)" & Forms("Choix de Visualisation" )("TestChamp5" ) & "[Formulaires]![Choix de Visualisation]![ValChamp5]));"
Ce qui apparait en rouge permet de sortir de la syntaxe de la requete pour y mettre une valeur. Mais une requete sql ce n'est ni plus ni moins qu'une chaine (de texte)
Par exemple imaginons une chaine :
Chaine = "Toto est la bas"
Sur un formulaire nommé "formulaire1" tu as controle nommé "Textbox" qui contient un prénom que tu veux changer.
Pour changer ce que retourne ta chaine il suffit de faire
Chaine = Forms("formulaire1" )("Textbox" ) & " est la bas"
C'est pareil avec la chaine de la requete. Normalement la seconde ligne devrait etre
"WHERE (((Table0.Date) < [Formulaires]![Choix de Visualisation]![ValChamp5]));"
mais comme tu veux passer en parametre les opérateurs, on remplace "<" par :
Forms("Choix de Visualisation" )("TestChamp5" )
Pour t'en convaincre, créé une requete avec l'editeur de requete d'access, et tu vas en mode SQL
Donc pour passer en parametre le nom de ta table il suffit juste de changer la chaine "table0" par un parametre, en l'occurence un controle de ton formulaire.
Ce qui donnerait :
InstrSQL = "SELECT " & Forms("Choix de Visualisation" )("NomDeTonChamp" ) & ".Date INTO TableResult " & _
"FROM " & Forms("Choix de Visualisation" )("NomDeTonChamp" ) & " " & _
"WHERE (((" & Forms("Choix de Visualisation" )("NomDeTonChamp" ) & ".Date)" & Forms("Choix de Visualisation" )("TestChamp5" ) & "[Formulaires]![Choix de Visualisation]![ValChamp5]));"
En bleu, on remplace donc Table0 par & Forms("Choix de Visualisation" )("NomDeTonChamp" ) &
Et pour ca, le mieux, c'est Notepad
Marsh Posté le 06-05-2010 à 14:15:26
Et c'est pareil pour tout. L'ordre de tri (ORDER BY), renvoi de boolen etc.
Logiquement si tu as compris ce que j'ai mis en haut, tu devrais pouvoir meme passer le nom de ton formulaire en parametre, ainsi que le nom du ou des controles.
Ce qui fait que pour tout tes traitements, une seule fonction avec une chaine SQl suffit.
Marsh Posté le 06-05-2010 à 14:23:36
c'est aussi simple que ça ? j'y avais pas pensé j'avais essayé de faire ça mais j'avais mis quelque chose du genre "SELECT [Formulaire]![Choix de Visualisation]![ListeTable].Date" ou d'autres variantes dans le genre mais ça fonctionnait pas évidemment ^^", ne connaissant pas les syntaxes c'était pas évident, mais maintenant oui j'ai compris, j'ai déja commencé à appliquer cette méthode et cette logique pour tout le reste, je posterais sur ce Topic si je rencontre une difficulté.
Merci beaucoup pour ton aide tu m'as vraiment bien fait avancer =)
Marsh Posté le 06-05-2010 à 16:00:32
J'ai un petit soucis, c'est pas en rapport avec le SQL, le code fonctionne très bien si ma Table se nomme genre "Table0" mais, c'est dans mon formulaire "Importation de Fichier" avec le Bouton que j'ai crée qui importe des Fichiers Excel :
Code :
|
A Chaque importation le Fichier à un nom différent du style "Table_06/05/2010 15:20" ce qui me permet d'en importer indéfiniement sans que la nouvelle Table importée s'ajoute aux enregistrements de la Table précedente. Le problème c'est qu'avec un nom comme celà le code ne marche plus il me met qu'il y a une erreur ds la clause FROM alors qu'avec Table0 il n'y a pas de soucis, c'est à cause des caractères "_ / :" ?
Si oui, alors il ne faut plus que j'utilise cette méthode pour pouvoir importer plusieurs tables distinctement et du coup j'avais pensé à quelque chose avec une boucle For, une variable I et ça ferait du style ""Table" & I" avec I qui varierait de 0 à je sais pas combien, autant qu'il y a d'importation quoi et qui s'incrémenterait à chaque fois, mais encore une fois la syntaxe ET la mise en forme (oui parce que j'ai qd même arpenté l'aide access voir comment la boucle For fonctionne mais bon ^^" ) me font défauts donc je n'ai pas reussi...
Bisarrement je sens que la solution est très conne mais je suis vraiment à la masse là dedans..
Peux-tu m'aider stp ?
Marsh Posté le 06-05-2010 à 16:35:40
Créé une requete avec l'editeur de requete d'access.
Tu ajoutes ta table "Table_06/05/2010 15:20", tu mets un champ pour affichage.
Tu bascule en mode sql et la tu te rends compte qu'il l'ecrit comme ca :
SELECT [Table_06/05/2010 15:20].Date
FROM [Table_06/05/2010 15:20];
Tu n'as donc qu'a rajouter des crochets de part et d'autre de ta valeur.
Ce qui donnerait pour la 1ere ligne :
InstrSQL = "SELECT [" & Forms("Choix de Visualisation" )("NomDeTonChamp" ) & "].Date INTO TableResult " & _
Tu devrais vraiment regarder comment fait Access pour ecrire en SQL avec l'editeur de requete... Parceque la tu te prends la tete sur des trucs que l'editeur de requete te montre tres tres facilement
Marsh Posté le 07-05-2010 à 10:12:25
Oui encore une fois c'était très simple =s je te remercie, voila le code final sur le Bouton :
Code :
|
Par contre c'est vraiment lourd au niveau de la syntaxe entre le taper sur les procédures VBA et dans les requêtes, en faisant des copiés collés de ce que j'ai mis ds le code VBA dans les lignes SQL des requêtes ( et en enlevant bien sur tt les trucs inadequate genre les "" au début et fin les & _ etc.. ) il me met des erreurs de syntaxe... alors par exemple là pour ma liste déroulante des Contacts avant j'avais mis ça
"SELECT DISTINCT Table0.Contact FROM Table0;" pas de soucis, je mets ça "SELECT DISTINCT [" & Forms("Choix de Visualisation" )("ListeTable" ) & "].Contact FROM [" & Forms("Choix de Visualisation" )("ListeTable" ) & "];", il me dit que l'objet est introuvable, je rajoute des guillemets j'en enlève je test tout et pourtant ça fonctionne pas, il rajoute du coup "AS Expr1" devant la ligne enfin c'est vraiment prise de tête...
J'ai également essayer de passer par du code VBA :
Code :
|
Il m'affiche : "l'action ExecuterSQL nécessite un argument consistant en une instruction SQL" Mais ça fonctionne quand même oO, j'ai essayé de mettre "DoCmd.SetWarnings False" juste avant il me l'affiche encore..
Edit : J'ai mis "On Error Resume Next" il n'y a plus le message donc a priori c'est bon ^^
Marsh Posté le 07-05-2010 à 11:18:22
C'est pas parceque tu n'as plus le message que ca fonctionne hein...
Et normal dans l'instruction SQL du generateur de requete, ca ne se construit pas comme ca...
Parcontre ton InstrSQL, a vue de nez a l'air d'etre bon...
Essaie de faire un Debug.Print InstrSQL juste apres la definition de InstrSQL pour voir ce que renvoi la chaine exactement...
Marsh Posté le 10-05-2010 à 10:18:28
Bonjour,
Il me met l'erreur pour chaque instrSQL, je te mets la chaine exact : "SELECT DISTINCT [Table0].N°, [Table0].Contact FROM [Table0] WHERE (((Table0.Contact) = [Formulaires]![Choix de Visualisation]![TestChamp2]));"
Donc à priori il n'y a pas l'air d'avoir d'erreurs mais bon, ( j'ai pas utiliser Debug.Print InstrSQL il ne m'affichait rien j'ai mis MsgBox InstrSQL ), mais bon s'il me fait quand même ce que je veux c'est pas bien grave nan ?
A part ça, je me demandais si tu connaissais pas un moyen de créer un Bouton qui, sur clique, permettrait d'Enregistrer la TableResult sur le PC dans le format au choix ( Excel ou Texte ) ?
(Edit : Je suis aller voir ça : http://access.developpez.com/faq/? [...] oitEnregSs mais le code est compliqué je sais pas comment le faire fonctionner =S, il m'ouvre la fenêtre d'enregistrement ok mais je ne sais pas quoi modifier pour qu'il enregistre TableResult au format ".xls" par exemple.. )
Marsh Posté le 10-05-2010 à 11:56:20
Hello
Alors déjà [Table0].N° ca va pas le faire. Le "°" ne passe pas. Il faudrait [Table0].[N°] ou utiliser des symboles autorisés en SQL. l'underscore etc.
Pour exporter en XLS c'est pas bien compliqué en utilisant la commande :
DoCmd.TransferSpreadsheet
Apres tout depend de ce que tu veux, genre tu cliques sur un bouton, pouf ta table est directement mise dans un dossier defini.
Ou alors si tu veux qu'une boite de dialogue s'ouvre pour que tu selectionnes où mettre le fichier, quel nom lui donner etc. Et là c'est le lien que tu as donné.
Mais si tu connais le nom du fichier et son chemin, sans avoir a le passer en parametre, le DoCmd.TransferSpreadsheet devrait te suffire.
Exemple pour transferer en Excel, sous C:\Toto.xls la table TableResult
DoCmd.TransferSpreadsheet acExport, 8, "TableResult" , "C:\Toto.xls", True, ""
Marsh Posté le 10-05-2010 à 13:38:08
Ok c'est bon j'ai effectué les modifications par rapport au caractère inutilisable, merci pour la remarque.
Après j'avais pensé aussi à faire un export via la commande TransfertSpreedSheat, c'est le moyen le + simple et le + rapide,
Cependant, c'est quand même + interactif de pouvoir choisir soi-même sa destination etc.. c pour ça que le code du site m'interesse particulièrement, j'aurais aimé comprendre ce code, bon j'ai copié collé le code du haut dans un module, et je suppose que la dernière ligne "msgbox ....." c'est à mettre par exemple sur Evenement "clique" du bouton, mais je vois pas quoi modifier pour qu'il fasse ce que je veux en particulier :
"MsgBox EnregistrerUnFichier(Me.hwnd, "Enrégistrer sous", "TableResult.xls" ???, "C:\" )" et pourquoi mettre MsgBox, qd je fais ça, il ouvre la Fênetre de Navigation, je choisis le dossier où l'enregistrer ( en nom par défaut il y a donc TableResult et en format il y a "Tous (*.*)" ), et quand j'appuie sur Enregistrer, bah il ya le MsgBox qui affiche le Chemin du fichier et rien ne se passe, le fichier n'a pas été enregistré, je suppose que c'est normal le code doit faire ça, mais on doit pouvoir ajouter quelque chose ou modifier qlq chose pour que ça l'enregistre nan ?
Marsh Posté le 10-05-2010 à 14:08:00
Tu n'as pas besoin d'un msgbox, puisque le code deja lui ouvre la boite "enregistrer sous", le msgbox, ici, te permet de voir le chemin et le nom de fichier que tu viens de créer.
Il te suffit d'affecter a une variable le resultat de la fonction.
Ex :
a = EnregistrerUnFichier(Me.hWnd, "", "", "c:\" )
Mais il faut aussi parametrer la fonction EnregistrerUnFichier pour proposer les .xls :
cherche et modifie la variable lpstrFilter :
.lpstrFilter = "Excel (*.xls)" & Chr$(0) & "*.xls" & Chr$(0) 'Définition du filtre (aucun)
Ensuite tu fais ton export de ta table, ou "a" est la variable du chemin+nom de fichier (mais il n'y a pas l'extension, il faut donc la rajouter)
DoCmd.TransferSpreadsheet acExport, 8, "TableResult" , a & ".xls", True, ""
Marsh Posté le 10-05-2010 à 14:45:50
Ca fonctionne niquel, je commence à mieux comprendre un p'tit peu cette logique, c'est vrai que expliqué comme ça, ça semble clair comme de l'eau de roche mais j'aurais jamais trouvé ^^"..
En tt cas merci beaucoup pour ta patience et pour ton aide précieuse !!
Marsh Posté le 10-05-2010 à 14:53:03
Aucun souci le forum c'est fait pour ca
Ravi d'avoir pu te filer un coup de pouce
Marsh Posté le 27-05-2010 à 09:34:40
Bonjour, bon depuis le tps j'ai finalisé ma page il ne manque plus qu'à terminer l'instruction SQL que je construis par partie avec une boucle, mais là je galère sur la partie ORDER BY qui est assez lourde à mettre en place, je te link le code :
Code :
|
Alors niveau nomenclature, ValChamp et Val2Champ correspond à la valeur du critère (en liste déroulante), Texte et Texte2 c'est la valeur du critère qd le champ est une Date (en zone de texte), TestChamp et Test2Champ c'est l'opérateur utilisé, OperOu c'est la case à cocher pour le OU, OperEt c'est la case à cocher pour le ET, Coche_ c'est la case à cocher lorsqu'on veut afficher le champ ds la requête, Trinumcrois c'est lorsqu'on veut trier par ordre croissant, TrinumDécrois par ordre décroissant.
MakeUSDate c'est une fonction ds un module pour convertir la date format anglais parce que ça fonctionnait pas lorsque je laissais la date en français le code si besoin :
Code :
|
Bon là la partie ORDER BY est un essai qui ne marche pas vraiment, en effet cette partie doit non seulement gérer la partie croissant ou décroissant, mais aussi l'ordre d'affichage donc elle doit agir aussi sur le SELECT, j'ai pensé à mettre la partie ORDER BY avant la partie SELECT ou carrement d'inclure la partie SELECT ds celle ORDER BY en Elseif, mais à coté de ça c'est vraiment au niveau du triage que je bloque pour qu'il prenne en compte tt les cas possibles...
Si tu as des idées je suis tout ouïe ^^, j'éditerais si je pense avoir oublié des infos utiles, voila.
Marsh Posté le 27-05-2010 à 10:28:51
Alors deja pour gerer moulte cas possible le plus simple c'est quand meme de passer par un select case
Ensuite essaie de voir ce que renvoi ta chaine InstrSQL avec un Debug.Print InstrSQL
Marsh Posté le 27-05-2010 à 11:18:11
D'accord alors j'ai regardé l'aide associée à cette instruction, elle est utile apparement, donc pour mon cas, la variable à tester serait Forms("Choix de Visualisation" )("TriNumCrois" & Cpteur), et euuuh ensuite les blocs d'instruction je met tous les cas possibles ? nan il y en aurait trop...
Ha ouai mais la variable à tester c'est pas que Forms("Choix de Visualisation" )("TriNumCrois" & Cpteur), si cpteur =1 il va tester celle-ci avec d'autres sauf que faudrait qu'il en teste plusieurs à la fois nan ? Par exemple si TriNumcrois3 = "2", TriNumcrois 6 = "1" et TriNumCrois5 = "3", jvois pas du tout comment construire l'instruction pour avoir au final le Champ6 en premier puis le Champ3 pui le Champ5, et pour que ça prenne une généralité de cas possible...
Marsh Posté le 27-05-2010 à 12:34:05
SuppotDeSaTante a écrit : Ensuite essaie de voir ce que renvoi ta chaine InstrSQL avec un Debug.Print InstrSQL |
Marsh Posté le 27-05-2010 à 14:50:09
J'ai pas eu besoin de faire un Debug.Print InstrSQL en fait vu que déja avec le MsgBox je voyais ce que renvoyait ma chaine, bon j'ai qd même essayer de faire le Select Case, je pense avoir reussi
Bon par contre je vais limiter le nombre de tri de toute façon l'utilisateur va pas numéroter tout ses champs surtout que les tables en contiennent plusieurs dizaines, mais qu'il ait la possibilité d'en mettre en évidence 5 ou 6 alors voici le code :
Code :
|
Bon peut-être que c'est moche et mal fait mais en tout cas ça fonctionne x), après s'il peut être optimisé...^^
Marsh Posté le 27-05-2010 à 15:02:42
C'etait pas pour toi que je demandais le debug.print, mais pour moi, que je vois ta requete sql...
Parcontre je ne comprends pas pourquoi tu as a1,a2,a3 etc. etant donné que tu ne peux avoir qu'une seule valeur passante dans le select case, une seule variable doit suffire...
S'il passe dans le case 1, il ne passe pas ni dans le 2 ni dns le 3 donc ton a2 et a3 sont vide. Pas d'interet de gerer des variables vides...
Marsh Posté le 31-05-2010 à 10:04:11
Ha c'était pour toi d'accord autant pour moi ^^", désolé du temps de réponse..
Nan mais c'est bon j'ai réglé ce problème tout fonctionne très bien pour cette page, un grand merci à toi pour toute ton aide jusqu'à présent =)
Néanmoins je viens de me rendre compte d'un truc génant dans une étape précédente, j'ai crée deux Boutons, un pour importer des tables excels en access, basé sur un TransfertSpreedSheat qui fonctionne très bien, et un autre pour Importer directement une Table contenue ds un fichier access, le pb est là le TransfertSpreedSheat ne fonctionne pas si le fichier est de type Access ( .accdb ou .mdb ou autre ), alors j'ai essayer le TransfertDataBase, ça fonctionne seulement il est nécessaire d'indiquer le Nom de la Table qu'on va importer, exemple "Table1" sauf que si la Table s'appelle autrement bah ça fonctionne pas, j'ai essayé de mettre "" sans succès..
Tu aurais une idée pour résoudre ce problème ? ( je continue de chercher de mon coté )
Marsh Posté le 31-05-2010 à 11:47:12
Tu ne connais pas le nom de la table a importer ?
Marsh Posté le 31-05-2010 à 11:56:41
Si mais c'est pas ça le problème, le nom ne sera pas toujours le même en fait
Code :
|
a1=ZoneTexte et ZoneTexte contient le chemin d'un fichier qu'on a sélectionné via une Fenêtre de navigation
jpeux mettre un nom dans "" mais ça ouvrira que les fichiers dont les tables portent ce nom et bon il faut que j'évite de donner du boulot à l'utilisateur "fénéant", parce que sinon ce serait pas compliqué, soit je met un nom au hasard et je demande à l'utilisateur de renommer le nom de sa Table lui-même pour qu'il corresponde, soit je mets rien et l'utilisateur ira lui-meme mettre le nom de la Table dans le code, sauf que ça répond pas au cahier des charges =s ..
Faudrait en fait que ce code soit fonctionnel quelque soit le nom de la Table que l'on veut importer c'est ça le truc, si c'est possible déja..
Marsh Posté le 31-05-2010 à 12:05:23
Je ne comprends pas...
Comment le programme peut savoir quelle table prendre...? Tu le definis ou ?
Sinon tu mets un InputBox... L'utilisateur saisi le nom de la table puis c'est fini...
Marsh Posté le 31-05-2010 à 13:17:14
Bah je sais pas trop, il prendrait la première table ouverte dans le fichier..
Mais la méthode de l'InputBox est pas mal, c'est quand même très raisonnable au niveau de l'effort demandé suffit de connaître le nom de sa Table, je connaissais même pas cette instruction, d'ailleurs je vais garder l'idée ^^ merci beaucoup =)
Marsh Posté le 01-06-2010 à 10:48:02
Bonjour,
la Table résultat "ListeVisualisation" de toute mon opération là s'ouvre par défaut en mode "Feuille de donnée", je me demandais si c'était possible via du code de pouvoir changer le mode,
Par exemple : si je clique sur le Bouton "Ouvrir Liste" il l'affiche normalement en mode "Feuille de donnée" ça c'est ce que j'ai fais jusqu'à présent, et si je clique sur le Bouton "Ouvrir Graphique" il l'affiche en mode "Graphique Croisé dynamique".
Est-ce possible ?
Edit : Oui j'ai trouvé faut mettre "acViewPivotChart" en deuxième argument. ^^
Marsh Posté le 01-06-2010 à 10:53:36
Oui mais il faut avoir fait ton tableau grpahique croisé dynamique en amont, qui pointe sur les données de cette table
Marsh Posté le 01-06-2010 à 14:04:03
Je sais pas si tu as vu mon édit, mais en mettant "acViewPivotChart" j'obtient ce que je veux la Table s'ouvre en mode graphique, c'est tout ce que je voulais j'ai mal du me faire comprendre ^^"
Je galère par contre pour exporter cette table format .jpg, ce que tu m'avais dis ds un post précédent ça fonctionne très bien pour le format ".xls", j'ai modifié le filtre pour qu'il propore également le format "Image (.jpg)", mais bon vu que la commande TransfertSpreedSheat acExport ne prend que du format Excel, bah je vois pas trop comment procéder..
Marsh Posté le 01-06-2010 à 14:24:53
Désolé je ne sais pas exporter un graphique d'Access en utilisant l'outils integré d'Access...
Avec un MSgraph ou un graph excel dans Access oui, mais la non.
Marsh Posté le 03-05-2010 à 16:52:49
Bonjour,
J'ai un Formulaire nommé "Choix de Visualisation" où sont affichés ds une colonne le nom des Champs d'une Table nommé "Table0" ( Organisme, Dates, Contact etc... ). Comme vous le voyez, le principe de cette page est de faire des tris, des tests pour ensuite appuyer sur un Bouton "Afficher" qui afficherait donc une Liste représentant les critères que jai rentré dans ce formulaire.
Pour mieux comprendre j'ai mis un Exemple basé que sur les Dates de la Table, donc là le tri que je veux faire c'est les dates supérieures ou égales au 9/12/2009 ET inférieures ou égales au 13/01/2010. Le truc c'est que je sais pas si je dois afficher ça sous forme de requête ou pas, et au niveau des expressions, j'ai essayé mais la syntaxe est mauvaise.
Nomenclature : les deux listes déroulantes où il y a les comparateurs ( que j'ai rentré manuellement via la propriété Liste de valeurs ) sont nommées respectivement "TestChamp5" et "Test2Champ5" ; les deux zones de texte où il y a les dates sont nommées respectivement "ValChamp5" et "Val2Champ5" ; la case à cocher ET est nommée "OperEt5"
J'ai essayé naïvement une requête avec comme critère quelque chose du genre [Formulaire]![Choix de Formulaire]![TestChamp5] ET [Formulaire]![Choix de Formulaire]![ValChamp5] etc.... bien sur ça n'a pas marché, je débute en Access en VBA et SQL donc bon je galère beaucoup..
Si vous avez des idées sur mon problème n'hésitez pas ^^
PS : ne faites pas attention à la Case "Réponse" qui est cochée "activé", j'ai pas encore configurée cette partie.
Message édité par alex'78 le 04-05-2010 à 15:39:35