Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Programmierfehler in Unterabfrage

Begonnen von T417, Oktober 06, 2010, 11:19:01

⏪ vorheriges - nächstes ⏩

T417

Irgendwie komme ich nicht auf die Lösung. Eigendlich soll der Code ja alle Datensätze von AUFTRÄGE in die Tabelle Hilf2 übertragen.
Es sollen aber nur diejenigen Datensätze übergeben werden, dessen Auftrags_Nr auch in der Tabelle Hilf1 steht.

CurrentDb.Execute ("INSERT INTO Hilf2(Auftrag_Nr,Sachbearbeiter) " & " SELECT AUFTRÄGE.Auftrag_Nr,AUFTRÄGE.Sachbearbeiter FROM AUFTRÄGE,Hilf1 WHERE Hilf1.Auftrag_Nr=AUFTRÄGE.Auftrag_Nr ")
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

database

Hallo,

hmmm...
könnte so funktionieren:


CurrentDb.Execute ("INSERT INTO Hilf2(Auftrag_Nr,Sachbearbeiter) " & " SELECT AUFTRÄGE.Auftrag_Nr,AUFTRÄGE.Sachbearbeiter FROM AUFTRÄGE WHERE AUFTRÄGE.Auftrag_Nr IN(SELECT Auftrag_Nr FROM Hilf1) ")


...versuch mal... :)

Grüße
Peter

T417

Hmm. Nicht wirklich. Wie bei meinen oberern Code übergibt der keine Werte.
Die WHERE-Klausel lässt nichts durch. Der Rest des Codes klappt aber. :-\

Die Bennennung der einzelden Spalten ist eigendlich korrekt. Obwohl ich die jetzt nochmal überprüfe.
Langsam gehen mir die Ideen aus... :-\
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

database

Hi,

bringt die Abfrage ein Ergebnis?

SELECT AUFTRÄGE.Auftrag_Nr,AUFTRÄGE.Sachbearbeiter FROM AUFTRÄGE WHERE AUFTRÄGE.Auftrag_Nr IN(SELECT Auftrag_Nr FROM Hilf1)

T417

Yep. Das hab ich frisch getestet. Sind sogar die richtigen Werte. :)

Hab auch gerade herausgefunden, das dort einige Beziehungen noch existieren. Obwohl, .. eigendlich dürfte es daran ja nicht scheitern.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

database

OK, wenn das mal hinhaut, dann sollte es auch mit der SELECT INTO funktionieren.


CurrentDB.Execute("SELECT AUFTRÄGE.Auftrag_Nr, AUFTRÄGE.Sachbearbeiter INTO Hilf2 FROM AUFTRÄGE WHERE AUFTRÄGE.Auftrag_Nr IN(SELECT Auftrag_Nr FROM Hilf1)")


Kontrolliere bitte nochmal ob die Felder in Hilf2 tatsächlich namentlich übereinstimmen und auch den gleichen Felddatentyp aufweisen wie in der Datenquelle

T417

Laufzeitfehler: '3010'
Tabelle 'Hilf2' ist bereits vorhanden.

Also jetzt bin ich überfragt. ???
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

database

Hallo,

SELECT INTO möchte eine neue Tabelle Hilf2 anlegen. Kannst du die alte Tabelle versuchsweise mal händisch löschen?

T417

Argh. Wenn ich heute nicht so müde währe, hätte ich sofort begriffen was SELECT INTO macht. :P :-\

Naja, egal.
Dafür funktioniert jetzt alles. :D

Danke für deine Zeit und  Unterstützung.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

database

Sehr gut!

Zum Helfen sind wir hier! :)

Interessant wäre es aber nun noch festzustellen ob die INSERT INTO mit dieser neuerstellten Hilf2 funktioniert.

versuchs mal:

CurrentDb.Execute ("INSERT INTO Hilf2(Auftrag_Nr,Sachbearbeiter) " & " SELECT Auftrag_Nr,Sachbearbeiter FROM AUFTRÄGE WHERE Auftrag_Nr IN(SELECT Auftrag_Nr FROM Hilf1)")


Ansonsten einen schönen Tag noch!

Grüße

Peter

T417

#10
Jou. Interessant. Jetzt funktioniert INSERT INTO.
Hast du diesbezüglich eine Idee woran das liegen könnte?

Ich habe bei den Tabellen zwischendurch die Felddatentyen geändert. AUFTRÄGE stamm eigendlich von einer andern Db und dort war Auftrag_Nr als Autowert definiert. Womit ich aber nicht arbeiten kann, weshalb ich es auf Zahl umgestellt habe.
Reicht das schon für so einen nervigen Fehler?


EDIT: Außerdem macht die DB immer Ärger bei der Spalte Bestell-Nr. Hab nur noch nicht herausgefunden warum...

Grüße
T.
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hallo,

"Ärger bei der Spalte Bestell-Nr."


WO, WANN, bei welchem Vorgang?


Vermutlich willst Du (bzw. will Access, weil es ja folgsam ist) vom Wert in Feld  Bestell  den Wert in Feld Nr. abziehen..


Eigentlich habe ich bestimmt schon 1000 Mal erzählt, dass man in Namen auf Sonder- und Leerzeichen dringend(!!) verzichten sollte.


MINDESTENS müssen aber bei solcher Benamsung Eckklammern um den Feldnamen herum  benutzt werden.

T417

Hi.

Also wie ich oben beschrieben habe, bin ich dabei eine Tabelle einer anderen Datenbank einzufügen. Und diese ist nicht von mir programmiert worden.
Ich bin nur derjenige der die Daten sammeln und in meine eigende Datenbank einpflegen muss.
Also geht das mit den Sonderzeichen nicht auf meine Kappe. ;)

Aber das mit den eckigen Klammern probiere ich sofort aus. Das klingt nach einer typischen Access-Falle.

Danke
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7

DF6GL

Hi,


naja, es ist egal, woher die DB stammt. Du nur hast halt jetzt den Schwarzen Peter  :D ;)

Es ist auch keine Access-Falle, sondern halt einfach Schludrigkeit (von dem der sowas produziert) ob der Ignoranz der o. g. Regel ...

Auch in keiner anderen mathematisch orientierten Programmiersprache ist ein math. Operator in einem VariablenNamen erlaubt, wenn der Variablenname nicht eindeutig gekennzeichnet wird (bzw. werden kann).

T417

Zitat von: DF6GL am Oktober 06, 2010, 14:58:27
Auch in keiner anderen mathematisch orientierten Programmiersprache ist ein math. Operator in einem VariablenNamen erlaubt, wenn der Variablenname nicht eindeutig gekennzeichnet wird (bzw. werden kann).
Stimmt. Ich kenne da auch keine andere Programmiersprache die sowas erlaubt. Jetzt wo du das erwähnst...

Aber ich hab das mit den eckigen Klammern ausprobiert. Das war doch tatsächlich der Fehler. Mit eckigen Klammer klappt es einwandfrei.  :)

Mit "Schludrigkeit" hast du wohl auch recht. Mein Vorgänger hat alle Spalten mit Unterstrich beschrieben, nur Bestell-Nr nicht.  Ziemlich Ärgerlich...>:(

Aber dafür klappt es jetzt. :)
Danke...
Arbeite normalerweise mit Access 2000/2003
In letzter Zeit häufiger mit Access 2007

Sowohl auf WinXP als auch auf Win7