Das Programm PC-Kaufmann von Sage ist ein bekanntes Buchhaltungsprogramm. Leider lassen die Export-Funktionen etwas zu wünschen übrig. Es ist aber relativ leicht möglich, die internen Buchhaltungsdaten in eine beliebige andere Datenbank zu übertragen und dann weiterzuverarbeiten.

Alle Mandanten-Daten werden von PC-Kaufmann in einer *.pck Datei gespeichert (findet man i.A. unter C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Sage\PC-Kaufmann\Data). Diese Datei ist in Wirklichkeit eine Microsoft Access Datenbank, nur hat sie die Dateiendung *.pck anstelle *.mdb . Kopiert man diese Datei z.B. nach db.mdb, kann man sie mit Microsoft Access öffnen.

Achtung: man sollte nur auf eine Kopie der Daten zugreifen, niemals auf die Originaldaten!

Mit Access 97 ließ sich eine umbenannte PC-Kaufmann-Datei problemlos öffnen, nicht aber mit Access 2003 oder Access 2007. Es gab immer die Fehlermeldung "Das aktuelle Benutzerkonto ist nicht berechtigt, diese Datenbank zu konvertieren oder zu aktivieren".

Konvertierung nach MySQL

Eine Access-Datenbank kann man leicht nach MySQL (oder nach Oracle oder in irgendein anderes Format) konvertieren, indem man eine ODBC-Verbindung zur gewünschten Datenbank erstellt und in einem zweiten Schritt dann die Access-Datenbank exportiert, wobei man als Ziel die neue ODBC-Verbindung auswählt. Das kann bei einer Datenbank mit vielen Tabellen jedoch sehr mühsam werden, da man jede Tabelle einzeln exportieren muss. In diesem Fall sollte man besser ein Konvertierungsprogramm einsetzen. Ich habe ganz gute Erfahrungen mit den Produkten der Firma Intelligent Convertersgemacht, die zahlreiche Konvertierungsprogramme für alle möglichen Ausgangs- und Zielformate anbietet. Sehr praktisch an den Konvertern dieser Firma ist, dass man sie auch von der Kommandozeile aus starten kann, d.h. man kann sich eine kleine Batch-Datei schreiben, die man nach jeder Nutzung von PC-Kaufmann doppelklicken kann und die dann die gesamten Daten (oder nur die benötigten Tabellen) automatisch auf den MySQL Server kopiert.

Zugriff

Es gibt sehr viele PC-Kaufmann-Tabellen, und die meisten enthalten ziemlich viele Felder. Welche Daten welches Feld enthält, ist nicht immer klar, aber die wichtigsten Informationen findet man schnell raus.

Adressen

select
    PersKtoNummer        as "ID",
    PersKtoName1         as "Name",
    PersKtoName2         as "Zusatz",
    PersKtoStrasse       as "Strasse",
    PersKtoLaendercode   as "Land",
    PersKtoLandPlz       as "PLZ",
    PersKtoOrt           as "Ort",
    PersKtoLetzterUmsatz as "Letzter Umsatz"
from
    sPersKto
where
    PersKtoArt  = 68

Die Konstante '68' ist möglicherweise bei jeder PC-Kaufmann-Installation unterschiedlich.

Artikel

select
    ArtNr                 as "Best. Nr.",
    ArtName1              as "Bezeichnung",
    ArtName2              as "Zusatz",
    round(ArtVkPreis_0,2) as "Preis"
from
    sArtikel
order by ArtNr asc

Rechnungen

select
    ABFDocErfNr                       as "Rechnungs-Nr.",
    ABFDocDatum                       as "Datum",
    round(ABFDocSumme,2)              as "Gesamt",
    ABFDocKundenNr                    as "Kunden-Nr.",
    ABFDocKundeKurzbez                as "Kunde",
    ABFPosArtNr                       as "Art. Nr.",
    round(ABFPosMenge,2)              as "Anz.",
    round(ABFPosEPreis,2)             as "Preis",
    round(ABFPosMenge*ABFPosEPreis,2) as "Summe",
    ABFPosName1                       as "Name",
    ABFPosName2                       as "Zusatz"
from
    ABFDok, ABFPos
where
    ABFPos.ABFPosDocId = ABFDok.ABFDocId
order by ABFDocDatum desc

Umsätze pro Monat

select 
    date_format(ABFDocDatum, "%Y-%m") as "Monat",
    sum(ABFDocSumme) as "Summme"
from
    ABFDok
group by
    date_format(ABFDocDatum, "%Y-%m")