Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Warum ändert Access den sql code?
zurück: Datensätze speichern weiter: Mittelwert von Spalte bilden? Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Jun 2009, 18:41
Rufname:

Warum ändert Access den sql code? - Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Hallo!
Ich möchte in einer Abfrage Bestzeiten aus 2 Tabellen haben und habe das so gelöst und alles klappt:
Code:
SELECT   t1.name, t1.zeit200m, t4.ort, t4.bewerb, t4.jahr 
FROM     ergebnis AS t1, bewerbe AS t4,
         (SELECT   name, Min(zeit200m) AS minzeit
          FROM     ergebnis
          GROUP BY name) AS t2
WHERE    t1.name = t2.name
AND      t1.zeit200m = t2.minzeit
AND      t1.bewerbe_id = t4.id
ORDER BY minzeit;
Wenn ich allerdings die Abfrage schließe und neu öffne in der Entwurfsansicht oder sql Ansicht, sehe ich, dass Access daraus das gemacht hat:
Code:
SELECT   t1.name, t1.zeit200m, t4.ort, t4.bewerb, t4.jahr 
FROM     ergebnis AS t1, bewerbe AS t4,
         [SELECT   name, Min(zeit200m) AS minzeit
          FROM     ergebnis
          GROUP BY name;] AS t2
WHERE    t1.name = t2.name
AND      t1.zeit200m = t2.minzeit
AND      t1.bewerbe_id = t4.id
ORDER BY minzeit;
und beim Öffnen in der Datenblattansicht bekomme ich dann die Fehlermeldung:
Zitat:
SELECT name, Min(Ergebnis.mdb' nicht gefunden.
Wenn ich dann den ursprünglichen Code wieder reinkopiere, gehts wieder.
Hab ich da etwas falsch gemacht oder warum ist das so?
Die Tabellen kommen übrigens aus einer Mysql Datenbank und nur die Abfragen mache ich in Access.

lg und danke!
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Jun 2009, 18:54
Rufname:
Wohnort: Berlin


AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Ich erinnere mich auch dass ich mich schon darüber geärgert habe, dass Access den SQL-Code ändert. Einen allgemeingültigen Rat habe ich nicht. Da Du nur mit einer Tabelle arbeitest, würde ich das innere SELECT folgendermaßen schreiben:
Code:
(SELECT name, Min(zeit200m) AS minzeit FROM ergebnis GROUP BY name)
Vielleicht zerhackt er dann wenigstens nicht mittendrin den Code.
_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
22. Jun 2009, 19:56
Rufname:

AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Nein, die Daen kommen aus 2 Tabellen, deshalb brauche ich die 2. Selectanweisung, sonst passen Ort, Bewerb und Jahr nicht zu den Bestzeiten.
Ich habe die Abfrage in einem php Dokument, da kommen dann auch die richtigen Daten.
Ich hätte aber gerne die Abfragen auch direkt in Access, damit ich kontrollieren kann, dass alles passt aber da muss ich jedes Mal wieder den Code ändern - so sollte es ja auch nicht sein!
Stimmt vielleicht was nicht in der sql, dass Access das unbedingt ändern will?

lg und danke!
rita2008
Im Profil kannst Du frei den Rang ändern


Verfasst am:
23. Jun 2009, 17:29
Rufname:
Wohnort: Berlin

AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Hast Du es denn mal mit meiner Version der Unterabfrage probiert?
_________________
mfg Rita

Antworten bitte hier im Forum, nicht als private Nachricht. Danke
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
18. Jul 2009, 23:07
Rufname:


AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

abraxa am 23. Jun 2009 um 23:03 hat folgendes geschrieben:
Danke, klappt super!

lg und danke!
hi,
hab jetzt nach einiger Zeit die Abfrage wieder geöffnet und jetzt gehts schon wieder nicht.
Zitat:
Das Microsoft Jet-Datenbankmodul findet die Eingabetabelle oder Abfrage 'Select name, Min(zeit200m) AS minzeit FROM ergebnis GROUP BY name;' nicht. Stellen Sie sicher, dass sie existiert und der Name richtig geschrieben wurde.
und in der sql Ansicht schauts wieder so aus:
Code:
SELECT   t1.name, t1.zeit200m, t4.ort, t4.bewerb, t4.jahr
FROM     ergebnis AS t1, bewerbe AS t4,
         [SELECT   name, Min(zeit200m) AS minzeit
          FROM     ergebnis
          GROUP BY name; ] AS t2
WHERE    t1.name=t2.name
AND      t1.zeit200m=t2.minzeit
AND      t1.bewerbe_id=t4.id
ORDER BY minzeit;
Vielleicht liegts daran, dass die Tabellen über ODBC mit Access verbunden sind, könnte das sein?

lg und danke!
Willi Wipp
Moderator


Verfasst am:
19. Jul 2009, 04:02
Rufname:
Wohnort: Raum Wiesbaden

Re: Warum ändert Access den sql code? - Re: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Hi abraxa,

mir ist das auch kein Grund bekannnt, habe das Verhalten aber auch schon beobachtet.
Als Workaround: den inneren SELECT in eigener Abfrage speichern!

_________________
Eine kurze Rueckmeldung waere nett
SL Willi Wipp

(Anleitung fuer das Anhaengen von Dateien: Klicke links auf [www], Gaeste muessen sich dafuer anmelden)
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
19. Jul 2009, 10:48
Rufname:

AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Wie geht das wenn ich die innere Abfrage extra speichere? Ich brauch das Ganze nämlich in php und möchte aber gleichzeitig auch in Access damit arbeiten.

Und gleich noch eine Frage: (Die wird jetzt im Thema Bestenliste weiter behandelt!)
Ich habe in die Tabelle bewerbe ein zusätzliches Feld Kategorie (kat) eingefügt, in der Hoffnung, dass ich zwischen internationalen und nationalen Bewerben unterscheiden kann und jeweils eine Liste der schnellsten Zeiten bekomme.

Probiert habe ich so:
Code:
SELECT   t1.name, t1.zeit200m, t4.ort, t4.bewerb, t4.jahr, t4.kat
FROM     ergebnis AS t1, bewerbe AS t4,
         (SELECT   name, Min(zeit200m) AS minzeit
          FROM     ergebnis
          GROUP BY name) AS t2
WHERE    t1.name = t2.name
AND      t4.kat = "i"
AND      t1.zeit200m = t2.minzeit
AND      t1.bewerbe_id = t4.id
ORDER BY minzeit;
Das bringt aber jetzt nur die internationalen Ergebnissen aus der vorher erstellten Bestenliste, ich hätte aber gerne die internationalen Bestzeiten auch wenn national bessere Zeiten erreicht wurden.
Hoffe ich hab mich verständlich ausgedrückt?

lg und danke!
MiLie
kein Office- VBA- Programmierer


Verfasst am:
19. Jul 2009, 12:22
Rufname: Micha
Wohnort: Chemnitz

AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Hallo,

du hattest ein ";" in deiner inneren Abfrage, das bringt Access durcheinander, da das ";" eigentlich für Abfrageende steht.
Dedshalb nterstellt Acces, dass der Text mit den ";" eine eigenname ist also z.B. ein Feld und setzt die [] ein.

_________________
Viele Grüße

Micha

Schreibfehler die Ihr findet, könnt Ihr behalten
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
19. Jul 2009, 14:18
Rufname:

AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

hi,

nein, hab ich nicht, meine ursprüngliche Abfrage sieht so aus:
Code:
SELECT   t1.name, t1.zeit200m, t4.ort, t4.bewerb, t4.jahr 
FROM     ergebnis AS t1, bewerbe AS t4,
         (SELECT   name, Min(zeit200m) AS minzeit
          FROM     ergebnis
          GROUP BY name) AS t2
WHERE    t1.name = t2.name
AND      t1.zeit200m = t2.minzeit
AND      t1.bewerbe_id = t4.id
ORDER BY minzeit;
und Access macht dann das andere draus!
Wenn ich die ursprüngliche Abfrage wieder reinkopiere, klappt alles, bis ich die Abfrage schließe und neu öffne ...

lg und danke!
DBKlempner
Datenbank-Klempner ;)


