2009-06-17 2 views
0

Ich bin daran interessiert, eine Access db einzurichten, um einen Bericht automatisch auszuführen. Um mir die Mühe zu ersparen, zu jedem Client-Computer zu gehen und die entsprechenden DSNs einzurichten, möchte ich, wenn möglich, die ODBC-Verbindungen im VB-Skript selbst einrichten.Wie kann ich eine Verbindung zu Lotus durch ODBC mit VBA herstellen?

Ich habe diese Seite gegoogelt und überprüft und einen guten Startcode gefunden, aber nicht genug, um alle Fehlermeldungen verschwinden zu lassen. Kann jemand den folgenden Code vervollständigen?

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 
+0

Versuchen Sie, eine Verbindung von Access zu Lotus Notes oder von Lotus Notes zu Access herzustellen? Wenn es der erste ist, welche Art von Bericht generieren Sie? Vielleicht können Sie es direkt in Notizen mit einem geplanten Agenten tun. – Carlos

Antwort

1

Willkommen auf dem Brett. ConnectionStrings ist in der Tat Ihr Freund, aber das Problem, das Sie haben, ist, dass Sie den Treiber nicht haben :) Lotus Notes ist keine relationale Datenbank, es ist ein document oriented database. Historisch gesehen gab es keinen Weg, auf es zuzugreifen, als wäre es eine relationale Datenbank aus diesem Grund. Aber schließlich hat IBM eine Art Übersetzer in Form von NotesSQL geschrieben. Wenn Sie dem Link folgen und den Treiber erhalten, sollten Sie in der Lage sein, ODBC zu verwenden. Es ist erwähnenswert, dass sich Notes der COM aussetzt. Wenn es also hart auf hart kommt, können Sie den Client automatisieren.

+0

Vielen Dank für die Erläuterung. – PowerUser

+0

Konnten Sie nach dem DLd-Treiber etwas in Gang setzen? – Oorang

+0

Ja, das hat funktioniert. Da ich den Treiber sowieso auf allen Client-Rechnern installieren musste, habe ich die DSNs manuell erstellt, als ich dort war. Danke für die Hilfe. – PowerUser

1

Diese Seite ist dein Freund: http://www.connectionstrings.com/access

ich Ihre Frage nicht auf den ersten richtig folgte. Ich sehe, dass Sie eine Verknüpfung von Access zu Lotus erstellen möchten, um über Lotus Notes-Daten zu berichten. Nun, es gibt ein paar Möglichkeiten, dies zu tun.

Ich verwende häufig eine Methode, Lotus Notes-Daten als XML verfügbar zu machen und dann vom entfernten System auf diese XML zuzugreifen. Sie können problemlos eine Notes-Seite mit dem XML-Start-Tag, dem Stammelement, erstellen und anschließend eine eingebettete Ansicht zwischen das Stammelement einfügen. Diese eingebettete Ansicht muss dann als HTML angezeigt werden und Spalten enthalten, die zu XML-Tags aufgelöst werden. Zum Beispiel würde jede Zeile der Ansicht ähnlich aussehen, dies zu:

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

und Ihre Spaltenformeln wären:

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

für den Vornamen Spalte und für den Nachnamen Spalte wäre es dies:

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

Beachten Sie, dass dies setzt voraus, dass Ihre Notes-Server den HTTP-Dienst aktiviert hat und Sie können die Datenbank über einen Browser erreichen.

Wie in anderen Antworten erwähnt, können Sie jedoch auch andere Methoden wie NotesSQL und COM verwenden. Es scheint, dass Sie diese Lösung auf vielen Arbeitsstationen installieren, und NotesSQL würde erfordern, dass Sie den Treiber auf jeder Arbeitsstation installieren. Die COM-Methode würde funktionieren, ohne dass zusätzliche Arbeit an den Schreibtischen der Benutzer erforderlich wäre, daher würde ich in diesem Fall diese Lösung bevorzugen.

0

Sieht wie eine große Website für meine Bedürfnisse aus, auch wenn es in einem Jahr nicht aktualisiert wurde. Aber immer noch keine Zigarre. Nun, ich bin immer „Name der Datenquelle nicht gefunden und Standardtreiber nicht angegeben“

(Offensichtlich ServerNameGoesHere und DatabaseNameGoesHere subsitutions sind)

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 
+0

Welche Art von Bericht möchten Sie erstellen? Es könnte einfacher sein, direkt in Lotus Notes zu erstellen. – Carlos

+0

Danke, aber ich habe keine Berechtigungen für die Entwicklungstools in Lotus. Ich versuche nur, eine Excel-Datei zu erstellen und zu speichern, etwas, das ich schon oft mit VBA gemacht habe. Dies ist jedoch das erste Mal, dass ich versuche, eine DSN-lose Verbindung herzustellen. – PowerUser

Verwandte Themen