PDA

Vollständige Version anzeigen : Anfüge-Abfrage aus Formular starten


Bemero
29.09.2005, 15:30
Hallo Experten,

ich hänge an folgendem Problem fest:

Ich habe eine Anfüge-Abfrage, die aus einer Excel Datei Daten in eine Access Tabelle anfügt.
Es werden 2 Felder in der Zieltabelle ausgefüllt.
Das erste ist in der Excel Tabelle vorhanden. Das zweite wird in einem Formular dazu ausgewählt.

In der Anfügeabfrage habe ich also das 2. Feld mit einem Verweis auf die Form hinterlegt:
unter der Spalte Expr1: [Einlad_id] steht:
[forms].[frm_Start].[cbo_EinladeDetails]

in SQL sieht das so aus:

INSERT INTO tbl_BETrachteteFilme ( BETF_PERS_ID, BETF_EINL_ID )
SELECT KollegenExport_xls.F1, [Einlad_id] AS Expr1
FROM KollegenExport_xls
WHERE ((([Einlad_id])=forms.frm_Start.cbo_EinladeDetails));

Das ganze wird per Button aus dem Formular frm_Start gestartet. Dort wird auch das Feld ausgewählt.
Nur leider wird der Eintrag ignoriert und ich werde in einem Fenster nach der Einlad_id gefragt. Genau das wollte ich („geschickt“) vermeiden, indem ich aus dem Formular her aufrufe und so diesen Eintrag auswähle.

Vielleicht kann man das ohne die kompilierte Abfrage auch direkt mit SQL in VBA machen? Wie würde das gehen?
Für Hinweise und Tipps bin ich dankbar.

Ich hoffe das war verständlich.
Vielen Dank
Viele Grüße

Bernhard

Arne Dieckmann
29.09.2005, 15:35
Vielleicht suchst du ja so etwas?:

Dim strSQL As String

strSQL = "INSERT INTO tbl_BETrachteteFilme ( BETF_PERS_ID, BETF_EINL_ID )" & _
" SELECT KollegenExport_xls.F1, " & Me!EinladeDetails & _
" FROM KollegenExport_xls"

CurrentDb.Execute strSQL

Bemero
06.10.2005, 09:28
Hallo Arne,

danke für die Hilfe.
Es funktioniert leider noch nicht, da der Wert Me!EinladeDetails eine Fehlermeldung hervorruft. Access versucht ihn in der Tabelle zu finden. Der Wert kommt jedoch aus einer Eingabe in dem Formular.

Ein Mix aus Tabelle und Formular sozusagen.

Kannst du mir weiterhelfen?

Danke! :-)

viele Grüße,

Bernhard

Arne Dieckmann
06.10.2005, 09:51
Wenn ich es richtig verstehe, funktioniert mein Vorschlag, wenn der Code in einem Formularmodul steht. Ansonsten müsstest du statt Me! eben Forms!DeinFormlarname! einsetzen.

Evtl. erläuterst du dein Problem aber mal genauer (die Fehlermeldung wäre auch nett).

Bemero
06.10.2005, 13:01
Hallo Arne,

vielen Dank für die Hilfe - es funktioniert!
Der Fehler lag bei mir - ich hatte das Feld im Formular nicht richtig in den SQL Code geschrieben. Peinlich, peinlich!

Danke!

Ich kämpfe jetzt weiter mit der Datenbank! ;-)

Viele Grüße,

Bernhard