REQUETEUR DE BASE DE DONNEES TRES SIMPLE D'UTILISATION ET TRES INTERESSANT DANS

zavier666 Messages postés 266 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 30 avril 2009 - 4 sept. 2007 à 16:53
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009 - 15 déc. 2007 à 08:24
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/43966-requeteur-de-base-de-donnees-tres-simple-d-utilisation-et-tres-interessant-dans-son-principe

cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
15 déc. 2007 à 08:24
@Martingales: Il te faudrait avoir access installé sur ton poste. Une partie de mes travaux en ce moment consiste en l'utilisation intelligente des fonctionnalités déjà existantes sur d'autres logiciels très courant. Chez moi au cameroun Office on le trouve sur au moins 90% des postes. Tu pourras également voir ce lien http://www.vbfrance.com/codes/UTILISATION-INTELLIGENTE-WORD-REALISER-ETATS_44998.aspx mais il te faudrait VB pour le compiler et l'utiliser tu devrait avoir des amis qui en ont. Quand j'aurais du temps je me plongerais sur comment utliser les fonctionnalités d'Excel pour je ne sais pas quoi encore, lol
martingale2 Messages postés 1 Date d'inscription vendredi 14 décembre 2007 Statut Membre Dernière intervention 14 décembre 2007
14 déc. 2007 à 10:43
Bonjour,
très intéressé par le fichier excel,je n'ai pu le faire fonctionner (je n'ai que vba, pas vb)
if affiche "installation de seatrack" puis deux fois une erreur 2718 puis erreur dans le module caché Md_Nomenclatures_requetes
je travaille avec Excel 2000
Merci de m'en dire plus si possible
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
28 sept. 2007 à 10:54
@LUSTRUCRU: Non, je suis pour le moment seulement VB6. Mais je pense que ça ne devrait pas être difficile de le traduire en VB2005.
LUSTRUCRU Messages postés 91 Date d'inscription mardi 8 avril 2003 Statut Membre Dernière intervention 15 mars 2013
28 sept. 2007 à 10:42
Bonjour,

Aurais-tu la même chose en VB 2005?
Merci d'avance
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
5 sept. 2007 à 16:56
@Zavier666: Comme je disais plus haut, j'utilise une fonction dans "Microsoft Access 11.0 Objects Library", la fonction BuildCriteria sinon effectivement, comme pour d'autres sources ici même on aurait pas besoin d'avoir Access. Où je suis on trouve Access à tout bout de chemin ce qui explique mon reflexe, mais ce ne serait pas trop compliqué de reécrire la fonction BuiltCriteria.

Voir definition de cette fonction (aide Access)

Méthode BuildCriteria
La méthode BuildCriteria retourne une chaîne de critères analysée, telle qu'elle apparaîtrait dans la grille de création de la requête, en mode Filtrer par formulaire ou en mode Filtrer par formulaire (serveur). Par exemple, vous souhaiterez peut-être définir la propriété Filter ou ServerFilter d'un formulaire à partir de divers critères spécifiés par l'utilisateur. Utilisez la méthode BuildCriteria pour construire l'argument constitué d'une expression chaîne pour la propriété Filter ou ServerFilter. Chaîne.

expression.BuildCriteria(Champ, TypeChamp, Expression)
expression Requise. Expression renvoyant l'un des objets figurant dans la liste Application.

Champ Chaîne requise. Expression chaîne identifiant le champ pour lequel vous souhaitez définir des critères.

TypeChamp Entier obligatoire. Constante intrinsèque indiquant le type de données du champ. Peut être défini comme étant une des valeurs DataTypeEnum DAO.

expression Chaîne requise. Expression chaîne identifiant les critères à analyser.

Remarques
La méthode BuildCriteria retourne une chaîne.

La méthode BuildCriteria vous permet de construire facilement les critères d'un filtre à partir d'une réponse de l'utilisateur. Elle analyse l'argument expression de la même manière que si cette expression avait été saisie dans la grille de création de la requête, en mode Filtrer par formulaire ou en mode Filtrer par formulaire (serveur).

Par exemple, un utilisateur qui crée une requête sur une table Orders (Commandes) peut limiter le jeu de résultats aux commandes passées après le 1er janvier 1995 en définissant des critères sur le champ OrderDate (DateCommande). Cet utilisateur peut entrer une expression comme celle qui suit dans la ligne Critères sous le champ OrderDate :

>1-1-95

Microsoft Access analyse automatiquement cette expression et retourne l'expression suivante :

>#1/1/95#

La méthode BuildCriteria produit la même analyse à partir du code Visual Basic. Par exemple, pour retourner la chaîne correctement analysée qui précède, fournissez les arguments suivants à la méthode BuildCriteria :

Dim strCriteria As String
strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95")

