INSERT in Access97

Hallo.
Habe ein Formular unter Access, Elemente aus 3 verschiedenen Tabellen besitzt.
Num möchte ich eine Schaltfläche haben, die
beim Anklicken auf einige Tabellen
verschiedene Inserts ausführt. Wie
kann ich das realiesieren?
Ein Beispiel:

Formular besteht aus:
Listfield mit Daten aus Tabelle A.
Listfield mit Daten aus Tabelle B.
Textfeld gebunden an Tabelle C.

Nun möchte ich beim Klicken auf ein Button eine/Mehrere SQL-INSERT-Anweisung ausführen,
wobei Tabelle A/B/C jeweils angesprochen werden!
Wie erschaffe ich ein Obj. und wie spreche ich die Tabellen innerhalb von INSERT an?
Danke!

Da brauchst du keine grossartigen Objekte…

Dim DB As Database
Set DB = CurrentDB
DB.Execute "INSERT INTO tblXYZ (Vorname, Nachname, Zahl) " & \_ 
 "VALUES ('Karl', 'Meier', 12)"
'bzw. wenn du deine Werte aus Variablen speisen willst:
DB.Execute "INSERT INTO tblXYZ (Vorname, Nachname, Zahl) " & \_
 "VALUES ('" & Vorname & "', '" & Nachname "', " & MeineZahl & ")"

Reinhard

Hallo Reinhard.
Vielen Dank für den Tipp…
Aber da ergeben sich wieder fragen:

1.) Wenn ich einen SELECT mache und die Ergebnismenge bearbeiten oder bzw. in ein Listenfeld darstellen möchte…wie mache ich das?

2.)Da hattest gesagt, wie ich die Variablen
beim Insert einsetzen kann. ich habe versucht VB-Mäßig erst Formularname einzugeben und dann den Namen für das Element, z.B. frm_XY.texFeldYY.Text …
aber das geht nicht! Wie mache ich das?

3.) Wie kann ich die Variablen aus einem
Listenfeld und Combofeld auslesen?
Z.B. Hat mein Combofeld 4 Spalten und
das ID ist verstecht in der 4. Spalte!
Wie kann ich das ID nun in mein INSERT einfügen? (selbe beim Listenfeld).

Danke Dir…
auch für Deine früheren Tipps :wink:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Reinhard.
Vielen Dank für den Tipp…
Aber da ergeben sich wieder fragen:

1.) Wenn ich einen SELECT mache und die
Ergebnismenge bearbeiten oder bzw. in ein
Listenfeld darstellen möchte…wie mache
ich das?

Ergebnisse einer Select-Klausel erhältst du über ein Recordset-Objekt (siehe in der Hilfe zum Thema). Die Daten dann in ein Listenfeld hinein zu bekommen ist zwar möglich, aber komplex (entweder über eine selbstgebastelte Werteliste oder eine Funktion als Grundlage des Listenfelds - steht ebenfalls in der Hilfe beschrieben). Aber normalerweise ist das gar nicht nötig - ein Listenfeld hat eine eigene RowSource - deren SELECT-SQL-Statement du dynamisch setzen kannst. (Hinterher ein Requery machen!)

2.)Da hattest gesagt, wie ich die
Variablen
beim Insert einsetzen kann. ich habe
versucht VB-Mäßig erst Formularname
einzugeben und dann den Namen für das
Element, z.B. frm_XY.texFeldYY.Text …
aber das geht nicht! Wie mache ich das?

Das aktuelle Formular heisst (wie in VB!) „Me“, das richtige Trennzeichen ist das Ausrufungszeichen, also sehen Referenzen auf den Wert eines Textfelds aus dem Code des Formulars so aus:

Me!MeinTextfeld.Value

da „Value“ die Standardeigenschaft ist, kannst du es weglassen:

Me!MeinTextfeld

Aus anderen Formularen heisst es:

Forms!MeinFormular!MeinTextFeld

oder auch:

Forms(„MeinFormular“)(„MeinTextFeld“)

3.) Wie kann ich die Variablen aus einem
Listenfeld und Combofeld auslesen?
Z.B. Hat mein Combofeld 4 Spalten und
das ID ist verstecht in der 4. Spalte!
Wie kann ich das ID nun in mein INSERT
einfügen? (selbe beim Listenfeld).

Dafür gibt es die Column-Eigenschaft (in deinem Fall:

Me!MeinKombifeld.Column(3)

Reinhard

Hallo Reinhard,

es hat sich bei mir folgendes Problem
ergeben:
Beim INSERT bekomme ich folgende Meldung:
„Sie können die Eigenschaften odr Methoden eines Steuerelements nur dann auswerten, wenn das Steuerelement den Fokus hat“

Dann bekomme ich weiter Tipps!!
Tja…was soll das?
Ich will nur einen simplen Insert auf die Tabelle machen!

Am besten baust du die SQL für die Abfrage dynamisch auf. D.h. du wertest den Inhalt des Formularfelds dann aus, wenn das Formular sichtbar ist (am besten per Schaltfläche oder Ereignisprozedur
genau dieses Formulars)

Wie’s genau geht, hängt von deiner konkreten Problemstellung ab…

Reinhard