重新考慮你的設置爲你的說法是不完全正確的:
由於授權問題,我們不能使用訪問作爲外部數據 源
的MS Access的.mdb /無論需要授權的MSAccess.exe程序如何,.accdb文件都可以被任何PC機器使用。 MS Access的基礎技術是JET/ACE SQL引擎,它是一組WindowsWindows®.dll文件,通常預裝在PC機上。 Access只是默認使用此引擎的GUI。
因此,請繼續使用實際的關係數據庫(.mdb/.accdb)文件,而不要將Excel工作表用於數據存儲和完整性。在沒有Access的機器上,文件將顯示空白圖標,無法用任何一個程序直接打開,但可以通過ODBC/OLEDB連接或COM對象與Excel或其他語言(PHP,R,Python,Java)連接--ADO或DAO。實際上,Windows計算機可以創建.mdb/.accdb文件,而不需要完整的Access程序。下面是Excel宏用於說明:
CREATE DATABASE(與DAO)
Sub CreateDatabase()
On Error GoTo ErrHandle
Dim fso As Object
Dim olDb As Object, db As Object
Dim strpath As String
Const dbLangGeneral = ";LANGID=0x0409;CP=1252;COUNTRY=0"
strpath = "C:\Path\To\Access\Database.accdb"
' CREATE DATABASE
Set fso = CreateObject("Scripting.FileSystemObject")
Set olDb = CreateObject("DAO.DBEngine.120")
If Not fso.FileExists(strpath) Then
Set db = olDb.CreateDatabase(strpath, dbLangGeneral)
End If
Set db = Nothing
Set olDb = Nothing
Set fso = Nothing
MsgBox "Successfully created database!", vbInformation
Exit Sub
ErrHandle:
MsgBox Err.Number & " - " & Err.Description
Exit Sub
End Sub
創建表(與ADO)
Sub CreateTables()
On Error GoTo ErrHandle
Dim strpath As String, constr As String
Dim objAccess As Object
Dim conn As Object
strpath = "C:\Path\To\Access\Database.accdb"
' CONNECT TO DATABASE
constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strpath & ";"
Set conn = CreateObject("ADODB.Connection")
conn.Open constr
' CREATE TABLES
conn.Execute "CREATE TABLE Clients (" _
& " ClientID AUTOINCREMENT," _
& " ClientName TEXT(255)," _
& " Address TEXT(255)," _
& " Notes TEXT(255)," _
& " DateCreated DATETIME" _
& ");"
conn.Execute "CREATE TABLE Orders (" _
& " OrderID AUTOINCREMENT," _
& " ClientID INTEGER," _
& " Item TEXT(255)," _
& " Price DOUBLE," _
& " OrderDate DATETIME," _
& " Notes TEXT(255)" _
& ");"
' CLOSE CONNECTION
conn.Close
Set conn = Nothing
MsgBox "Successfully created Clients and Orders tables!", vbInformation
Exit Sub
ErrHandle:
MsgBox Err.Number & " - " & Err.Description
Exit Sub
End Sub
此外,如果您需要MS Acc的GUI應用程序只有一個人(開發人員)需要擁有完整的MS Access來對數據庫進行設計更改。同時,所有其他(用戶)可以使用可通過Microsoft.com下載的免費運行時版本:2007/2010/2013/2016。只需確保數據庫運行時不需要導航窗格(即主菜單導航)。
用戶在接下來的幾個月內需要什麼樣的訪問(沒有雙關語)?不能使用現在稱爲Access 2016運行時的Access數據庫引擎(https://www.microsoft.com/zh-cn/download/details.aspx?id=50040),該引擎可以自由重新分配,然後從Excel中進行查詢如所須?我絕對不想推薦將其分開,並將其放在用戶容易操作的格式中。什麼是真正的目標,什麼樣的使用等等? MySQL或PostgresSQL是否可以暫時獲得他們免費許可的時間... – Matt