This looks like something I see sometimes with MS Access. The sp_prepexec is done when the frontend sends an T-SQL statement to the backend and the connection has been setup to turn all statements into store procedure calls. Prior to this you should have seen sp_prepare been executed.
In MS Access I've setup the ODBC connection with :
Which enlimits the creation of the temporay procedure. However if the same T-SQL statement is used multiple times within the same connection this temporary procedure can be a preformance boost.