Étant donné que vous devez fournir des critères à la propriété Filter sous une forme correctement analysée, vous pouvez utiliser la méthode BuildCriteria pour construire une chaîne correctement analysée.

Utilisez la méthode BuildCriteria pour construire une chaîne à plusieurs critères si ceux-ci font référence au même champ. Par exemple, vous pouvez utiliser la méthode BuildCriteria avec les arguments suivants pour construire une chaîne à plusieurs critères se rapportant au champ OrderDate :

strCriteria = BuildCriteria("OrderDate", dbDate, ">1-1-95 and <5-1-95")

Cet exemple retourne la chaîne de critères suivante :

OrderDate>#1/1/95# And OrderDate<#5/1/95#

Cependant, si vous souhaitez construire une chaîne de critères faisant référence à plusieurs champs, vous devez la créer et la concaténer vous-même. Par exemple, si vous souhaitez construire des critères pour un filtre afin d'afficher les enregistrements pour les commandes passées après le 1-1-95 et pour lesquelles les frais de port sont inférieurs à 50 F, vous devez utiliser la méthode BuildCriteria à deux reprises et concaténer les chaînes résultantes.

Exemple
L'exemple suivant demande à l'utilisateur d'entrer les premières lettres du nom d'un produit, puis il utilise la méthode BuildCriteria pour construire une chaîne de critères à partir de sa réponse. Ensuite, la procédure fournit cette chaîne comme argument de la propriété Filter du formulaire Products. Enfin, la propriété FilterOn est définie afin d'appliquer le filtre.

Sub SetFilter()
Dim frm As Form, strMsg As String
Dim strInput As String, strFilter As String

' Open Products form in Form view.
DoCmd.OpenForm "Products"
' Return Form object variable pointing to Products form.
Set frm = Forms!Products
strMsg = "Enter one or more letters of product name " _
& "followed by an asterisk."
' Prompt user for input.
strInput = InputBox(strMsg)
' Build criteria string.
strFilter = BuildCriteria("ProductName", dbText, strInput)
' Set Filter property to apply filter.
frm.Filter = strFilter
' Set FilterOn property; form now shows filtered records.
frm.FilterOn = True
End Sub
zavier666 Messages postés 266 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 30 avril 2009 1
5 sept. 2007 à 16:18
Je ne suis pas certains qu'Access soit absolument nécessaire, je crois qu'il est possible d'avoir le moteur de bdd access sans le soft. Perso au boulot j'ai pas access et j'ai une macro excel qui fait tourner les requetes SQL

stls!
__________________________________________________
Toujours + de VB et d'API => APi @ la loupe
http://apialaloupe.free.fr
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
5 sept. 2007 à 14:20
Une note "négative" sans commentaire ne signifie rien, mais ceux qui se sont déjà frottés à ce genre de problème sauront en tirer profit, désolé pour ceux qui n'aime pas Access.
cs_asimengo Messages postés 280 Date d'inscription jeudi 24 mars 2005 Statut Membre Dernière intervention 18 mars 2009
4 sept. 2007 à 18:12
@Zavier666: Suite à ton commentaire je me suis un peu replongé dans le code.

J'en profite pour faire une précision, ce code necessite d'avoir Access et Excel. En fait je voulais faire rapidement un puissant outil de requête avec le moins de code possible en utilisant les fonctions d'Access et Excel. C'est dommage parce que je n'utilise qu'une seule fonction d'Access BuiltCriteria.

Le code est assez simple, parce que les objets (objets Form de Excel) utilisés le permettent. Dans mon idée c'est surtout de presenter un des algorithmes pour résoudre ce genre de problème. Mais pour qu'il soit un outil universel il faudra réecrire la fonction BuiltCriteria, mais très vite y'aura d'autres intérrogations, genre pourquoi ne pas permettre d'attaquer toute sorte de BD, pourquoi ne pas enregistrer le mot de passe des BD, pourquoi ne pas faire les graphiques directement depuis VB, pourquoi ne pas permettre d'attaquer directement les tables, .....

Je l'ai voulu aussi simple parce qu'en général pour les developpeurs nous avons plus besoin d'être guidé et moi par exemple je suis vite découragé quand je dois entre 2 projets de ma société regarder un code pour ma comprenette de plus de 10 modules, classes, form,...

Je rachouterai probablement une BD exemple. Merci de ton comm, c'est toujours bien d'avoir l'avis des autres, égo d'humain oblige.

A+.
zavier666 Messages postés 266 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 30 avril 2009 1
4 sept. 2007 à 16:53
On a pas tous Access (vu son prix) un fichier exemple serait le bien venu

Sinon très bon code, didactique !

slts!
------------------------------------------------
Toujours + de VB et d'API => APi @ la Loupe
http://apialaloupe.free.fr
Rejoignez-nous