Verfasst am:
19. Jul 2009, 16:12
Rufname:

Re: AW: Warum ändert Access den sql code? - Re: AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Was macht Access, wenn du ihm diese Abfrage als "Pass Through" Abfrage unterjubelst?

Volker

_________________
Linux is like a wigwam: no gates, no windows and an apache inside
-----
Ich beantworte keine ACCESS-Fragen per PN!
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
19. Jul 2009, 17:47
Rufname:

AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Danke, wusste gar nicht, dass es sowas gibt ... wo liegt da der Unterschied zu einer normalen Abfrage?

Das hat jedenfalls funktioniert ohne dass Access den Code geändert hat!

lg und danke!
DBKlempner
Datenbank-Klempner ;)


Verfasst am:
19. Jul 2009, 19:44
Rufname:

Re: AW: Warum ändert Access den sql code? - Re: AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Eigentlich ganz einfach:

bei einer normalen Abfrage findet eine komplette Syntaxprüfung (und mehr) durch die JET-Engine statt und zwar selbst dann, wenn Access sie anschliessend an einen beliebigen SQL-Server weiterreicht
Bei einer Pass-Through Abfrage geschieht das nicht, die wird ohne Prüfung an den SQL-Server durchgereicht.

Das ermöglicht dir auch, Spezifische Befehle/Eigenheiten des verwendeten SQL-Servers zu nutzen - mit einer Standard-Abfrage ginge das nicht, da die Jet-Engine eine solche Abfrage direkt als fehlerhaft verwerfen würde.

