Neu "Eigene Felder" per Access in JTL-Datenbank finden

HML

Aktives Mitglied
3. Dezember 2015
39
2
Hallo zusammen,

für Datenbankabfragen haben wir uns einen Read-Only-Zugang zur DB angelegt, mit dem wir über Access Abfragen abrufen möchten.
Für Artikel haben wir eigene Felder wie z.B. die Auswahl Katalogartikel ja/nein angelegt.

[Bild entfernt]

Weiß einer, wo genau in der Datenbank selbst ich die Verknüpfung zu diesen "Attributen" finde?
In den Tabellen "dbo_tAttribut" und "dbo_tAttributSprache" finde ich das eigene Feld Katalogartikel, aber ich finde nirgends die Tabelle, wo für kAttribut=206 zum jeweiligen Artikel aktiv oder inaktiv (vermutlich Wert dann 0 oder 1) gesetzt ist!?

[Bild entfernt]
 
Zuletzt von einem Moderator bearbeitet:

Marc Völker

Moderator
Mitarbeiter
15. April 2014
1.915
215
Hürth
Für die geschichte brauchst du die Tabellen

tArtikelattribute
tartikelattributesprache
tattribut
tattributsprache

und vielleicht noch
tFeldTyp.

Dabei musst du auf die Konstallation von nMehrsprachig und glaub nTyp oder so achten in der tAttribut, die signalisiert dir dann ob es ein Attribut, Funktionsattribut, Freifeld, oder Globaler Text ist.

Also schreiben würde ich wirklich niemanden raten da was von hand zu versuchen. Lesend wie du ja vor hast, ist denke ich weniger das problem.
 

der-rasenmaeher.de

Aktives Mitglied
23. Juli 2009
74
7
Hallo,
habe auch vor, mit Access die Daten aus der SQL Datenbank zu lesen. Ich bekomme in der Abfrage allerdings die Verknüpfungen nicht richtig hin. Je nach Anzahl der Eigenen Felder ist die Artikelnummer mehrfach vorhanden.
Was mache ich falsch?
Wie muss ich welche Tabellen verknüpfen?
Gruß
Peter
 

fav-hosting.online

Sehr aktives Mitglied
16. Oktober 2012
781
60
Weiterstadt
Firma
FaV-Hosting
Die Artikelnummer wir immer mehrmals vorhanden sein da bei der Abfrage die eigenen Felder Zeilenweise erstellt werden.
Die einzige Alternative die du hast ist die Abfrage so zu erstellen das jedes Eigene Feld eine Spaltenüberschrift hat.

Eine Abfrage könnte z.B. wie folgt aussehen.
Code:
SELECT  TOP(100)
    Artikel.cArtNr AS ArtNr,
    Beschreibung.cName AS Bezeichnung,
    (
        SELECT TOP(1)
            ArtikelAttributS.cWertVarchar
        FROM
            tAttribut Attribut
        JOIN
            tAttributSprache AttributS ON Attribut.kAttribut = AttributS.kAttribut
        JOIN
            tArtikelAttribut ArtikelAttribut ON Attribut.kAttribut = ArtikelAttribut.kAttribut
        JOIN
            tArtikelAttributSprache ArtikelAttributS ON ArtikelAttribut.kArtikelAttribut = ArtikelAttributS.kArtikelAttribut
        WHERE
            AttributS.kSprache IN (0,1)
            AND
            ArtikelAttributS.kSprache IN (0,1)
            AND
            AttributS.cName = 'EbaykategorieId'
            AND
            ArtikelAttribut.kArtikel = Artikel.kArtikel
        ) EbaykategorieId,
    (
        SELECT TOP(1)
            ArtikelAttributS.cWertVarchar
        FROM
            tAttribut Attribut
        JOIN
            tAttributSprache AttributS ON Attribut.kAttribut = AttributS.kAttribut
        JOIN
            tArtikelAttribut ArtikelAttribut ON Attribut.kAttribut = ArtikelAttribut.kAttribut
        JOIN
            tArtikelAttributSprache ArtikelAttributS ON ArtikelAttribut.kArtikelAttribut = ArtikelAttributS.kArtikelAttribut
        WHERE
            AttributS.kSprache IN (0,1)
            AND
            ArtikelAttributS.kSprache IN (0,1)
            AND
            AttributS.cName = 'RakutenKatId'
            AND
            ArtikelAttribut.kArtikel = Artikel.kArtikel
        ) RakutenKatId
FROM
    tArtikel Artikel
