MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > Microsoft Access
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 16.05.2019, 07:44   #1
ThomasKlueber
Neuer Benutzer
Neuer Benutzer
Standard Acc2016 - SQL-Abfragen mit Acc2016 verbinden mit Fehler

Guten morgen
ich habe ein Problem welches ich so noch nicht beobachtet habe.
Sollte ich im falschen Bereich eingestellt haben bitte verschieben.

Ich Frage aus unserer ERP Datenbank folgende Daten ab
- Arbeitszeiten welche auf Aufträge angefallen sinid
- Die Auftragsdaten Bestellangaben

Wenn ich die Abfragen einzeln Aufrufe kommen alle Daten wie gewünscht.
Verbinde ich die Abfragen mit Access (OuterJoin) kommt nur von einem Auftrag das Ergebnis (Tabellen, Auftrag, BDE) richtig.
PHP-Code:

SELECT [qdf-Interne-Aufträge-Kopf].ident_nr, [sql-BDE-Int-Sonder-Aufträge].auftr_nr, [qdf-Interne-Aufträge-Kopf].bestell_nr, [qdf-Interne-Aufträge-Kopf].bestell_ang, [sql-BDE-Int-Sonder-Aufträge].datum, [sql-BDE-Int-Sonder-Aufträge].be_nr, [sql-BDE-Int-Sonder-Aufträge].personal, [sql-BDE-Int-Sonder-Aufträge].zeitzahl
FROM 
[sql-BDE-Int-Sonder-AufträgeLEFT JOIN [qdf-Interne-Aufträge-KopfON [sql-BDE-Int-Sonder-Aufträge].auftr_nr = [qdf-Interne-Aufträge-Kopf].ident_nr
Erstelle ich eine SQL Abfrage, welche die beiden Tabellen direkt verbindet

PHP-Code:

SELECT kosten.auftr_nrkosten.datumkosten.uwkosten.be_nrkosten.lakosten.bde_artkosten.personalkosten.kstkosten.kostenblockkosten.zeitzahlauftragkopf.bestell_nrauftragkopf.bestell_ang
FROM 
{oj unipps.kosten kosten LEFT OUTER JOIN unipps.auftragkopf 
                                                                  auftragkopf ON kosten
.auftr_nr auftragkopf.ident_nr}
WHERE (kosten.datum >= {'2019-01-01'} And 
                 
kosten.datum <= {'2019-12-31'}) AND 
                (
kosten.kostenart_s=11) AND 
                (
kosten.auftr_nr In (415904,424704,430532,430533,430534,430535,430536,430537,430538,430539,430540,
                                                 
431338,431339,431340,434792,435808,435809,436501,436502,436503,436504,436505,
                                                 
436506,436507,436508)) AND 
                (
kosten.verurs_art 4)
ORDER BY kosten.auftr_nrkosten.be_nrkosten.datum 
Kommt das Ergebnis richtig.
Ich arbeite viel in Access und nutze diese Technik schon sehr lange.
Kann aber nicht erkennen, wo das Problem liegen soll. Und ich muss die Fehlerquelle kennen, damit ich bei anderen Ergebnissen diese vermeiden kann.

Danke schon mal im voraus für eure Bemühungen.
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 08:09   #2
markusxy
MOF Meister
MOF Meister
Standard

Was ist das für ein SQL Dialekt?
Warum hast du im From Statement eine geschweifte Klammer?
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 08:28   #3
ThomasKlueber
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Das ist Standard SQL wie es aus MS-Querry raus kommt.
Jedenfalls bei uns ist das so eingestellt. Ich weis nicht ob es andere
Möglichkeiten gibt. So funktioniert es jedenfalls. Es funktioniert sehr gut.

Ich erstelle mit MS-Querry oft Abfragen (geht einfach) und kopiere dann den SQL String in eine ODBC Paththrough Abfrage (Access) hinein.
Da MS-Querry nur einen Join zulässt muss ich oft den weiteren Ausbau der Abfrage manuell machen. Aber das grobe Gerüst steht schon mal.

Die IT Abteilung hat natürlich ein mächtigeres Tool für SQL Abfragen, das mir aber nicht zur Verfügung steht.

Ich kann über die ODBC Schnittstelle auf die Datenbank zugreifen.
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 09:33   #4
markusxy
MOF Meister
MOF Meister
Standard

Es geht also nicht um Access SQL, sondern MSSQL.

Zitat: von ThomasKlueber Beitrag anzeigen

Erstelle ich eine SQL Abfrage, welche die beiden Tabellen direkt verbindet
... Kommt das Ergebnis richtig. ...

Und ich muss die Fehlerquelle kennen, damit ich bei anderen Ergebnissen diese vermeiden kann.

Welche Fehlerquelle?
Es geht doch darum SQL richtig zu verstehen und anzuwenden.
Die Frage ist nur, was unklar ist und warum das Ergebnis nicht wie erwartet ist.

Ist die Abfrage so wie gezeigt vollständig?

Ohne klare Datenlage - kann man wohl kaum was dazu sagen.
Zerlege die Abfrage weiter und versuche dem Problem auf die Schliche zu kommen - vielleicht kannst du dich ja auch intern mit wem besprechen.

Geändert von markusxy (16.05.2019 um 09:37 Uhr).
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 09:45   #5
ThomasKlueber
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von markusxy Beitrag anzeigen

- vielleicht kannst du dich ja auch intern mit wem besprechen.

Leider nein, niemand nutzt das außer mir.

Das Problem dabei ist, wenn ich nur die zwei Tabellen Abfrage (SQL) und
verbinde die in einer weiteren Abfrage (Access) werden von 19 möglichen Datensätzen nur zwei angezeigt.

Erledige ich das verbinden der Tabellen per SQL direkt kommen 19 Datensätze an. Der Unterschied besteht nur darin,
im 1.ten Fall macht Access den Join
im 2.ten Fall macht den Join der DatenbankServer

Ich habe also in Access eine Fehlerquelle die ich nicht kenne. Und möchte wissen woran das Problem liegen kann. Es geht nicht um SQL Ausdrücke.
Denn ich verknüpfe sehr viele Tabellen in Access, weil das schnell und einfacher geht als SQL Strings zusammen bauen. Weiterhin habe ich häufig die Aufgabe, ERP Daten mit Access (Excel) Daten zu verknüpfen.
Da die Daten recht sensibel sind kann ich leider nicht viel öffentlich machen.
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 10:21   #6
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von ThomasKlueber Beitrag anzeigen

Leider nein, niemand nutzt das außer mir.

Niemand außer dir der etwas von SQL versteht?

Zitat:

Das Problem dabei ist, wenn ich nur die zwei Tabellen Abfrage (SQL) und
verbinde die in einer weiteren Abfrage (Access) werden von 19 möglichen Datensätzen nur zwei angezeigt.

Die Aussage ist für mich nicht nachvollziehbar.
Bei so einer Basis kann dir ein externer kaum helfen.
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 10:57   #7
ThomasKlueber
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von markusxy Beitrag anzeigen

Niemand außer dir der etwas von SQL versteht?

Für rein SQL haben wir einige die was davon verstehen.
Das Problem ist nicht SQL sondern Access und da bin ich alleine mit meinem
Wissensstand.

Nochmal SQL ist nicht das Problem. Sondern das Access die verknüpfen von zwei Abfragen (SQL) nicht sauber hinbekommt.
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 11:20   #8
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von ThomasKlueber Beitrag anzeigen

Für rein SQL haben wir einige die was davon verstehen.
...Sondern das Access die verknüpfen von zwei Abfragen (SQL) nicht sauber hinbekommt.

Glaube kaum, dass das mit Access was zu tun hat.
Da kommt das raus, was man programmiert.
Die Datenquelle ist Access völlig wurscht.
Ich stelle auch grade so ein tolles Projekt um, das mit n Datenquellen arbeitet.
Schöne Sache bei - MSSQL2000.

Geändert von markusxy (16.05.2019 um 11:23 Uhr).
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 11:26   #9
ebs17
MOF Guru
MOF Guru
Standard

MS Query ist aber ein Assistent in Excel - womit sich die Frage stellt, wo eigentlich Du arbeitest.

Zitat:

Verbinde ich die Abfragen mit Access

Was bedeutet das in verständlich, wenn die Tabelle doch im SQL Server liegen?

__________________

Ein freundliches Glück Auf!

Eberhard

Abfrageperformance ist kein Geheimnis
SQL ist leicht: {0}:{1}:{2}:{3}:{4}:{5}:{6}:{7}:{8}:{9}:{10}:{11}:{12} <= geklammerte Zahlen sind Einzelthemen
Dein Dankeschön: DBWiki => Spende
ebs17 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 11:50   #10
ThomasKlueber
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von ebs17 Beitrag anzeigen

Was bedeutet das in verständlich, wenn die Tabelle doch im SQL Server liegen?

Ich arbeite in Access, aus MS-Querry kopiere ich nur die den Text um diesen in einer Access ODBC-Abfrage zu verwenden.

Ich kann es nicht als Bild einstellen aber in meinem 1.te Post ist die Accessabfrage als SQL String dargestellt. Weil ich hier nicht weis wie man Bilder zeigen kann.
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 12:11   #11
ThomasKlueber
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

So hab jetzt mal Screeshots gemacht damit sieht man den Fehler deutlich.
xxxFehler ist Accesverknüpft xxxFehlerFrei ist vom Datenserver.

Ich denke das Bidl sagt mehr als 1000Worte.
Angehängte Grafiken
Dateityp: jpg Screen-AbfrageFehler.jpg (71,6 KB, 11x aufgerufen)
Dateityp: jpg Screen-AbfrageFehlerFrei.jpg (85,1 KB, 11x aufgerufen)
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 14:16   #12
markusxy
MOF Meister
MOF Meister
Standard

Zitat: von ThomasKlueber Beitrag anzeigen

damit sieht man den Fehler deutlich.

Dann klär uns mal auf was du da siehst.
Ich kann deine Gedanken leider nicht lesen, falls du meinst die Sache sei klar.
und zeig auch den kompletten SQL für beide Ergebnisse.
markusxy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 14:50   #13
drambeldier
MOF Koryphäe
MOF Koryphäe
Standard

Moin,

ohne Quelltext der beiden Abfragen dürfte sich zum Thema nichts Sinnvolles sagen lassen.

__________________

Gruß
Ralf
drambeldier ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 14:54   #14
ThomasKlueber
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von markusxy Beitrag anzeigen

Dann klär uns mal auf was du da siehst.
Ich kann deine Gedanken leider nicht lesen, falls du meinst die Sache sei klar.
und zeig auch den kompletten SQL für beide Ergebnisse.

Hm. Also die SQL der beiden Ergebniss hat man bereits in Post #1 voll angegeben.

Das Bild mit dem Namen "Screen-AbfrageFehler.jpg" zeigt das Ergebnis, welches ich mit der 1.ten Abfrage gezeigt habe. Ich häng es jetzt mal als Grafik rein.

Die Felder "Identnr" & "Auftragsnummer" sind verknüpft.
Der Joinpfeil ist deshalb so eingerichtet damit alle möglichen Datensätze sehe.
Wird der Join umgedreht kommen als Ergebnis nur ncoh die beiden letzten Datensätze.
Man sieht im Fehlerbild zwei Dinge
- Nur die letzen beiden Datensätze weisen bei identnr und auftragsnr die gleichen Daten aus.
- Nur die beiden letzten Datensätze zeigen dann auch im Feld "Bestellnr" Werte aus.

Mit der zweiten Bild "Screen-AbfrageFehlerFrei.jpg" sehe ich in jedem Datensatz das identnr & Auftragsnr gleich sind und in allen möglichen richtigen Daten sehe ich auch Wert in Feld "Bestellnr"

Die spannende Frage ist, warum ist das Ergebnis mit der Accessverbindung nicht gleich wie beim SQL Join auf dem Server?
Was ist die mögliche Ursache. Den offensichtlich ist das Ergbnis mit der Accesabfrage falsch / unvollständig.
Angehängte Grafiken
Dateityp: jpg Screen-AbfrageFehler-Def.jpg (85,1 KB, 7x aufgerufen)
ThomasKlueber ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 15:49   #15
sonic8
MOF Koryphäe
MOF Koryphäe
Standard

Was sind die Datentypen der relevanten Felder?

__________________

Office / Access 2019: Rückkehr der Symbolleiste?
sonic8 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.