excel - Lotus Notes 数据库搜索
问题描述
我正在尝试编写代码来打开 VBA 并根据 A1 中的单元格值(整数)进行搜索。我设法编写了一个代码,直到我可以打开莲花笔记并转到特定数据库。我尝试了许多在线代码,但无法在该数据库中找到要搜索的代码。“Lotus.NotesSession”不适用于我使用的 excel 版本。你能帮我完成这段代码吗?代码如下:
Sub macro4()
Dim uiWs As Object
Dim dbname As String
Dim serverName As String
Dim db As NotesDatabase
Dim doccol As NotesDocumentCollection
Dim varA As Integer
dbname = "***"
serverName = "***"
Set uiWs = CreateObject("Notes.NotesUIWorkSpace")
Call uiWs.OpenDatabase(serverName, dbname)
Set db = uiWs.GetDatabase(serverName, dbname) ---->where i get the error
varA.Value = Sheets("sheet1").Range("A1").Value
Set doccol = db.FTSearch(varA, Nothing, 0)
End Sub
解决方案
在 Notes 中有两个“父”类可以派生所有内容。NotesUIWorkspace 是“前端”的类:它包含您在客户端中看到的所有内容。NotesSession 是后端的类。NotesDatabase 是一个后端类。要正确获取数据库,您需要使用 NotesSession:
Set ses = CreateObject("Notes.NotesSession")
Set db = ses.GetDatabase(serverName, dbname)
您混淆了 COM 和 OLE 集成。您尝试使用的东西(Lotus .NotesSession)仅适用于 COM,您需要在项目中包含 Notes 才能使用它。
为了使您的示例正常工作,您需要使用 OLE 集成:Notes .NotesSession
现在到您的“搜索” - 代码:
搜索 NotesDatabase 有两种不同的方法:
有全文搜索和“正常”搜索。
Fulltextsearch只是在所有文档中到处搜索您的值并返回一个集合。在邮件文件中搜索“Tom”将找到所有邮件/日历条目,其中:
- 汤姆寄来的
- 汤姆收到
- 在邮件的主题或正文或附件中包含“Tom”一词。
FTSearch 的语法是:
Set doccol = db.FTSearch( YourSearchValue )
您可以通过对搜索使用特殊语法将搜索限制在某个特定字段。eG 仅在您可以编写的“发件人”字段中搜索
[From] = "YourSearchValue"
在 FTSearch 中,“=”总是意味着“包含”
普通搜索使用公式(@Formula- 语法)来搜索文档。它需要正确的语法,否则它将找不到任何东西。搜索来自“Tom”的所有文档的公式是:
@Contains( From ; "Tom" )
搜索的语法是:
Set doccol = db.Search( YourQueryAsExampleAbove, Nothing, 0 )
With Nothing = Cutoffdate(如果只返回在该日期之后创建或修改的文档)和 0 = 最大值。要返回的文档数(0 = 返回所有内容)。
因此,您的示例代码可能类似于:
strQuery = "FieldToSearch = " & Sheets("sheet1").Range("A1").Value
Set doccol = db.Search( strQuery, Nothing, 0 )
推荐阅读
- javascript - v-on="..." 语法在 VueJS 中是什么意思?
- rspec - 如何在rspec中调用位于不同位置的ruby类
- python-3.x - 使用 Boto3 上传 Gzip 文件
- arrays - 如何在子切片中分割Go中的切片
- android - 寄存器的类型为 Long(High Half),但预期为 Long(Low Half)
- c++ - 对 end 的引用不明确
- html - 有什么方法可以在 Angular 材料中使用 mat-table 编辑特定的表格列
- php - 使用相同的 php 邮件程序脚本的多个表单
- javascript - 仅将时间戳 X 轴图表格式化为 24 小时
- 3dsmax - 如何在物体上应用半透明的彩色材料