Ms access ODBC驱动程序连接自动填充
我有一个连接到Oracle数据库的Access数据库(链接表)。 我写了一些Select查询。每次运行它时,我都会得到一个“OracleODBCDriverConnect”输入框。 有没有办法写一个vba宏来输入用户名和密码(自动填充)并输入Ok。 正在尝试为此Access db中的宏设置自动运行Ms access ODBC驱动程序连接自动填充,ms-access,odbc,driver,connect,autofill,Ms Access,Odbc,Driver,Connect,Autofill,我有一个连接到Oracle数据库的Access数据库(链接表)。 我写了一些Select查询。每次运行它时,我都会得到一个“OracleODBCDriverConnect”输入框。 有没有办法写一个vba宏来输入用户名和密码(自动填充)并输入Ok。 正在尝试为此Access db中的宏设置自动运行 非常感谢您的帮助。如前所述,当您链接表时,您可以选择在这些表链接中保存密码。如果您错过了这一步,那么您将得到ODBC提示 这与编写select查询无关。简单的方法是试着点击你在这种需求中使用的一个链接
非常感谢您的帮助。如前所述,当您链接表时,您可以选择在这些表链接中保存密码。如果您错过了这一步,那么您将得到ODBC提示 这与编写select查询无关。简单的方法是试着点击你在这种需求中使用的一个链接表。要么得到ODBC提示,要么不得到 如果您这样做了,那么在编写查询时当然会得到这样的提示。您希望首先让表链接在没有ODBC提示的情况下工作,然后基于链接表编写这些查询 因此,首先让链接表工作。忘记你正在写的问题,不要担心。在只需单击(打开)链接表就可以工作并且不会抛出ODBC提示之前,您看到的是错误的问题 一旦链接表在没有提示的情况下工作,那么查询也将在没有提示的情况下工作 所以你有两个选择来解决这个问题 简单地重新链接您的表,并确保在重新链接期间选中[x]复选框以保存密码 您错过并希望选择的提示如下: 现在,如果您的表已经链接,并且您运行了链接表管理器,您将不会再收到此提示。因此,您必须删除表链接,然后重新创建 当然,删除表链接通常会导致链接表名称被更改,这可能是一件痛苦的事情,尤其是当您有很多链接表时。只有你才能对什么是更少的工作做出判断。如果您只有几个表,那么只需删除它们,并使用外部数据->然后在导入和链接部分,选择ODBC,您就可以添加这些表,但请记住根据上面您遗漏的内容选择(选中)上述保存密码框 现在,随着时间的推移,大多数人都会使用一些表重新链接代码VBA。因此,如果suc-re-link代码已经可以使用并且很方便,那么只需使用该代码中使用的连接字符串中包含的用户/密码重新运行该代码即可。当然,如果您没有这样的代码,那么Access中的上述链接表管理器是一个无代码的解决方案,显然是您的最佳选择和行动方案 因此,您可以找到一些表重新链接代码,这些代码将强制(保存)表链接中的用户/id 但是,如果您不想删除并重新创建所有这些表,并且还没有设置一些重新链接代码,那么还有另一个(第三个)选择 在应用程序启动代码中,简单地执行一次性登录。如果执行此操作,则在使用链接表时将不会出现ODBC提示,因此在尝试运行/生成/使用基于这些链接表的查询时也不会出现ODBC提示 执行一次性登录的代码如下所示:
Function TestLogin(strCon As String) As Boolean
On Error GoTo TestError
Dim dbs As DAO.Database
Dim qdf As DAO.QueryDef
Set dbs = CurrentDb()
Set qdf = dbs.CreateQueryDef("")
qdf.connect = strCon
qdf.ReturnsRecords = False
'Any VALID SQL statement that runs on server will work below.
' this does assume user has enough rights to query built in
' system tables
qdf.sql = "SELECT 1 "
qdf.Execute
TestLogin = True
Exit Function
TestError:
TestLogin = False
Exit Function
End Function
上述代码在应用程序启动时运行一次,因此,当您单击链接表时,ODBC提示将消失。当然,一旦链接表的问题得到解决,那么当然,在没有提示的情况下,创建或单击查询或运行这些quire也可以正常工作
您不能自动填充该提示,首先必须采取正确的步骤以防止出现该提示。那么回答你的问题
不,您不能编写代码来输入请求的提示,但如果您使用保存的密码链接表,或执行上述登录代码,则提示将不会首先出现 链接表时(假设已链接),是否保存了密码?--查询是使用链接表的访问查询还是传递查询?在触摸或使用任何链接表之前,您可以在代码中执行单独的登录。但是,在我发布这样的代码之前,对于一般应用程序,您仍然会遇到这个提示+登录问题。因此,您应该重新链接表并检查“保存密码”问题,否则此问题不仅会在您试图运行的VBA代码中持续存在,而且会在一般应用程序中出现。@Andre我创建了一个引用Oracle db的DSN,以创建链接表。不,我没有在任何地方保存密码,我不记得有保存密码的选项。是的,我正在运行的查询是一个选择查询,从链接表中选择记录。@AlbertD.Kallal,很抱歉我不明白。请参阅我的答案-我给出了一个登录代码概念的示例,但实际上,最简单的方法是重新链接表,并确保选中该框以保存密码。