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 ")
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
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... :-\
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)
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.
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
Laufzeitfehler: '3010'
Tabelle 'Hilf2' ist bereits vorhanden.
Also jetzt bin ich überfragt. ???
Hallo,
SELECT INTO möchte eine neue Tabelle Hilf2 anlegen. Kannst du die alte Tabelle versuchsweise mal händisch löschen?
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.
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
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.
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.
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
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).
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...
na, da siehste mal... ;)
Yep, hat sich gelohnt. :)
Und mir viel noch auf, das ich ohne es zu merken, alle Tabellen, Spalten oder Formulare ohne Sonderzeichen oder ä,ö,ü Umlauten benannt habe.
Tja, so erspart man sich viel Ärger. ;)
Grüße
T.