You may consider a couple of different approaches. Tableau supports both live connectivity to (~30+) data sources including SQL or in-memory analysis. In version 8 of Tableau you can also blend across these data sources.
1. If you connect live to SQL server, the views will automatically reflect live data from SQL
2. You can create an "Extract" by right clicking the data source and selecting create extract. Once you do this, when you publish you have the option of selecting when you want the extract refreshed and you can do this on a pre-determined schedule.
Here is a bit more about extracts:
When you are connecting to Tableau from MDB which is created on SQL Server , "If the Access file gets updated by the data uploaded to SQL Server" it can be surely updated in the tableau workbooks.
There are two ways to do it:
1) If you are using "connect live" option while connecting to MDB file then you must manually refresh the data on the server.
2)If you are "creating an extract" then you can set incremental refresh on that extract so that data gets reflected on the server.For this you can first publish the data-source to the server.Once you do that the data-source gets automatically updated on the server which in turn updates the workbook.
Let me know if you have further queries.
I would suggest the following depending on the size of the data residing in your SQL at this present moment.
If your data is huge, then using data extract would help in terms of performance i.e. query speed.
If this is the scenario that you are facing, then you can perform data extract (set an empty shell) and publish to the tableau server. After that, refresh the data on the server. Now, you can connect your workbook to the data source residing on the server.
Note that for your data connection, you have to edit that and connect to the right DB in your SQL so that the data refresh will work properly and get all the updated data.