Try converting your SP call to a passthrough query (this is a bit of air code based on your previous posts);
Code:
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qdfpt As QueryDef
Set db = CurrentDb
Set qdfpt = db.QueryDefs("passYourPassThroughStoredQuery")
qdfpt.Connect = "ODBC;"Driver={SQL Server};Server=freeday-HP;Database=TestDB;User Id=gigida;Password=dtf666;"
qdfpt.SQL = "exec dbo.r_TrialBalance @BranchID = " & Me.BranchID
db.Close
DoCmd.OpenReport "Trial Balance", acViewPreview
DoCmd.OpenForm "Trial Balance", acNormal
I believe that access will wait for the query to run - if you set your SP to return a result (and the pass through) it definitely will.