0

我有兴趣设置一个 Access 数据库来自动运行报告。为了省去访问每台客户端计算机并设置适当的 DSN 的麻烦,如果可能的话,我想在 VB 脚本本身中设置 ODBC 连接。

我用谷歌搜索并检查了这个网站,发现了一些很好的入门代码,但不足以让所有的错误消息消失。有人可以完成下面的代码吗?

Sub SetupODBC(Str_Server as string, Str_Db as string)  
 'Str_Server=Name of Server
 'Str_db=Name of Database
 Dim C as ADODB.Connection  
 Set C = new ADODB.Connection  
 C.ConnectionString = ??  
 C.Open  
 Debug.print C.State  
Exit Sub
4

3 回答 3

1

这个网站是你的朋友: http: //www.connectionstrings.com/access

一开始我没有正确回答你的问题。我看到您想创建一个从 Access 到 Lotus 的链接以报告 Lotus Notes 数据。那么有几种方法可以做到这一点。

我经常使用一种方法将 Lotus Notes 数据公开为 XML,然后从远程系统访问该 XML。您可以使用 XML 开始标记、根元素轻松创建 Notes Page,然后在根元素之间插入嵌入视图。然后,该嵌入式视图需要显示为 HTML 并包含解析为 xml 标记的列。例如,视图的每一行看起来都类似于:

<Person><FirstName>Ken</FirstName><LastName>Pespisa</LastName></Person>

你的列公式将是:

"<Person><FirstName>" + FirstName + "</FirstName>"

对于名字列,对于姓氏列,它将是这样的:

"<LastName> + LastName + </LastName></Person>"

请注意,这假定您的 Notes 服务器已打开 HTTP 服务,并且您可以通过浏览器访问数据库。

但是,正如其他答案所提到的,您可以使用其他方法,例如 NotesSQL 和 COM。不过,听起来您正在将此解决方案放在许多工作站上,而 NotesSQL 将要求您在每个工作站上安装驱动程序。COM 方法不需要在用户的办公桌上进行任何额外的工作就可以工作,所以在这种情况下我会赞成这种解决方案。

于 2009-06-17T20:57:55.570 回答
1

欢迎来到董事会。ConnectionStrings 确实是您的朋友,但您遇到的问题是您没有驱动程序:) Lotus Notes 不是关系数据库,它是面向文档的数据库。出于这个原因,从历史上看,还没有一种方法可以像访问关系数据库一样访问它。然而,IBM 最终开始以NotesSQL的形式编写一种翻译器。如果您点击链接并获取驱动程序,您应该能够使用 ODBC。值得注意的是,Notes 将自己暴露给 COM。因此,如果迫在眉睫,您可以自动化客户端。

于 2009-06-18T03:16:21.097 回答
0

看起来很适合我的需求,即使它已经一年没有更新了。但仍然没有雪茄。现在,我收到“未找到数据源名称且未指定默认驱动程序”

(显然,ServerNameGoesHere 和 DatabaseNameGoesHere 是替代品)

Sub dbX()  
     Dim C As adodb.Connection  
     Set C = New adodb.Connection  
     C.Open _  
        "Driver={Lotus NotesSQL 3.01 (32-bit) ODBC DRIVER (*.nsf)};" & _  
        " Server=ServerNameGoesHere;" & _  
        " Database=DatabaseNameGoesHere.nsf;"  
     C.Close
End Sub
于 2009-06-17T21:34:01.427 回答