Question

Je souhaite configurer une base de données Access pour générer un rapport automatiquement. Pour éviter le problème d'aller sur chaque ordinateur client et de configurer les DSN appropriés, j'aimerais configurer les connexions ODBC dans le script VB lui-même, si possible.

J'ai consulté Google, consulté ce site et trouvé un bon code de démarrage, mais pas assez pour que tous les messages d'erreur disparaissent. Quelqu'un peut-il compléter le code ci-dessous?

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
Était-ce utile?

La solution

Bienvenue sur le tableau. ConnectionStrings est bien votre ami, mais le problème que vous rencontrez est que vous n’avez pas le pilote. Lotus Notes n’est pas une base de données relationnelle, c’est un base de données orientée document . Historiquement, il n’existait aucun moyen d’y accéder, il s’agissait d’une base de données relationnelle pour cette raison. Cependant, IBM a finalement réussi à écrire une sorte de traducteur sous la forme NotesSQL . Si vous suivez le lien et obtenez le pilote, vous devriez pouvoir utiliser ODBC. Il est à noter que Notes s’expose à COM. Donc, si les choses se gâtent, vous pouvez automatiser le client.

Autres conseils

Ce site est votre ami: http://www.connectionstrings.com/access

Au début, je n'ai pas bien suivi votre question. Je vois que vous souhaitez créer un lien entre Access et Lotus pour générer des rapports sur les données Lotus Notes. Eh bien, il y a plusieurs façons de le faire.

J'utilise fréquemment une méthode pour exposer les données Lotus Notes en tant que XML, puis pour accéder à ce XML depuis le système distant. Vous pouvez facilement créer une page Notes avec la balise de démarrage XML, l'élément racine, puis insérer une vue intégrée entre l'élément racine. Cette vue intégrée doit ensuite s'afficher au format HTML et contenir des colonnes qui se résolvent en balises XML. Par exemple, chaque ligne de la vue devrait ressembler à ceci:

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

et vos formules de colonnes seraient:

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

pour la colonne du prénom, et pour la colonne du nom de famille ce serait:

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

Notez que cela suppose que le service HTTP est activé sur votre serveur Notes et que vous pouvez accéder à la base de données via un navigateur.

Cependant, comme mentionné dans d'autres réponses, vous pouvez utiliser d'autres méthodes telles que NotesSQL et COM. Il semble toutefois que vous installiez cette solution sur de nombreux postes de travail, et NotesSQL vous obligerait à installer le pilote sur chaque poste de travail. La méthode COM fonctionnerait sans nécessiter de travail supplémentaire aux bureaux des utilisateurs, je préférerais donc cette solution dans ce cas.

Cela semble être un excellent site pour mes besoins, même s'il n'a pas été mis à jour depuis un an. Mais toujours pas de cigare. Le nom de la source de données non trouvé et le pilote par défaut non spécifié sont désormais affichés.

(Évidemment, ServerNameGoesHere et DatabaseNameGoesHere sont des substitutions)

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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top