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.
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 |
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 |
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