我最近将我的Access 数据库迁移到SQL Server,我使用Access 作为前端。 由于没有 Windows 商业版,我不得不使用 SQL 身份验证,因此 Windows 身份验证不起作用。 我在访问中有一个登录表单,这是我的代理进入他们的数据库区域的方式。但是每当他们登录时,他们也必须登录 SQL 身份验证,这有点烦人。
我有使用 VBA 填充其他程序中的字段的经验,例如将电话号码填充到拨号器中。 我想知道是否可以在表单的访问日志中获取信息并在用户名和密码中填充 SQL 身份验证日志。 如果这是可能的,有没有好心人可以指引我到一个我可以看到这个的 VBA 代码的地方?
提前致谢
我试过用谷歌搜索更多信息,但很难在搜索引擎上表达这个问题,我得到的只是使用 Windows 身份验证的说明。
可以在 Access 中使用 VBA 填充 SQL 身份验证用户名和密码字段。一种方法是在 VBA 中创建一个函数,从 Access 登录表单中检索用户名和密码,然后使用这些值填充 SQL 身份验证对话框中的相应字段。
以下是您如何为此编写 VBA 代码的示例:
Private Function LoginToSQL() As Boolean
' Retrieve the username and password from the Access login form
Dim username As String
Dim password As String
username = Me.txtUsername.Value
password = Me.txtPassword.Value
' Use the SendKeys method to enter the username and password into the SQL authentication dialogue box
SendKeys username & "{TAB}" & password & "{ENTER}"
' Wait for the SQL Server Management Studio window to appear
Dim hwnd As Long
hwnd = FindWindow(vbNullString, "SQL Server Management Studio")
Do While hwnd = 0
hwnd = FindWindow(vbNullString, "SQL Server Management Studio")
DoEvents
Loop
' Check if the login was successful
Dim success As Boolean
success = (hwnd <> 0)
' Return the result
LoginToSQL = success
End Function
这段代码中,
txtUsername
和txtPassword
是Access登录表单上的用户名和密码文本框的名称。 SendKeys
方法模拟在 SQL 身份验证对话框中输入用户名和密码。 FindWindow
函数等待出现SQL Server Management Studio窗口,表示登录成功
请注意,这种方法不是很安全,因为 SQL 身份验证用户名和密码以明文形式存储在 Access 数据库中。最好使用 Windows 身份验证或在用户每次登录时提示他们输入 SQL 身份验证凭据。