2 votes

Remplir RowSource et RecordSource sans connexion persistante à la base de données

Comme le titre le suggère, je me demandais s'il était possible de remplir un RecordSource ou un RowSource sans maintenir une connexion persistante à la base de données externe que j'interroge.

J'ai essayé les deux méthodes énumérées ci-dessous, sans succès :

Clause IN

ps.RecordSource = " SELECT TM_Adjudicator AS Adjudicator, Nz(Sum(PS_DB_view.PS_Points+PS_DB_view.PS_Adhoc),0) AS [Total Points] " & _
                      " FROM SD_Adjudicators_view " & _
                      " LEFT JOIN PS_DB_view ON (((cstr(SD_Adjudicators_view.TM_Adjudicator) = cstr(PS_DB_view.PS_Adjudicator)) AND cdate(PS_DB_view.PS_Date) >= #" & dtStart_fmt & "#) AND cdate(PS_DB_view.PS_Date) <= #" & dtEnd_fmt & "#) " & _
                      " IN '' [MS Access;PWD=**STRING**;DATABASE=I:\**PATH**\PM_DB_view.accdb] " & _
                      " WHERE SD_Adjudicators_view.TM_TeamName = 'Z999' " & _
                      " GROUP BY TM_Adjudicator; "

(cela maintient une connexion persistante pendant toute la durée de vie du formulaire utilisateur).

DB.Connexion

Set dbs = OpenDatabase("I:\**PATH**\PM_DB_testenvironment.accdb", False, False, "MS Access;**STRING**")
Set rst = dbs.OpenRecordset(" SELECT TM_Adjudicator AS Adjudicator, Nz(Sum(PS_DB_view.PS_Points+PS_DB_view.PS_Adhoc),0) AS [Total Points] " & _
                                                                " FROM SD_Adjudicators_view " & _
                                                                " LEFT JOIN PS_DB_view ON (((cstr(SD_Adjudicators_view.TM_Adjudicator) = cstr(PS_DB_view.PS_Adjudicator)) AND cdate(PS_DB_view.PS_Date) >= #" & dtStart_fmt & "#) AND cdate(PS_DB_view.PS_Date) <= #" & dtEnd_fmt & "#) " & _
                                                                " WHERE SD_Adjudicators_view.TM_TeamName = 'Z999' " & _
                                                                " GROUP BY TM_Adjudicator; ")

    Set ps.Form.RecordSource = rst

    rst.Close
    Set rst = Nothing

    dbs.Close
    Set dbs = Nothing

Cela aussi maintient une connexion persistante jusqu'à ce que la fonction de fermeture soit appelée, et les valeurs RowSource / RecordSource sont perdues.

Existe-t-il un moyen de lire les données, de les afficher et de fermer la base de données tout en conservant les enregistrements visibles ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X