2009-10-05 5 views
0

J'ai un sauvé querydef que j'exporte, avec un filtre, comme ceci:Possibilité de lire RecordCount pour la dernière exécution d'un querydef?

DoCmd.OutputTo acOutputQuery, tmpQueryName, acSpreadsheetTypeExcel9, appDirectory & "\" & tmpQueryName & ".xls", True 

Je voudrais être en mesure de stocker dans une table d'historique d'exécution du nom_requête, horodatage, filtrer et recordcount du querydef exécuté. Il serait facile de le ré-exécuter en code, mais il peut s'agir d'une requête très longue, donc je ne veux pas la ré-exécuter. Y a-t-il un moyen de lire le compte-rendu de DoCmd.OutputTo, ou bien de lire le LastExecRecordCount à partir du querydef lui-même, ou d'une autre manière que je pourrais accomplir cela?

+0

Tout d'abord, je ne comprends pas pourquoi vous ne l'utilisez DoCmd.TransferSpreadsheet, qui semble pour moi d'être plus facile à utiliser. Mais les actions DoCmd n'ont aucune propriété accessible après l'exécution de la ligne. Donc, la réponse est que vous devez utiliser une méthode différente de sortie des données, une qui vous permet de récupérer le compte-rendu, ou vous faites ce que @tbone a suggéré, vérifiez le résultat dans la feuille de calcul. Je ne sais pas, cependant, si cela peut être invoqué si l'opération n'est pas terminée (je ne sais même pas si c'est possible). –

+0

Aucune raison particulière .... y at-il des avantages à TransferSpreadsheet? – tbone

Répondre

0

Dans cet exemple, étant donné que le chemin complet vers le fichier Excel exporté est connu, on peut faire:

Dim xl As Excel.Workbook 
    Set xl = GetObject(appDirectory & "\" & tmpQueryName & ".xls") 
    Dim lastRow As Integer 
    lastRow = xl.ActiveSheet.Cells(xl.ActiveSheet.Rows.Count, 1).End(xlUp).Row ' the spreadsheet row number of the last row that contains data 
    rowcount = lastRow - 1 'account for header row 
+0

@tbone: bon exemple de repenser la question. Mais je me demande - y a-t-il des circonstances où la feuille de calcul pourrait être créée, mais elle n'aurait pas les résultats complets qui ont été récupérés par la requête source? –

+0

Seulement si vous dépassez la limite excel rowcount je pense. Dans mon cas, je ne m'inquiète pas trop d'être solide comme le roc, mais cela peut être une considération pour les autres. – tbone

Questions connexes