Zugriff per ODBC auf Lexware financial office pro/premium

Der Zugriff auf die Datenbank von Lexware financial office pro oder premium ist standardmäßig nicht möglich. Alllerdings geht es mit dem hier gezeigten Vorgehen dennoch. Konkret geschieht dies, indem wir eine ODBC-Datenquelle einrichten.

Das hier geschilderte Verfahren wurde mit Lexware financial office pro 2013 bis 2017 erfolgreich getestet.

 

Achtung
Mit Lexware financial office pro 2018 und 2019 scheint, das hier beschriebene Verfahren nicht mehr zu funktionieren. Lexware hat da anscheinend etwas geändert. Wenn jemand eine Lösung hat, dann her damit.

Achtung
Auch wenn mit dem hier beschriebenen Verfahren ein Schreibzugriff auf die Lexware-Datenbank möglich ist, sollte dies nicht geschehen, da ansonsten die Integrität der Daten im komplexen Schema gefährdet ist.

Benötige Werkzeuge

  • Sybase SQL Anywhere Database Client (http://www.sybase.de/detail?id=1087327
  • SAP SQL Anywhere 16.0 Client Software (http://scn.sap.com/docs/DOC-35857)
  • Optional: Microsoft Access, OpenOffice Base oder ähnliches

Die Client-Software SAP SQL Anywhere 16.0 muss installiert werden. Auf einem 64-Bit System müssen die ODBC-Treiber sowohl für 64-Bit als auch 32-Bit installiert werden. Nach der Installation stehen nun zwei ODBC-Datenquellen-Administrationstools, je eines für 32-Bit und 64-Bit, zur Verfügung. Außerdem haben wir nun die Administrationsoberfläche „Sybase Central“.

Schritt 1: Ermitteln des Benutzerkennworts

Auf einem System, auf dem der Lexware Client eingerichtet ist, existiert auch eine ODBC-Datenquelle namens „LXSYDSN“. Mit dieser Datenquelle können wir uns mit dem globalen Teil der Lexware-Datenbanken verbinden, nicht jedoch mit den Datenbanken für die jeweiligen Firmen/Mandanten.

  1. Sybase Central starten
  2. Mit Datenbank verbinden (Schema anzeigen und bearbeiten oder eine Datenbank warten).
    Sybase Central Startseite
  3. Im Dialog „Mit einer SQL Anywhere-Datenbank verbinden“
  4. Authentifizierung: Datenbank
    Benutzer-ID: _login_
    Kennwort: 92ab346d1c02cffc
    eingeben.
  5. Aktion: „Mit einer laufenden Datenbank auf einem anderen Computer verbinden“ auswählen
  6. Auf Suchen klicken und den Server lxdbsrv auswählen
  7. Auf Verbinden klicken
    Mit einer SQL-Anywhere-Datenbank verbinden
    Die Nachfolgende Fehlermeldung „Der angegebene Benutzer hat keine DBA-Berechtigung. Einige Funktionen sind deaktiviert“ können wir einfach wegklicken und ignorieren.
  8. Nach dem Verbindungsaufbau klicken wir im doppelt auf Tabellen
    Auswahl Tabellen
    und
  9. öffnen mit einem weiteren Doppelklick die Tabelle LXG_USER. (Tipp von Stefan: Falls wir keinen Zugriff auf die Tabelle haben, öffnen wir statt der Tabelle die Ansicht/View LXG_VIEW_USER.)
  10. Im Reiter Daten können wir nun die Daten der Tabelle einsehen.
  11. Wir notieren uns den Wert für PASSWORD des Users mit USER_ID 0 in.

Schritt 2: Erstellen der ODBC-Datenquelle

Nun haben wir alle Informationen beisammen und können die ODBC-Datenquelle anlegen. Auf einem 64-Bit-System verwenden wir dafür das Tool „ODBC-Datenquellen-Administrator (64bit)“, auf einem 32-Bit-System entsprechend „ODBC-Datenquellen-Administrator (32bit)“.

Im Reiter „Benutzer-DSN“ klicken wir auf Hinzufügen und wählen den Treiber SQL Anywhere 16 aus. Nach einem Klick auf Fertig stellen öffnet sich der Dialog „ODBC-Konfiguration für SQL Anywhere“. Ins Feld Datenquellenname auf dem Reiter „ODBC“ geben z.B. Lexware ein.
ODBC-Einrichtung

Nun wechseln wir auf den Reiter „Login“. Und füllen die Felder wie folgt aus:
  1. Authentifizierung: Datenbank
  2. Benutzer-ID: U0
  3. Kennwort: Hier gehört das im Schritt 1 ermittelte Kennwort hinein.
  4. Aktion: Eine Datenbank auf einem anderen Computer starten und …
  5. Datenbankdatei: In dieses Feld muss der Pfad zur Datenbankdatei lxcompany.db der zu öffnenden Firma eingetragen werden. Dabei ist zu beachten, dass der Pfad aus Sicht des Servers, nicht des Clients gesetzt wird. (z.B. C:\ProgramData\Lexware\professional\Datenbank\F2\lxcompany.db für den zweiten Mandanten/die zweite Firma im System).
  6. Chiffrierschlüssel:
  7. Datenbankname: Analog zum Eintrag im Feld Datenbankdatei, ist hier die entsprechende Datenbank, also F1, F2, Fx einzutragen.
  8. Servername: LXDBSRV
  9. Host: DNS-Name oder IP-Adresse des Datenbankrechners im Netz
  10. Port: oder 2638

ODBC-Login-Daten

Auf dem Reiter „ODBC“ kann man nun die Verbindung testen. Ist der Test erfolgreich, schließen wir das Fenster mit OK. Uns steht nun eine neue ODBC-Datenquelle zur Verfügung, auf die wir mit Tools wie Microsoft Access, Excel, OpenOffice Base oder eigenen Programmen zugreifen können.Übersicht ODBC-Datenquellen

64 Gedanken zu „Zugriff per ODBC auf Lexware financial office pro/premium

  1. Mit der Version 2018 hat sich in der Lexware DB Anmeldeprozedur einiges verändert. Kennt jemand die neuen Login Daten?

  2. Hallo.,
    Dein Hinweis hat über die Jahre bis zur Version 2017 super funktioniert. Gibt es Hinweise, was Lexware ab der Version geändert hat? Es scheint als ob es eine andere Tabelle für die User gibt, da neue User nicht mehr in der Tabelle LXG_User angezeigt werden.

    Gruß
    Michael

  3. In der neuesten Version (Juni 2018) sind die Einträge in der Passwortspalte irgendwie vercryptet (unleserlich). Auch existiert in meiner DB der User_View nicht? gibt es eine andere Möglichkeit an das Passwort zu kommen?

  4. Hallo ,

    hat man für den Zugriff auf LxCatalog.* zwischenzeitlich eine Lösung gefunden ?

    Viele Grüße,
    Ralf

  5. Da kann ich Dir leider auch nicht helfen. Zunächst musst Du das Datenmodell verstehen. Dazu würde ich versuchen für die relevanten Tabellen ein ER-Diagramm zu bauen. Daraus könnte man dann die relevante Schritte ableiten.

    Was für Daten willst Du denn genau importieren? Was genau meinst Du mit 5 Firmenordnern? Wie liegen Dir die Daten vor, die Du in die Datenbank bringen willst?

  6. Nun ja, dann musst Du das wohl mal versuchen. Aber wie gesagt: Das Datenmodell macht keinen Spaß. Die Tabellen haben umfzig Spalten und es wird anscheinend viel Ballast aus alten Versionen mitgeschleppt. Also mach ein Backup und leg los. Ich drücke Dir die Daumen.

  7. Danke Christoph,

    welchen Weg ausser den Support zu bemühen gibt es denn? Der Support schien mir im ersten Anlauf nicht fähig mir zu helfen. Letzten Endes ist es ja eine SQL Datenbank. Da muss doch was zu machen sein, dass Lexware diese paar Datensätze wieder einbindet.

  8. Hallo Max,
    ich habe das soeben nochmal getestet (mit Excel 2010). Das hat bei mir funktioniert:
    1. Daten > externe Daten abrufen > aus anderen Quellen > Von Microsoft Query
    2. Im Reiter Datenbanken die angelegte Datenquelle (in meiner Beschreibung ist das „Lexware“) auswählen > OK
    3. Nun sollten die Tabellen erscheinen und man kann sich seine Abfrage zusammenbauen.
    4. Das Ergebnis der Abfrage wird dann in Excel dargestellt.

  9. Hallo Rainer,
    bei funktioniert der gleichzeitige Zugriff. Vielleicht blockiert das System aber bei der Überschreitung der maximalen gleichzeitigen Benutzer (je nach Lexware-Lizenz). Ist aber nur geraten.

  10. Hallo Andreas,
    das habe ich noch nie getestet. Vielleicht weiß ja jemand anderes, wie man das unter Linux hinbekommt.

  11. Hallo Jan,
    das kann ich Dir leider nicht beantworten. Mit so einer alten Version habe ich nie gearbeitet.

  12. Hi Rob,
    das ist theoretisch möglich. Ich kann aber nur davon abraten. Das Datenbankmodell ist sehr komplex und nicht so einfach zu durchschauen. Da würde ich lieber den Lexware-Support bitten zu unterstützen.

  13. Hallo,

    gibt es denn eine Möglichkeit Firmendaten in die Datenbank zu bekommen? Ich habe 5 Firmenordner, die Lexware nach einer Datenbankaktualisierung nicht wieder eingelesen hat. Ich habe allerdings keine Möglichkeit gefunden diese wieder in die Datenbank zu bekommen.

  14. Gibt es auch eine Möglichkeit an die Lexware Datenbank aus Version 2010 (Datenbankversion 9) ranzukommen? Dieses Tool kann erst ab v12 darauf zugreifen.

  15. Hallo,

    super Anleitung. Habe es auf Windows 10 mit Lexware Warenwirtschaft Pro auf Anhieb hinbekommen.

    Nun wollte ich es aber auch auf Linux einrichten, damit ich mit den Rohdaten mittels PHP und Apache2 arbeiten kann. Scheitere aber daran, dass ich unter dem Port 2638 nur die globale Sybase Datenbank erreiche (Schritt 1 der Anleitung). Wie ich aber die Firmendatenbank starte, ist mir noch schleierhaft. Benutze unixODBC mit FreeTDS. Hat vielleicht jemand ne Ahnung?

    Gruß

  16. Hallo

    ich habe auch das gleiche Problem, ich bekomme keine Verbindung mit Excel zur Datenbank
    „[DBNETLIB][ConnectionOpen (Connect()).]SQL Server existiert nicht oder Zugriff verweigert.

    ODBC eingerichtet. Test erfolgreich. Mit Excel lauft es aber nicht. Dort mache ich als Servername: LXDBSRV (wie in ODBC) und in Anmeldeinformation „windows zugrifrechte verwenden“. Was mache ich falsch?

  17. Kann es sein das der Zugriff per ODBC nur Funktioniert wenn keiner Lexware mit der Firma offen hat? Hatte es vorher mit einer Testfirma getestet und da lief alles. Aber mit der Produktiven Firma sagt er mir das die Datenbankdatei bereits verwendet wird.
    Kann man dieses irgendwie umgehen? So das ich per ODBC rein komme obwohl jemand Lexware offen hat?

  18. Hallo Christoph,

    ich habe es jetzt hinbekommen. In Excel muss ich nicht mehr das Lexware Passwort eingeben. Ich musste als das Loginfenster kam auf den Reiter „Windows“ und „aktuelle Windowslogin Daten“ verwenden anklicken. Dann hat es geklappt.

  19. Hallo Denis,
    das verstehe ich ehrlich gesagt nicht. Hast Du die Anleitung genau nachvollzogen. Du muss das Kennwort für einen User (z.B. den Supervisor) erst ermitteln und dann mit diesen Daten den ODBC-Datenquellen-Eintrag vornehmen. Dann sollte es auch klappen.

  20. Hallo,

    erstmal danke für die Anleitung. Es hat alles soweit geklappt. Nur wenn ich in Excel mich mit der DB verbinden will, fragt er nach einem User und Passwort. Ich habe mehrere Benutzer und Passwortkombis versucht, auch Supervisor mit dem verschlüsseltem PW, als auch as Passwort in Klartext eingegeben. Es kommt jedesmal eine Fehlermeldung. Gebe ich „Benutzer-ID: _login_
    Kennwort: 92ab346d1c02cffc“, komme ich zwar auf die DB, aber natürlich bekomme ich nur Zugriff auf die globalen Tabellen.

    Gruß

  21. Artikel auf den neuesten Stand gebracht und mit Lexware Financial Office Premium 2017 (Version 17.05) getestet.

  22. Hmmm… Keine Ahnung was da schief läuft. Sorry, kann ich auch nicht beantworten. Welche Lexware Version benutzt Du denn? Die aktuelle V17.03? Mit der habe ich noch nicht getestet.

  23. Hallo zusammen,

    das Einrichten und der Verbindungstest funktioniert. Wenn ich nun in Excel eine Verbindung herstellen möchte, erhalte ich folgenden Fehler: „Es konnten keine Tabellenlisten von der Datenquelle bezogen werden“

  24. Öhm… Die Fehlermeldung klingt für mich so, als ob Du auf einen MSSQL-Server zugreifen willst und nicht auf die erzeugte ODBC-Verbindung zur Lexware-Datenbank (SQL Anywhere).

  25. Sorry, keine Idee. Habe ich noch nie bekommen. Vielleicht weiß es ja jemand anderes.

  26. Hallo alle zusammen,

    ich möchte mich mit einer Datenbank der Version 9 verbinden. Leider gibt es beim Fertigstellen des unloads einen Fehler. lxoffice.db konnte nicht gestoppt werden. Hat jemand eine Idee.

  27. Hallo

    alles bestens funktioniert (Test erfolgreich) aber leider bekomme ich nun keine Verbindung mit Excel zur Datenbank 🙁
    „[DBNETLIB][ConnectionOpen (Connect()).]SQL Server existiert nicht oder Zugriff verweigert.

  28. Herzlichen dank für die Anleitung, das allererste mal mit Lexware in Berührung gekommen und hat gleich funktioniert! Danke für die Mühe!

  29. Hallo Klaus,
    das kann ich Dir leider auch nicht sagen. Bei mir funktioniert das. Dass die DB lokal liegt, sollte „eigentlich“ keine Auswirkungen haben. Was bekommst Du denn für Fehlermeldungen? Hast Du irgendwelche weiteren Infos für mich?

    Christoph

  30. Ich habe LFO Pro 2016 auf einem Notebook.
    Das U0 Passwort konnte ich auslesen.
    Aber anschließend die ODBC Quelle einrichten funktiniert nicht. Der LXDBSRV wird nicht gefunden. Der Datenbankdienst von LFO läuft.

    Was mache ich da falsch?

  31. Funktioniert auch im Jahr 2016 noch immer genau so.

    Gut, SQLAnywhere ist jetzt (08.02.2016) auf der Version 16 (statt 12), und beim Ermitteln des Login-Passworts müssen ein paar Einstellungen entsprechend der eigenen Infrastruktur angepasst werden, wer damit jedoch überfordert ist, der sollte sich nicht via ODBC mit seiner Datenbank verbinden wollen. Das ist nämlich wirklich nichts für Jeden.

    Aber, und das ist das tolle: diese geniale Beschreibung funktioniert super! Danke für die Recherche sowie für die Zeit und den Aufwand, das im Netz zu pflegen.

  32. Hmmm… das habe ich mir noch gar nicht angesehen. Dazu kann ich derzeit nichts sagen, sorry.

  33. Hallo Claus,
    das sollte eigentlich genauso funktionieren, wie bei einem dedizierten Server. Wo liegt denn das Problem?

    Christoph

  34. Hallo,

    super Anleitung. Dankeschön! Funktionert auch soweit, nur werden bei uns die Daten vor 2015 redundant angezeigt. Das hat wahrscheinlich auf die Umstellung der Auftragsnummer (länger) zu tun, oder?

  35. Hallo zusammen,

    kann mir einer sagen, wie das auslesen des usernamens bei einer lokalen Installation funktioniert, d.h der Client ist gleichzeitig der Server. Da komme ich einfach nicht weiter.

    Vielen Dank im Vorwege

  36. Also bei mir funktioniert das auch direkt mit der Tabelle, ohne dass ich die View nutzen muss.

  37. Das Passwort des Lexware Users Supervisor ließ sich per OpenOffice bei unserer Lexware WaWi 2016 nicht in der Tabelle LEXGLOBAL.LXG_USER auslesen (Fehler: Dateninhalten konnten nicht geladen werden).

    Dafür unter LEXGLOBAL.LXG_VIEW_USER

    Danke für die Tipps!

  38. Vielen Dank für die tolle Anleitung, die bei Lexware 2015 super funktioniert hat. Knifflig ist natürlich, das Datenmodell von Lexware reverse zu engineeren, aber werd die ODBC-Verbindung zu seinem Datenbankserver haben will, sollte das wissen.

  39. Hallo,
    vielen Dank für die super Anleitung.
    Ich habe mehrere Mandanten (F4, F5, F6 und F8). Die Einrichtung für F4 funktioniert ohne Probleme („Verbindung erfolgreich“). Wenn ich aber jeweils eine weitere ODBC Datenquelle für die anderen Mandanten anlege, heißt es: „Verbindung fehlgeschlagen: Angegebene Datenbank konnte nicht gestartet werden: Zugriff verweigert.“
    Hintergrund: Ich habe eine Access Datenbank, die Tabellen aus mehreren Mandanten gleichzeitig verknüpft. Damit das funktioniert, ist für jeden Mandant eine eigene ODBC Datenquelle einzurichten.
    Hat jemand ein Tipp?

  40. Hmmm… ich habe mir das mal angeschaut, habe es aber noch nicht geschafft Zugriff auf diese DB zu bekommen. Sorry.

  41. Hallo Christoph,

    die Katalogdateien findest Du unter LxCatalog.* im Datenbankverzeichnis. Diese enthalten Artikel, die über die Datanorm-Schnittstelle importiert wurden.

    Und auf die hätte ich gerne Zugriff, da ich die Artikeldatenbank nicht „zumüllen“ möchte.

    Viele Grüße,

    Uwe

  42. Hallo Uwe,
    was meinst Du denn mit Katalogdateien? Erklär mal.

    Beste Grüße
    Christoph

  43. Hallo,

    super Anleitung!

    Gibt es so eine Anleitung auch für den Zugriff auf die Katalogdateien von Lexware?

    Vielen Dank

    Grüsse Uwe

  44. Es gibt eine Lösung, die schnell und einfach zu realisieren ist. Mit dem Tool „LX Connect“ wird ein Benutzer in der Lexware-Datenbank angelegt und eine ODBC-Datenquelle eingerichtet. Das Tool ist zwar kostenpflichtig, spart aber Zeit und Nerven – für alle, die es eilig haben (www.lxconnect.de).

  45. Hallo,

    dieser EIntrag hat mir schon weitergeholfen.

    Vielen Dank schonmal dafür jedoch kriege ich die Datenbank nur per Acess geöffnet und das Passwort des Supervisors wird nicht annerkannt :(.

    Wenn ich die Datenbank mit Sysbase öffnen möchte dann stürtzt das Programm immer ab (32 Bit sowie 64 Bit).

    Lexware läuft in der VErsion 2011 auf einem Windows Sevrer 2008 aber die Datenbank lässt sich anscheinend nicht korrekt öffnen :(.

    Vielleicht kann mir hier jmd noch helfen 🙂

    Vielen Dank

    Thorben

  46. Herzlichen Dank für Ihre Arbeit. Genau das suchte ich, weil die Nutzer von Lexware Produkten oft mit tieferen Problemen keine Support-Unterstützung erhalten. Wie soll es auch gehen, wenn die Support-Mitarbeiter in Rumänien (oder Bulgarien?) angesiedelt sind und max. 2-3 Jahre Erfahrungshorizont besitzen. Insofern sind wir auf die Hilfe im Internet von Usern zu Usern angewiesen. Nochmals herzlichen Dank!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.