2009-06-17 44 views
0

我有興趣設置一個Access數據庫來自動運行報表。爲了節省自己去每臺客戶端計算機和設置適當的DSN的麻煩,我想盡可能在​​VB腳本中設置ODBC連接。如何使用VBA通過ODBC連接到Lotus?

我搜索了一下並檢查了這個網站,發現了一些很好的入門代碼,但還不足以讓所有的錯誤信息消失。有人可以填寫下面的代碼嗎?

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 
+0

您是否試圖從Access連接到Lotus Notes或從Lotus Notes連接到Access? 如果它是第一個,您生成的報告類型是什麼?也許你可以使用預定的代理直接在筆記中做到這一點。 – Carlos 2009-06-17 21:23:27

回答

1

歡迎板。 ConnectionStrings確實是你的朋友,但你遇到的問題是你沒有驅動程序:) Lotus Notes不是關係數據庫,它是一個document oriented database。從歷史上看,沒有辦法訪問它,因爲它是一個關係數據庫。然而,IBM最終還是以NotesSQL的形式寫了一個翻譯器。如果您按照鏈接並獲取驅動程序,您應該可以使用ODBC。值得注意的是Notes公開了COM。所以如果推動推動你可以自動化客戶端。

1

這個網站是您的朋友:http://www.connectionstrings.com/access

我起先不正確地遵循你的問題。我看到你想創建一個從Access到Lotus的鏈接來報告Lotus Notes數據。那麼有幾種方法可以這樣做。

我經常使用一種將Lotus Notes數據作爲XML公開的方法,然後從遠程系統訪問該XML。您可以使用XML start標記,根元素輕鬆創建Notes頁面,然後在根元素之間插入嵌入的視圖。那麼嵌入式視圖需要顯示爲HTML幷包含解析爲xml標籤的列。例如,該視圖中的每一行可能會類似於此:

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

和你列的公式是:

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

第一個名稱列,併爲姓氏欄這將是這樣的:

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

注意,這裏假設你的Notes服務器有HTTP服務開啓,您可以通過瀏覽器到達數據庫。

但正如其他答案所述,您可以使用其他方法,如NotesSQL和COM。這聽起來像是你將這個解決方案放在許多工作站上,而NotesSQL會要求你在每個工作站上安裝驅動程序。 COM方法可以工作,而不需要在用戶的辦公桌上做任何額外的工作,所以我希望在這種情況下支持這種解決方案。

0

看起來像是一個很棒的網站,可以滿足我的需求,即使它沒有在一年內更新過。但仍然沒有雪茄。現在,我得到「數據源名稱未找到和默認的驅動程序沒有指定」

(顯然,ServerNameGoesHere和DatabaseNameGoesHere是subsitutions)

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 
+0

你想創建什麼類型的報告?在Lotus Notes中直接創建可能更容易。 – Carlos 2009-06-17 21:37:08

+0

謝謝,但我沒有Lotus中開發工具的權限。我只是想創建和保存一個Excel文件,這是我之前用VBA做過很多次的事情。但是,這是我第一次嘗試進行無DSN連接。 – PowerUser 2009-06-18 12:49:21