The machine acting as the web server must have the "Microsoft Access Database Engine 2010" installed. If that machine does not have Access installed on it then you can download the installer for the engine here.
Note that the 64-bit installer includes the 64-bit version only; it does not include the 32-bit version (available separately on that same page).
edit...
As for the connection string, I just tested the following VBScript on my Access_2013 machine and it worked fine.
Option Explicit
Dim con, rst
Set con = CreateObject("ADODB.Connection")
con.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Gord\Desktop\Database1.accdb;Persist Security Info=False;"
Set rst = CreateObject("ADODB.Recordset")
rst.Open "SELECT Col1 FROM Table1", con
Wscript.Echo rst(0).Value
rst.Close
Set rst = Nothing
con.Close
Set con = nothing
I copied the connection string from connectionstrings.com.
edit...
If you have access to the web server, you can check for the existence of the following two files:
C:\Program Files\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL
C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEOLEDB.DLL
On a 64-bit machine the first file indicates that the 64-bit version of the Access Database Engine is installed. On a 32-bit machine it indicates that the 32-bit version is installed.
If the second (x86) file exists then you know that the 32-bit version of the Access Database Engine is present on a 64-bit machine.
edit re: final comment
The problem was indeed related to the "bitness" of the Access Database Engine:
i install "Microsoft Access Database Engine 2010" 64 bit i should install 32bit due to my visual studio is 32bit thanks for the advice
Page.Server.MapPath()
returns a valid path because otherwise this connection string seems fine. You can find connections strings here. - BenFradet