Demander des états et autres informations
Après avoir ouvert un canal DDE vers Microsoft Query, vous pouvez renvoyer un jeu de résultats ou d'autres informations à l'aide de DDERequest.
La méthode DDERequest a deux arguments.
Argument | Description |
---|---|
channel | Valeur du canal DDE renvoyée par DDEInitiate. |
request_item | Données à renvoyer. Il peut s'agir du contenu d'un champ ou d'une plage de champs dans une fenêtre de requête ou d'autres types d'informations, tels que le nombre d'enregistrements présents dans une fenêtre de requête. |
Les éléments d'une requête peuvent être demandés à la fois sur le canal de requête et sur le canal système. Sur le canal de requête, vous pouvez uniquement renvoyer des informations qui se rapportent à la requête, telles que le nombre de lignes ou de colonnes ou encore la définition de la requête. Sur le canal système, vous pouvez renvoyer des informations générales sur Microsoft Query, telles que les connexions en cours, le nom des sujets et l'état des programmes, ainsi que des informations spécifiques à la requête active.
Les éléments de requête possibles pour un canal de requête ou la requête active sur un canal système peuvent être les suivants :
Élément de demande | Information renvoyée |
---|---|
ColumnTitles | Matrice de titres de colonne. Le titre de la colonne est identique au nom du champ, sauf si l'utilisateur a modifié ce titre de colonne dans Microsoft Query. |
ConnectionString | Matrice de segments de chaînes de connexion (chacun pouvant comporter jusqu'à 255 caractères) qui constitue la chaîne de connexion utilisée pour établir la connexion à la fenêtre de requête active. Si la requête a été créée à partir d'un DSN fichier (Data Source Name), cet élément renvoie une chaîne de connexion sans DSN. |
ConnectionString/n | Matrice de segments de chaînes de connexion (chacun pouvant comporter jusqu'à n caractères) qui constitue la chaîne de connexion utilisée pour établir la connexion à la fenêtre de requête active. Si la requête a été créée à partir d'un DSN fichier, cet élément renvoie une chaîne de connexion sans DSN. |
DataSourceName | Nom de la source de données (DSN, Data Source Name) utilisé par la requête active. |
ErrorText | Texte d'erreur, le cas échéant, renvoyé par la dernière instruction SQL exécutée. Cet élément peut être demandé plusieurs fois afin d'extraire toutes les erreurs qui se sont produites. Une fois toutes les erreurs extraites, cet élément renvoie une chaîne vide. De même, il renvoie une chaîne vide si la plupart des instructions SQL récemment exécutées ont été menées à bien avec succès, même si les précédentes instructions SQL avaient échoué. |
FieldDef | Matrice de valeurs qui décrit les expressions et les types de données des colonnes (champs) de la fenêtre de requête. Chaque ligne de la matrice décrit un champ de la requête. La matrice renvoie les données suivantes sous forme de colonnes : le nom du champ, son type de données Q+E, sa largeur, sa précision et son type de données SQL. |
GetUniqueItems | Matrice des éléments uniques dans une colonne donnée des résultats de requête. L'élément de requête proprement dit doit être l'index de colonne défini à partir de zéro de la colonne ajoutée à "GetUniqueItems" (par exemple, les éléments uniques de la deuxième colonne sont renvoyés par "GetUniqueItems1"). Vous ne pouvez pas demander les éléments uniques d'une colonne qui n'est pas incluse dans la requête.
Cet élément renvoie les mêmes valeurs qu'une instruction SELECT DISTINCT pour la colonne demandée, avec toutes les jointures et les clauses de critères en vigueur. Toutes les clauses de critères qui utilisent des paramètres ne sont pas incluses. |
NameSeparator | Caractère unique utilisé par le séparateur de noms de qualificateur ODBC. |
NumCols | Nombre de colonnes (champs) de la requête. |
NumRows | Nombre de lignes (enregistrements) de la requête. |
ODBCSQLStatement | Matrice de segments SQL (chacun pouvant comporter jusqu'à 255 caractères) qui constitue l'instruction SQL ODBC de la requête. Cette chaîne vous permet de contourner Microsoft Query et d'envoyer une instruction SQL ODBC directement à ODBC pour qu'il la traite. |
ODBCSQLStatement/n | Matrice de segments SQL (chacun pouvant comporter jusqu'à n caractères) qui constitue l'instruction SQL ODBC de la requête. Vous pouvez utiliser cet élément de demande pour stocker une instruction SQL ODBC dans plusieurs segments plus petits. |
ParameterNames | Matrice des paramètres de la requête. Une matrice vide est renvoyée s'il n'existe aucun paramètre. Cet élément peut être demandé à tout moment, même si des paramètres sont désactivés pour la requête. |
Query | Nom de la requête. |
QueryDefinition | Matrice des segments de définition de la requête (chaque segment pouvant comporter jusqu'à 255 caractères) qui constitue la définition de la requête (instruction SQL), tel que la définit Microsoft Query. Cet élément peut être extrait et enregistré pour des requêtes ultérieures. |
QueryDefinition/n | Matrice des segments de définition de la requête (chaque segment pouvant comporter jusqu'à n caractères) qui constitue la définition de la requête (instruction SQL). |
Recest | Estimation approximative du nombre de lignes qui peuvent être extraites en une seule fois. |
TierType | Chiffre unique qui spécifie le type de la source de données : 1 indique un fichier qui ne peut contenir qu'une seule table ; 2 indique un fichier pour une base de données qui contient une ou plusieurs tables ; 3 indique que les données ne peuvent pas être parcourues. Cet élément de requête est utilisé si le programme a besoin de fournir une boîte de dialogue Ouvrir pour parcourir les données stockées sur un disque. |
Lorsque vous utilisez les éléments de requête ci-dessus sur le canal système, les informations sont renvoyées pour la dernière fenêtre de requête utilisée dans une opération DDE.
Pour le canal système, outre les éléments de requête ci-dessus, vous pouvez également demander les éléments suivants :
Élément de demande | Information renvoyée |
---|---|
Sources | Toutes les connexions de source de données en cours (DSN uniquement). |
Logon | Toutes les bases de données distantes auxquelles vous pouvez vous connecter (entrées DSN du Registre). |
Logoff | Toutes les bases de données distantes actuellement connectées (DSN uniquement). |
Tables/source/user/database | Toutes les tables pour la connexion DSN, l'utilisateur et la base de données spécifiés. Notez que la source doit être un nom de source de données valide. |
Users/source/database | Tous les utilisateurs pour la connexion DSN et la base de données spécifiées. Notez que la source doit être un nom de source de données valide. |
Database/source | Toutes les bases de données pour la connexion DSN spécifiée. Notez que la source doit être un nom de source de données valide. |
Username/source/database | Nom d'utilisateur pour la connexion DSN et la base de données spécifiées. Notez que la source doit être un nom de source de données valide. |
Topics | Le nom des sujets ouverts sur le canal système, en même temps que le sujet System. |
Status | L'état du programme, à savoir Ready ou Busy. Ready signifie que le programme peut avoir une conversation DDE avec Microsoft Query, et Busy signifie que Microsoft Query n'est pas prêt pour une conversation DDE. |
L'exemple suivant montre comment insérer la valeur renvoyée par l'élément de requête NumRows dans la cellule A10 de Microsoft Excel.
ActiveWorksheet.Range("A10").Value = DDERequest(chan, "NumRows")