[ACCESS] faire une recherche

Résolu/Fermé
yozart - 14 janv. 2008 à 15:24
 Stef78 - 2 juil. 2010 à 11:47
Bonjour,

j'ai un gros probleme avec un formulaire servant a rechercher un vin selon different critères. (l'appli est une gestion de cave a vin). Le problème c'est que aucun enregistrement n'est sorti meme lorsque je laisse tous les champs a vide. J'ai remarqué que le problème etait du a ce que les enregistrements ont des champs a Null.

J'ai tenté de sortir tous les enregistrements avec cette requete:

[code]
SELECT VIN.VIN_NOM, VIN.ID_VIN, COULEUR.LIB_COULEUR, PRODUCTEUR.PROD_NOM, PAYS.LIB_PAYS, REGION.LIB_REGION, CEPAGE.LIB_CEPAGE, APPELATION.LIB_APPELATION

FROM (PAYS INNER JOIN REGION ON PAYS.[ID_PAYS] = REGION.[ID_PAYS]) INNER JOIN (PRODUCTEUR INNER JOIN (COULEUR INNER JOIN (CEPAGE INNER JOIN (APPELATION INNER JOIN VIN ON APPELATION.[ID_APPELLATION] = VIN.[ID_APPELLATION]) ON CEPAGE.[ID_CEPAGE] = VIN.[ID_CEPAGE]) ON COULEUR.[ID_COULEUR] = VIN.[ID_COULEUR]) ON PRODUCTEUR.[ID_PRODUCTEUR] = VIN.[ID_PRODUCTEUR]) ON (REGION.[ID_PAYS] = VIN.[ID_PAYS]) AND (REGION.[ID_REGION] = VIN.[ID_REGION])

WHERE ((VIN.VIN_NOM Like '*') Or (VIN.VIN_NOM Is Null))
And ((VIN.ID_VIN Like '*') Or (VIN.ID_VIN Is Null))
And ((VIN.ID_PRODUCTEUR Like '*') Or (VIN.ID_PRODUCTEUR Is Null))
And ((VIN.ID_COULEUR Like '*') Or (VIN.ID_COULEUR Is Null))
And ((VIN.ID_PAYS Like '*') Or (VIN.ID_PAYS Is Null))
And ((VIN.ID_REGION Like '*') Or (VIN.ID_REGION Is Null))
And ((VIN.ID_CEPAGE Like '*') Or (VIN.ID_CEPAGE Is Null))
And ((VIN.ID_APPELLATION Like '*') Or (VIN.ID_APPELLATION Is Null));
[/code]

PS: Je travail sous ACCESS 2007


(En passant, j'ai un autre probleme, je ne peut convertir ma table en accde. ACCESS me dit:

MICROSOFT ACCESS n'a pu generer le fichier .accde

Cette erreur est généralement liée à la compilation d'une grande base de données dans un fichier MDE. En raison de la méthode utilisée pour compiler la base de données, un nombre considérable de références TableID sont créées pour chaque table. Le moteur de bases de données Microsoft Jet version 4.0 peut ouvrir un maximum de 2048 références TableID simultanément. L'exportation d'une base de données dans un fichier MDE risque de dépasser cette limite, a fortiori lorsque la base de données contient un grand nombre d'objets (tables, macros, formulaires, rapports, etc.).
Il n'y a pas de méthode précise d'estimation du nombre d'ID de tables utilisés par le moteur de bases de données Access lors de la compilation d'une base de données dans un fichier MDE. Toutefois, chaque module VBA et chaque formulaire utilisent un ID de table. Par conséquent, si la base de données contient 500 formulaires et que la propriété HasModule de chacun de ces formulaires a la valeur Oui, l'on peut déduire que pas moins de 1 000 ID de tables sont utilisés.


Si quelqu'un sait pourquoi...)



Merci beaucoup.

2 réponses

Bon, mon premier pb a été résolu.

Pour ceux que ca interresse, la recherche sur plusieurs tables necessite de changer le type de jointures pour ne pas etre géné même si des champs sont vides dans les enregistrements.

Donc sujet résolu
0
Bonjour

Ce problème est dû au limite d'access. Mais ca peut-etre un problème de compilation dans ton code. As-tu essayer de compiler ton programme.

cordialement
0