Valutazione attuale: 3 / 5

Stella attivaStella attivaStella attivaStella inattivaStella inattiva
 

Se avete l'esigenza di importare in lotus notes dati provenienti da fogli di excel e siete in ambiente windows, vi consiglio di utilizzare ADODB.

Uno dei vantaggi è data talla possibilità di utilizzare una comune select sql dove poter applicare i nostri filtri. Un'altro vantaggio è data dal fatto che sul pc non è necessaria la presenza di excel.

Con ADODB oltre a leggere i dati si puo' anche utilizzare il comando sql update per aggiornare i dati presenti nel foglio di excel, ma qui ci limiteremo soltanto a leggere i dati da excel ed importarli in lotus notes.

Il codice seguente permette di leggere un file di Excel con Lotus Script utilizzando ADODB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Sub Click(Source As Button)
 
 Dim valore1 As Variant
 Dim valore2 As Variant
 Dim valore3 As Variant
 
 Dim cn As Variant
 Dim adoRs As Variant
 
 Dim Filepath As String
 Dim Sheetname As String
 Dim nCount As Double
 
 ' Create the ADO objects
 Set cn = CreateObject("ADODB.Connection")
 Set adoRs = CreateObject("ADODB.Recordset")
 
 Filepath = "C:\MyFile.xls"
 Sheetname="Foglio1"
 
 With adoRs
 
 ' Apro il file di excel 
 .Open "Select * from [" & SheetName & "$]", {Provider = "Microsoft.Jet.OLEDB.4.0";Data Source=} & FilePath & {; Extended Properties="Excel 8.0;HDR=NO:" },1,3 
 .MoveFirst
 nCount=0 
 While Not .EOF
 nCount=nCount + 1
 valore1 = adoRs(0).Value
 valore2 = adoRs(1).Value
 valore3 = adoRs(2).Value
 .MoveNext
 Wend
 
 End With
 Msgbox nCount
 
 adoRs.Close 
 
End Sub

 

Stesso esempio ma con la creazione dei documenti notes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Sub Click(Source As Button)
 
 
 Dim valore1 As Variant
 Dim valore2 As Variant
 Dim valore3 As Variant 
 
 Dim cn As Variant
 Dim adoRs As Variant
 
 Dim Filepath As String
 Dim Sheetname As String
 Dim Dept As String
 Dim nCount As Double 
 
 Dim session As New NotesSession
 Dim db As NotesDatabase
 Dim doc As NotesDocument
 Set db = session.CurrentDatabase
 
 ' Create the ADO objects
 Set cn = CreateObject("ADODB.Connection")
 Set adoRs = CreateObject("ADODB.Recordset") 
 
 Dept="IT Department"
 Filepath = "C:\MyFile.xls"
 Sheetname="Foglio1"
 
 With adoRs
 
 ' Apro il file di excel...qui potresti applicare un filtro sui dati...
 .Open "Select * from [" & SheetName & "$]", {Provider = "Microsoft.Jet.OLEDB.4.0";Data Source=} & FilePath & {; Extended Properties="Excel 8.0;HDR=NO:" },1,3 
 .MoveFirst
 nCount=0 
 While Not .EOF
 nCount=nCount + 1
 
 ' Aggiungo sempre senza controllare se esiste...
 ' qui dovresti controllare se il documento è già stato imporato
 Set doc = db.CreateDocument 
 doc.form="InCharge"
 doc.IC_Argument=adoRs(0).Value
 doc.IC_Dept=Dept
 doc.IC_Name1= adoRs(1).Value
 doc.IC_Name2=adoRs(2).Value
 
 doc.DspName1= adoRs(1).Value
 doc.DspName2= adoRs(2).Value
 Call doc.Save( True, True ) 
 
 ' Leggo la successiva riga di excel
 .MoveNext
 Wend
 
 End With

 

 

NOTE

HDR=NO Indica che non che la prima riga non contiene i nomi delle colonne
IMEX=1 Indica che le colonne contengono valori misti, da aggiungere dopo HDR=NO;
Un'altra nota importante, il dirver di default legge le prime 8 righe per determinare il tipo di dati presenti nelle colonne di excel.
Tale valore è memorizzato nei registri di windows
Chiave : TypeGuessRows
Percorsso : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\3.5\Engines\Excel 

  

- have fun -

 

 

REFERENCES

 

DISQUS - Leave your comments here