Hämta poster från Lotus Notes databaser


Här demonstreras en teknik för att hämta poster ur en Lotus Notes databas. Det sker mha av NotesSQL-drivrutin, vilken kan hämtas här »

I exemplet så hämtas alla e-postadresser och läggs till en combobox i ett formulär. Är antalet adresser ett mindre antal fungerar förfarandet alldeles utmärkt.

Däremot om antalet adresser är många så är det att föredra en ytterligare selektering innan de visas i en combobox.

Om ett felmeddelande erhålls vid kopiering till VBA-modul så läs mer här»
 

 

(© 2002 - 2003 All rights Colo - Used by permission)

 Option Explicit  

Private Sub UserForm_Initialize()

   '© 2003 Alla rättigheter XL-Dennis

   Dim wbBok As Workbook

   Dim wsBlad As Worksheet

   Dim rnData As Range

   Dim adoCN As ADODB.Connection

   Dim adoRst As ADODB.Recordset

   Dim stSQL As String

   Dim vaData As Variant

 

   Set adoCN = New ADODB.Connection

   Set wbBok = ThisWorkbook

   Set wsBlad = wbBok.Worksheets("Blad1")

 

   'Här används mina egna inställningar.

   adoCN.Open ("Driver={Lotus NotesSQL Driver (*.nsf)};Database=names.nsf;Server=Local;")

 

   'Enklast att få reda på tabell- och fältnamn är via MS Query.

   stSQL = "SELECT MailAddress FROM Person ORDER BY MailAddress"

 

   Set adoRst = adoCN.Execute(stSQL)

 

   With wsBlad

      .UsedRange.ClearContents

      'Jag föredrar att "dumpa" alla poster i ett arbetsblad.

      .Range("A2").CopyFromRecordset adoRst

      Set rnData = .Range(.Range("A2"), .Range("A65536").End(xlUp))

   End With

 

   vaData = rnData.Value

 

   '...för att läsa in alla poster på en och samma gång.

   With ComboBox1

      .Clear

      .List = vaData

      .ListIndex = -1

   End With

 

   adoCN.Close

   Set adoRst = Nothing

   Set adoCN = Nothing  

End Sub