• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 19544
  • Last Modified:

Notes & VB

I'm looking for a VB sample that does the following:

1) Connects to a Notes database
2) Finds a certain document based on a simple criteria
3) Modifies some fields on the document
4) Saves the document
5) Closes the connection

  • 2
  • 2
1 Solution
Here is a note which gives you some info on how to access notes environment via VB script.

Using Notes Classes in Visual Basic

Visual Basic programmers can access Notes objects through the Notes.NotesUIWorkspace and Notes.Session OLE automation objects. Notes must be installed on the same machine as the Visual Basic program. NotesUIWorkspace and NotesSession head hierarchies that give you access to all the Notes classes.

In Visual Basic, you cannot create new Notes objects as in LotusScript. You must apply CreateObject to Notes.NotesUIWorkspace or Notes.Session and work down through the hierarchies using the available methods. For example, if you want to open a Notes database in the back-end, use CreateObject to create a Notes.Session OLE automation object, then use the GetDatabase method of NotesSession to set a reference variable of type Object.
In Visual Basic, declare the reference variables for all Notes objects as type Object. When you finish using a Notes object, set the reference variable to Nothing to free the memory it uses.  Use dot notation, just as in LotusScript, to access an object's properties and methods.  Constants must be specified by actual numeric value rather than name. In LotusScript, you can get the value by displaying it. For example: Messagebox ACLLEVEL_AUTHOR,, "ACLLEVEL_AUTHOR"

Examples: Using Notes Classes in Visual Basic
Example #1:This example represents two command buttons on a Visual Basic form.
The first button writes a new document in an existing Notes database by creating a NotesSession object through OLE and creating NotesDatabase and NotesDocument objects through Notes methods. The second button frees the memory used by the Notes object before unloading the Visual Basic form.

Private Sub Command1_Click()

    Dim session As Object
    Dim db As Object
    Dim doc As Object

    Set session = CreateObject("Notes.NotesSession")
    Set db = session.GetDatabase("", "test4.nsf")
    Set doc = db.CreateDocument()

    doc.Form = "Main Topic"
    doc.Subject = Form1.Text3.Text
    doc.Body = Form1.Text2.Text
    Call doc.Save(True, False)

End Sub

Private Sub Command2_Click()

    Set doc = Nothing
    Set db = Nothing
    Set session = Nothing
    Unload Form1

End Sub

Example #2: This example represents a command button on a Visual Basic form.
The button launches Notes if it is not already running, then opens test4.nsf in the local data directory.

Private Sub Command3_Click()

    Dim ws As Object

    Set ws = CreateObject("Notes.NotesUIWorkspace")
    Call ws.OpenDatabase("", "test4.nsf")

MirkwoodAuthor Commented:
Doesn't answer the find question...

Hope you have understood the logic what I am trying to explain. Use db.FTSearch method to search the documents

syntax for that is:

Set notesDocumentCollection = notesDatabase.FTSearch( query$, maxDocs% [,sortoptions [, otheroptions]] )

You can find lots of example in Notes Help for searching documents.

PS:I hope that the answer gives you the most of it u asked for. Don't take it other way but sometimes few  things should be explored on ur own.

Try this (it worked in WindowScriptingHost):
Dim s
Dim db  
Dim doc
Dim dc

Set s  = CreateObject("Notes.NotesSession")
Set db = s.GetDatabase("ServerName/Organization", "path/db.nsf")
Set dc = db.FTSearch("field ChangeRequestNr = 123", 1)

Set doc = dc.GetFirstDocument()
doc.Form = "ChangeRequest"
Call doc.Save(True, False)

dc  = Null
doc = Null
db  = Null
s   = Null

That's all.



Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now