PDA

Vollständige Version anzeigen : Insert Into kombiniert mit AutoWert


Tiba Tibbs
22.10.2001, 10:50
Hallo mal wieder,
ich möchte in eine Tabelle mit "insert into TABELLE select * from ABFRAGE" werte einfügen.
leider (oder glücklicherweise) wird der autowert-wert nicht ge-auto-wertet, sondern aus der ABFRGAE übernommen. wenn ich aber den datensatz anfügen möchte, so dass der nächste autowert genommen wird und NICHT der eintrag der ersten spalte meiner ABFRAGE,
wie kann ich das machen?

wow, ich hoffe ich habe das einigermassen verädnlich ausgedrückt!!!

vielen dank jetzt schonmal
-tiba

LIF
22.10.2001, 11:04
Ein Autowert wird immer als Long eingefügt.
Bevor du Daten in die Tabelle einfügst setze den Autowert auf Long.
Danach fügst Du die Daten ein. Nach dem einfügen setzt Du das feld wieder auf den Autowert zurück. ACCESS berechnet neu und fängt beim manuellen einfügen, ab dem letzten / höchsten Wert weiter an hoch zu zählen.
Gruss

Tiba Tibbs
22.10.2001, 11:10
hi LIF,
danke für die schnelle Antwort, aber ich habe mich doch etwas unklar ausgedrückt!

ich will den autowert bei dem einfügen BENUTZEN nicht überschreiben

du hast mir die perfekte lösung für das umgekehrte problem geboten, dass den autowert für die zeit des einfügens ausser funktion setzt
-tiba

Scorefun
22.10.2001, 11:15
Hallo TibaTibbs,

schau mal hier im Downloadbereich vorbei.]

Könnte das sein, was Du suchst.

Das klappt auch mit einem Autowert-Feld.
Nur muß man dann die Codezeilen mit dem MaxID und dem rziel.fields(0) = Max_ID + 1 entfernen...

LIF
22.10.2001, 11:17
Kein Problem.
Du darfst dann in das Feld mit dem Autowert keine Datensätze einfügen. Dann zählt ACCSESS bei jedem Insert alleine weiter.

Zu Deinem Report-Problem.
Man sollte im Report nie programmieren.
Lass die Tabelledaten über eine Abfrage laufen und füge in der Abfrage ein Feld Hinzu z.B.
XAnrede:Wenn([Anrede] = "Herr";"Sehr geehrter";"Sehr geehrte")
XAnrede kannst du dann wie jedes andere Berichtsfeld plazieren.
Gruss

Tiba Tibbs
22.10.2001, 16:55
Hi LIF:
INSERT PROBLEM:
ich habe versucht in meiner abfrage das erste feld einfach leer zu lassen.
dann sagt er beim einfügen aber es steht in der schlüsselspalte (das ist sie nämlich) kein wert drin, kann also nicht einfügen


REPORT Problem:
gelöst... danke das mit der zusatzspalte ist eine gute idee!

Tiba Tibbs
22.10.2001, 20:23
@RALF
hi, danke für deinen hinweis, das würde auch sicherlich funktionieren.. aber ich denke da muss es eine wesentlich einfachere (und schnellere) lösung geben, in der art wie sie LIF vorgeschlagen hat..
vielleicht geht das auch wie er gesagt hat, nur ich habe es leider noch nicht hingekriegt...

@LIF
deswegen nochmal die Frage LIF:
was genau soll in meiner ABFRAGE in der ersten spalte für ein wert stehen? 0 - wohl nicht. NULL scheint irgendwie nicht zu gehen, dann kann er es garnicht einfügen..
aber wenn du sagst, es musss so gehen dann habe ich vielleicht irgendeine option falsch eingestellt.....

vielen dank soweit
-Tiba Tibbs

Tiba Tibbs
22.10.2001, 20:32
@ALLE
Leute, ich habs hingekriegt.... es war so wie du gesacht hattest LIF, nur geht das nicht mit insert into select *,
sondern mann muss die felder einzeln wählen und das erste einfach weglassen, nicht leerlassen!!!
aber danke, ihr habt mir sehr geholfen!!!
Tiba Tibbs