Numéro d'article: 112746 - Dernière mise à jour: jeudi 18 janvier 2007 - Version: 2.1 ACC : Comment faire pour base les sous-formulaires sur requêtes SQL directeSommaireRésumé Options avancées : nécessite codage expert, de l'interopérabilité et de compétences multi-utilisateur. Cette explique comment utiliser une requête SQL directe pour source d'enregistrement d'un formulaire. Il présuppose que vous savez créer et utiliser des requêtes SQL directes SQL. Vous gardez les points suivants à l'esprit lorsque vous utilisez requêtes SQL directes SQL pour les sources d'enregistrement de formulaires :
Plus d'informationsSQL directe requêtes sont en lecture seuleFormulaires basés sur des requêtes SQL directes SQL sont en lecture seule car passe par le biais de requêtes SQL sont en lecture seule. Le jeu d'enregistrements renvoyé par une passe par le biais de requête SQL est un jeu d'enregistrements instantané ou en lecture seule. Ce comportement est voulu par la conception même du produit. Afin que le formulaire est modifiable, basez votre formulaire sur une table attachée avec un index unique.Le Générateur de requêtes n'enregistre pas la chaîne de connexionGénérateur de requêtes la propriété RecordSource (Source) affiche une fenêtre semblable à la fenêtre de création d'une requête. Vous utilisez cette fenêtre pour créer la chaîne SQL ou la requête pour la propriété RecordSource (Source). Le Concepteur de requête va définir la propriété source à partir d'une chaîne SQL si la chaîne SQL n'est pas enregistrée en tant que requête. Si vous enregistrez la chaîne en tant que requête, le nom de la requête va être utilisé que la propriété RecordSource (Source).Lorsque vous utilisez une requête SQL directe créée à l'aide du Générateur de requêtes, la ODBC chaîne de connexion défini de cette requête n'est pas renvoyé dans le cadre de la propriété RecordSource chaîne SQL. Cela peut entraîner au message d'erreur » Impossible trouver table ou la requête « [table de Server ODBC] » » à car sans chaîne de connexion la ODBC, celui-ci recherchera une table locale, au lieu d'une table sur le serveur. Si vous enregistrez la chaîne SQL en tant que requête, la propriété source contient le nom de la requête au lieu de la chaîne SQL, et le formulaire ne pourrez pas récupérer les données à distance correctement. SQL directe requêtes Impossible d'utiliser LinkChildFields (ChampsFils) / LinkMasterFields (ChampsPères)La plus simple pour utiliser des données basées sur le serveur dans un sous-formulaire consiste à joindre la table distante et puis basez le sous-formulaire sur la pièce jointe.Si vous basez un sous-formulaire directement sur une requête SQL directe, la message d'erreur suivant peut s'afficher lorsque vous ouvrez le formulaire :
In Microsoft Access 7.0 and 97:
You can't use a pass-through query or a non-fixed column crosstab
query as a record source for a subform or subreport.
In Microsoft Access 1.x and 2.0:
The crosstab query underlying a subform or subreport must have fixed
column headings.
Cette erreur se produit dans Microsoft Access 7.0 et 97 si vous avez LinkMasterFields (ChampsPères) et LinkChildFields (ChampsFils) définies pour le sous-formulaire ou sous-état. Pour utiliser une requête SQL directe comme source d'enregistrement un sous-formulaire dans Microsoft Access 1.x et 2.0, vous devez dynamiquement définies propriété source du sous-formulaire dans l'événement Load le formulaire principal. Voici un exemple d'une procédure d'événement propriété OnLoad dans le formulaire principal MainForm qui dynamiquement définit la propriété RecordSource (Source) dans le sous-formulaire SPTSubForm : Le sous-formulaire proprement dit doit être enregistré sans une propriété RecordSource (Source). Notez que le sous-formulaire ne fonctionne pas si les propriétés LinkChildFields (ChampsFils) et les LinkMasterFields (ChampsPères) sont définies. Si vous souhaitez filtrer les enregistrements dans le sous-formulaire basé sur une valeur dans le formulaire principal, soit baser votre requête sur des tables joints ou modifier l'objet QueryDef afin que la requête inclut la valeur dans le formulaire principal. Références Pour plus d'informations sur les requêtes SQL directes SQL, rechercher l'index de l'aide pour « requêtes SQL directes », ou demander le Compagnon Office de Microsoft Access 97. Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
Traduction automatiqueIMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique. La version anglaise de cet article est la suivante: 112746
(http://support.microsoft.com/kb/112746/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Traductions disponibles
|



Retour au début
