Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access ODBC驱动程序连接自动填充_Ms Access_Odbc_Driver_Connect_Autofill - Fatal编程技术网

Ms access ODBC驱动程序连接自动填充

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查询无关。简单的方法是试着点击你在这种需求中使用的一个链接

我有一个连接到Oracle数据库的Access数据库(链接表)。 我写了一些Select查询。每次运行它时,我都会得到一个“OracleODBCDriverConnect”输入框。 有没有办法写一个vba宏来输入用户名和密码(自动填充)并输入Ok。 正在尝试为此Access db中的宏设置自动运行


非常感谢您的帮助。

如前所述,当您链接表时,您可以选择在这些表链接中保存密码。如果您错过了这一步,那么您将得到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,很抱歉我不明白。请参阅我的答案-我给出了一个登录代码概念的示例,但实际上,最简单的方法是重新链接表,并确保选中该框以保存密码。