Domanda

Sono interessato a impostare un db di Access per eseguire automaticamente un report. Per evitare il problema di andare su ciascun computer client e impostare i DSN appropriati, mi piacerebbe impostare le connessioni ODBC nello script VB stesso, se possibile.

Ho cercato su Google e controllato questo sito e ho trovato un buon codice di partenza, ma non abbastanza per far sparire tutti i messaggi di errore. Qualcuno può completare il codice qui sotto?

Sub SetupODBC(Str_Server as string, Str_Db as string)  
 'Str_Server=Name of Server
 'Str_db=Name of Database
 Dim C as ADODB.Connection  
 Set C = new ADODB.Connection  
 C.ConnectionString = ??  
 C.Open  
 Debug.print C.State  
Exit Sub
È stato utile?

Soluzione

Benvenuto nella bacheca. ConnectionStrings è davvero tuo amico, ma il problema che stai riscontrando è che non hai il driver :) Lotus Notes non è un database relazionale, è un database orientato ai documenti . Storicamente non c'è stato un modo per accedervi come se fosse un database relazionale per quel motivo. Tuttavia, alla fine IBM ha iniziato a scrivere una sorta di traduttore sotto forma di NotesSQL . Se segui il link e ottieni il driver dovresti essere in grado di usare ODBC. Vale la pena notare che Notes si espone a COM. Quindi, se arriva la spinta, puoi automatizzare il client.

Altri suggerimenti

Questo sito è tuo amico: http://www.connectionstrings.com/access

All'inizio non ho seguito correttamente la tua domanda. Vedo che vuoi creare un collegamento da Accesso a Lotus per riferire sui dati di Lotus Notes. Bene, ci sono alcuni modi per farlo.

Uso frequentemente un metodo per esporre i dati di Lotus Notes come XML, quindi accedendo a tale XML dal sistema remoto. È possibile creare facilmente una Pagina di Notes con il tag di inizio XML, l'elemento radice e quindi inserire una vista incorporata tra l'elemento radice. La vista incorporata deve quindi essere visualizzata come HTML e contenere colonne che si risolvono in tag xml. Ad esempio, ogni riga della vista sarebbe simile a questa:

<Person><FirstName>Ken</FirstName><LastName>Pespisa</LastName></Person>

e le tue formule di colonna sarebbero:

"<Person><FirstName>" + FirstName + "</FirstName>"

per la colonna del nome e per la colonna del cognome sarebbe questo:

"<LastName> + LastName + </LastName></Person>"

Si noti che ciò presuppone che il server Notes abbia il servizio HTTP attivato e che sia possibile raggiungere il database tramite un browser.

Tuttavia, come indicato da altre risposte, è possibile utilizzare altri metodi come NotesSQL e COM. Sembra che tu stia inserendo questa soluzione su molte workstation e NotesSQL richiederebbe l'installazione del driver su ogni workstation. Il metodo COM funzionerebbe senza richiedere alcun lavoro aggiuntivo presso le scrivanie degli utenti, quindi in questo caso preferirei questa soluzione.

Sembra un ottimo sito per le mie esigenze, anche se non è stato aggiornato da un anno. Ma ancora niente sigaro. Ora sto ricevendo " Nome origine dati non trovato e driver predefinito non specificato "

(Ovviamente, ServerNameGoesHere e DatabaseNameGoesHere sono abbonamenti)

Sub dbX()  
     Dim C As adodb.Connection  
     Set C = New adodb.Connection  
     C.Open _  
        "Driver={Lotus NotesSQL 3.01 (32-bit) ODBC DRIVER (*.nsf)};" & _  
        " Server=ServerNameGoesHere;" & _  
        " Database=DatabaseNameGoesHere.nsf;"  
     C.Close
End Sub
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top