JOIN
    tArtikelBeschreibung Beschreibung ON Artikel.kArtikel = Beschreibung.kArtikel
WHERE
    Beschreibung.kSprache = 1
    AND
    Beschreibung.kPlattform = 1
    AND
    Beschreibung.kShop = 0

Ergibt eine Tabelle mit 4 Spalten (ArtNr, Bezeichnung, EbaykategorieId, RakutenkatId)
 
Zuletzt bearbeitet:

der-rasenmaeher.de

Aktives Mitglied
23. Juli 2009
74
7
War schon am Verzweifeln, danke für die Hilfe.
Ich bekomme eine Fehlermeldung - siehe Bild
 

Anhänge

  • sql_fehlermeldung1.JPG
    sql_fehlermeldung1.JPG
    25,5 KB · Aufrufe: 51

der-rasenmaeher.de

Aktives Mitglied
23. Juli 2009
74
7
sql_fehlermeldung2.JPG sql_fehlermeldung3.JPG
leider noch eine weitere Fehlermeldung

Hier meine alte Abfrage (ohne deine Anpassungen)
SELECT dbo_tArtikel.cArtNr AS artikelnummer, [fVKNetto]*1.19 AS vk, dbo_tArtikel.cAktiv AS aktiv, dbo_tArtikel.cHAN AS han, dbo_tWarengruppe.cName AS lagerort, dbo_tHersteller.cName AS lieferant, dbo_tArtikelBeschreibung.cBeschreibung AS artikelname, dbo_tAttribut.cBeschreibung, dbo_tArtikelAttribut.kArtikelAttribut, dbo_tArtikelAttributSprache.cWertVarchar, dbo_tArtikelAttributSprache.nWertInt, dbo_tArtikelAttributSprache.fWertDecimal, dbo_tArtikelAttributSprache.dWertDateTime, dbo_tAttribut.kAttribut
FROM (dbo_tAttribut INNER JOIN ((((dbo_tArtikel LEFT JOIN dbo_tHersteller ON dbo_tArtikel.kHersteller = dbo_tHersteller.kHersteller) LEFT JOIN dbo_tWarengruppe ON dbo_tArtikel.kWarengruppe = dbo_tWarengruppe.kWarengruppe) LEFT JOIN dbo_tArtikelBeschreibung ON dbo_tArtikel.kArtikel = dbo_tArtikelBeschreibung.kArtikel) INNER JOIN dbo_tArtikelAttribut ON dbo_tArtikel.kArtikel = dbo_tArtikelAttribut.kArtikel) ON dbo_tAttribut.kAttribut = dbo_tArtikelAttribut.kAttribut) INNER JOIN dbo_tArtikelAttributSprache ON dbo_tArtikelAttribut.kArtikelAttribut = dbo_tArtikelAttributSprache.kArtikelAttribut
WHERE (((dbo_tArtikel.cArtNr)>"30000000") AND ((dbo_tArtikelBeschreibung.kPlattform)=1));
 
Zuletzt bearbeitet:

fav-hosting.online

Sehr aktives Mitglied
16. Oktober 2012
781
60
Weiterstadt
Firma
FaV-Hosting
Hab die Abfrage gerade mal in Access ausprobiert hier taucht auch bei mir die Fehlermeldung auf, auf Anhieb kann ich dir da keine Lösung anbieten.
Sofern du nicht unbedingt auf Access angewiesen bist würde ich Empfehlen Excel zu verwenden hier funktioniert die Abfrage ohne Probleme.
Alternativ kannst du dir in der Datenbank eine Ansicht anlegen und diese dann über Access abrufen.
 

der-rasenmaeher.de

Aktives Mitglied
23. Juli 2009
74
7
Ich muss das mit Access machen, für Excel zu viele Daten.
Erstmal vielen Dank.
Vielleicht kann mir ja noch jemand helfen, ich stehe hier echt auf dem Schlauch und bin am verzweifeln.
 

HML

Aktives Mitglied
3. Dezember 2015
39
2
Deine Anfrage von oben funktioniert ja schonmal...es werden die Artikelnummern nur mehrfach ausgegeben. Anhand der Tabelle dbo_tAttributSprache findest du deine Eigenen Felder und die zugewiesene ID kAttribut.
Jetzt musst du halt in deiner Abfrage noch nach den gewünschten Eigenenen Feldern anhand der kAttribute filtern und dir wird dann nur noch die entsprechende Zeile ausgegeben
 

Ähnliche Themen