Dans le cadre d'une conversion d'une macro VBA en LibreOffice j'ai dû établir une connexion à une base de données.
Voici la manière dont j'ai procédé :
J'ai cliqué sur "Base", j'ai choisi le type de connexion "ADO" et ensuite j'ai renseigné les paramètres de connexion à ma base de données.
Je vous passe les détails inutiles et à la fin, j'ai indiqué le nom d'une base de données et un emplacement et je me retrouve donc dans le dossier où j'ai ma macro, avec un fichier de base de données maBase.odb.
Du coup, au sein de ma macro j'ai fait ceci en suivant un tuto qu'on m'a donné sur ce forum :
Code : Tout sélectionner
Const sdatabase = "maBase"
Const sDbUser = "***"
Const sDbPassword = "***"
Sub ConnectSource()
Dim strSourceName
Dim oCurrentSource As Object, oDbContext As Object
oDbContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
oCurrentSource = oDbContext.getByName(sdatabase)
oCurrentConnexion = oCurrentSource.getConnection(sDbUser, sDbPassword)
if IsNull(oCurrentConnexion) Then
MsgBox("Connexion impossible", 16)
Stop
End if
End Sub
Le seul souci c'est que je ne comprends pas vraiment comment cela fonctionne derrière.
En l'occurrence la macro ne va pas rester dans ce répertoire de travail, elle va être placée à un autre endroit pour que les utilisateurs puissent s'en servir. Dans ce cas est-ce que je dois "juste" copier / coller la base maBase.odb dans le nouveau répertoire ? Est-ce que cela sera suffisant ?
Ou est-ce que je devrai recommencer toute la connexion ?
Et je n'ai pas bien compris le "pourquoi" de cette base car lorsque je consulte les données, je vois le contenu de ma base de données initiale, donc est-ce qu'il s'agit d'une copie ? C'est cela que je ne comprends pas bien.
Est-ce que vous pourriez m'expliquer car j'ai beau chercher, je trouve bien le "comment faire" mais pas le "pourquoi on le fait".
Merci par avance.