Was du im übrigen auch machen kannst, um solche Probleme zu umgehen ist:
den SQL-String mittels VBA zusammenbauen und dann an Access übergeben.

Manchmal will Access es eben umständlich Sad

EDIT: ich sehe gerade, dass du in den Tabellen ein Feld "Name" hast -- das ist unglücklich, da "Name" in access ein reserviertes Wort ist - in VBA bringt dir zum Bleistift die Zeile
Code:
Debug.Print Me!Name
im Formularmodul den Namen des betreffenden Formulars in das Direkfenster.
Es würde mich nicht überraschen, wenn dieser Feldname deine aktuellen Probleme verursachen würde - Access reagiert auf solcherlei nämlich manchmal unvorhergesehen und nicht logisch-schlüssig.

Volker

_________________
Linux is like a wigwam: no gates, no windows and an apache inside
-----
Ich beantworte keine ACCESS-Fragen per PN!
abraxa
Im Profil kannst Du frei den Rang ändern


Verfasst am:
19. Jul 2009, 20:55
Rufname:


AW: Warum ändert Access den sql code? - AW: Warum ändert Access den sql code?

Nach oben
       Version: Office 2003

Danke für den Hinweis, ich habs gleich abgeändert, das hat allerdings das Problem nicht gelöst, die Pass-Through Abfrage funktioniert aber und das ist die Hauptsache! Wink

aus:
Code:
SELECT   t1.Sname AS Name, t1.zeit200m AS 200m, t4.ort AS Ort,
         t4.bewerb AS Bewerb, t4.jahr AS Jahr 
FROM     ergebnis t1, bewerbe t4,
         (SELECT   Sname, Min(zeit200m) AS minzeit 
          FROM     ergebnis
          GROUP BY Sname) AS t2
WHERE    t1.Sname = t2.Sname
AND      t1.zeit200m = t2.minzeit
AND      t1.bewerbe_id = t4.id
ORDER BY minzeit;
hat Access das gemacht:
Code:
SELECT   t1.Sname AS Name, t1.zeit200m AS 200m, t4.ort AS Ort,
         t4.bewerb AS Bewerb, t4.jahr AS Jahr
FROM     ergebnis AS t1, bewerbe AS t4,
         [SELECT   Sname, Min(zeit200m) AS minzeit
          FROM     ergebnis
          GROUP BY Sname]. AS t2
WHERE    t1.Sname = t2.Sname
AND      t1.zeit200m = t2.minzeit
AND      t1.bewerbe_id = t4.id
ORDER BY minzeit;

lg und danke!
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: SQL : Datenbank löschen 1 cfl2si 7440 23. März 2005, 12:30
Willi Wipp SQL : Datenbank löschen
Keine neuen Beiträge Access Tabellen & Abfragen: Access ändert meine SQL Strings 1 Nil 608 24. Feb 2005, 13:25
lothi Access ändert meine SQL Strings
Keine neuen Beiträge Access Tabellen & Abfragen: Zeitspanne bei Datumswerten mit SQL filtern...? 3 DoMe 4372 15. Feb 2005, 17:57
Willi Wipp Zeitspanne bei Datumswerten mit SQL filtern...?
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Gruppierung -AXP 2 nepokat 601 03. Feb 2005, 08:46
nepokat SQL Gruppierung -AXP
Keine neuen Beiträge Access Tabellen & Abfragen: SQL: Like Operator geht nicht 2 Klaus-Peter_ 11242 31. Jan 2005, 18:54
Klaus-Peter SQL: Like Operator geht nicht
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle per SQL umbennen (Access 2000) 2 DerPater 1084 09. Dez 2004, 14:02
Gast Tabelle per SQL umbennen (Access 2000)
Keine neuen Beiträge Access Tabellen & Abfragen: Kombinationsfeld Datensatzherkunft VBA SQL 2 JensM 8920 17. Nov 2004, 19:57
JensM Kombinationsfeld Datensatzherkunft VBA SQL
Keine neuen Beiträge Access Tabellen & Abfragen: Per SQL maximalen Spaltenwert im VBA code ermitteln 2 Gast 4779 31. Okt 2004, 23:10
Tom2002 Per SQL maximalen Spaltenwert im VBA code ermitteln
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? mit SQL-String :-) 11 SCHNEEMANN 7515 20. Okt 2004, 16:33
SCHNEEMANN Wenn-Dann-Sonst in SQL??? mit SQL-String :-)
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? 2 SCHNEEMANN 998 18. Okt 2004, 17:26
Willi Wipp Wenn-Dann-Sonst in SQL???
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Abfrage ob ein Wert in der Tabelle enthalten ist 1 notausgang 1301 23. Sep 2004, 09:42
stpimi SQL - Abfrage ob ein Wert in der Tabelle enthalten ist
Keine neuen Beiträge Access Tabellen & Abfragen: Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...) 2 SMArmageddon 2417 01. Sep 2004, 15:07
SMArmageddon Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...)
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Microsoft Word Serienbriefe