PDA

Vollständige Version anzeigen : komplette Datensätze (Zeilen) speichern


Martina Schnick
06.03.2001, 11:28
Hallo,

ich muss aus einer Tabelle 2 machen. Dafür habe ich ein Modul erstellt, mit dem ich die wichtigen Felder vergleiche und sie dann in die entsprechende Tabelle speichere.
Das mache ich im Moment mit folgenden Befehlen:

if..................then
tb.AddNew
tb!Bezeichnung = ta!Bezeichnung
tb!Feld3 = ta!Seriennr
tb!Feld16 = i
tb.Update
......

ta ist die Ausgangstabelle und tb ist eine der 2 Tabellen. Wie ihr seht ist es ziemlich blöd, jedes einzelne Feld in die Tabelle zu speichern. Wie kann ich das Zeilenweise bzw. den ganzen Datensatz mit "einem" befehl speichern ??

Danke im voraus

Martina

KaiB
06.03.2001, 18:05
Hallo Martina,

für die Lösung des Problems schlage ich Dir SQL vor.

DoCmd.RunSQL "Insert into tbl_NeueTabelle1 Select * from tbl_Ausgangstabelle where dt_Vergleich=Variable;"

In diesem Beispiel wird der Inhalt des Feldes dt_Vergleich mit einer Variablen verglichen. Bei Übereinstimmung wird der komplette Datensatz aus der Ausgangstabelle in die NeueTabelle1 übertragen.

Kai

Nockenwelle
06.03.2001, 20:13
Hallo,

da führen viele Wege nach Rom.
z. B. kannst du dir auch eine gespeicherte Parameterabfrage erstellen, und diese ausführen.
z. B.:
PARAMETERS ADR_ID Long, ADR_ID_ORG Long;
INSERT INTO adresse ( adresse_id, name_1, name_2, strasse_1, hausnummer, staat, postleitzahl_str, ort_str_1, postfach, postleitzahl_pf, ort_pf_1 )
SELECT [ADR_ID] AS Ausdr1, adresse.name_1, adresse.name_2, adresse.strasse_1, adresse.hausnummer, adresse.staat, adresse.postleitzahl_str, adresse.ort_str_1, adresse.ort_str_2, adresse.postfach, adresse.postleitzahl_pf, adresse.ort_pf_1 FROM adresse
WHERE (((adresse.adresse_id)=[ADR_ID_ORG]));

(Ich weiss, diese Abfrage verweist in Quelle und Ziel auf die Gleiche Tabelle, aber ich musste Datensätze dublizieren, und eine neue ID vergeben)

in VBA konnte ich die dan so ausführen:
Set qdf = dbs.QueryDefs("erstelle neue Adressen")
qdf.Parameters![ADR_ID]= rst1!ADR_ID
qdf.Parameters![ADR_ID_ORG]=rst2!rst2!ADR_ID
qdf.execute

Damit habe ich genau einen DS angefügt.

Ich mein, diese Abfragen gehen etwas schneller, weil sie die Indices benutzen.

Cu