Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


Hallo Leo-Hubert (& Thomas),

Thomas hat im Grunde recht, dass das Lesen von Dokumentation unerlässlich ist. Aber ich bin mir nicht sicher, ob du mit einem Base-Dokument arbeitest oder vielleicht mit einem Writer- oder Calc-Dokument (Draw und Impress wäre genauso, aber das halte ich für eher unwahrscheinlich. Im ersten Fall findest du im Base-Handbuch tatsächlich Beispiele zuhauf, du kannst die connection entweder über die "DataSource" oder über ein Formular (Stichwort "form") ermitteln, diese Begriffe finden sich in den Beispielen nur wenige Zeilen vor der Zuweisung der connection. Im zweiten Fall findest du allerdings nichts im Base-Handbuch, weil dort immer von Base-Dokumenten ausgegangen wird. Für diesen Fall will ich dir eine Hilfestellung andeuten. Voraussetzung ist, soweit ich weiß, dass es ein Base-Dokument gibt, das mit deiner Datenbank verbunden ist; wie man das anlegt, steht im Base-Handbuch, das Dokument muss keine Formulardokumente oder sonstige weitere Element enthalten (aber es lohnt sich sicher, da mal anzuschauen, wie die Tabellen angezeigt werden, und dann ein bisschen weiter zu schnuppern). Beim Erzeugen wirst du gefragt, ob das Dokument/die Datenbank o.ä. angemeldet werden soll, es empfiehlt sich, das zu bejahen, dann ist die Formulierung im folgenden Aufruf einfacher.
Du kannst dann die connection mit folgendem Aufruf
connection = connecterSource("xxx")
zuweisen, wobei xxx der Name des angemeldeten Dokuments (z.B. "Fuetterung.odb", ich rate jetzt mal den Titel) ist. (Bei unangemeldetem Dokument müsstest du den Speicherplatz in der internen Form beginnend mit file:/// angeben, eine zusätzliche Hürde).

Das hier aufgerufene Makro stammt aus dem Buch von Bernard Marcelly und Laurent Godard, ich habe mir nicht die Mühe gemacht, die Bezeichner zu übersetzen und es optisch lesbarer aufzubereiten. Du musst es entweder im Dokument, oder wenn du es öfters verwenden willst, irgendwo in MeineMakros abspeichern.

'    Funktionen kopiert aus Marcelly/Godard:
Function ConnecterSource(nomSource As String, Optional nomUtilisateur As String, Optional motDePasse As String) As Object
Dim maSource As Object, dbContexte As Object, demandePasse As Object
dbContexte = CreateUnoService("com.sun.star.sdb.DatabaseContext")
if dbContexte.hasByName(nomSource) then
maSource=dbContexte.getByName(nomSource)
if IsMissing(nomUtilisateur) then
' demander le mot de passe, si nécessaire
demandePasse = CreateUnoService("com.sun.star.sdb.InteractionHandler")
ConnecterSource = maSource.connectWithCompletion(demandePasse)
else ' nomUtilisateur imposé
if IsMissing(motDePasse) then motDePasse = ""
ConnecterSource = maSource.getConnection(nomUtilisateur, motDePasse)
end if
end if
End Function
Sub DeconnecterSource(maConnexion As Object)
maConnexion.close
maConnexion.dispose
End Sub

Wenn du zu Makros Fragen hast, die über den im knappen Kapitel dazu im Handbuch Erste Schritte behandelten Umfang hinausgehen, kann ich neben dem genannten Buch von Marcelly/Godard, das allerdings nur in Französisch erhältlich ist, Thomas Krumbeins "Makro-Grundlagen" empfehlen. Ich habe bei meinem Einstieg in LibreOffice aus einer früheren Auflage ganz Wesentliches gelernt.

Wenn du immer noch Fragen hast, kannst du dich gerne noch einmal an mich wenden, auch direkt. Als Base-Fan begrüße ich es immer, wenn jemand das nutzt.

Gruß

Gerhard

Am 03.10.2019 um 15:47 schrieb Thomas Krumbein:
Hei Leo,

Kann mir da jemand noch mal Hilfestellung leisten?

ziemlich unmöglich, ohne zu wissen, welche Datenbank (Datenbankmanagement-Programm) Du verwendest und wie Du Dich verbindest.

Der allgemeine Ratschlag:  Handbücher lesen.  Gerade für Base (Datenbanken) gibt es ein sehr gutes und aktuelles Handbuch, das an sich keine Fragen offen lässt.

Hier der Link: https://de.libreoffice.org/get-help/documentation/ - dort dann unter "Base" _ kannst Du Dir als PDF oder *.odt runterladen.

Nachtrag:

das Verbindungsobjekt (hier oConnection) ist sicher in einer eigenem Routine definiert. Such einfach mal im Handbuch nach diesem Begriff. Die Variable ist dann global definiert, so dass sie jederzeit zur Verfügung steht.





--
Liste abmelden mit E-Mail an: discuss+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/discuss/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.