Hallo Norman,
Das Formular heißt „MA_MAI_Product_selection“
das kannm an abkürzen mit dem Kürzel ME.
Das Listenfeld heißt „Liste3“
ok
Es hat eine Spalte, die Werte kommen hierher:
SELECT „dbo“.„TEMP_MA_MAI_product“.„MAI_product“ FROM
„dbo“.„TEMP_MA_MAI_product“ GROUP BY MAI_product ORDER BY
„MAI_product“;
- Möglichkeit: Auswahl = ME.Liste3
- Möglichkeit: Auswahl = Me.Liste3.column(0)
das Ergebnis in Auswahl ist das selbe, bei der 2. Möglichkeit wird lediglich eine Spalte direkt angesprochen, was sinnvoll ist, wenn man mehrere Spalten hat.
Die Tabelle, in die die Werte geschrieben werden sollen, heißt
„MA_MAI_selected_product“
Ich hab es mir grob so vorgestellt:
DELETE FROM MA_MAI_selected_product
? warum das Löschen
INSERT INTO MA_MAI_selected_product
Insert WAS?
SELECT * from TEMP_MA_MAI_product WHERE
MAI_product=„angewaehltes_Listenelement“
? warum dann nochmal eine Auswahl
Wohne in München und brauche es an der Arbeit…
gibt es dort niemanden, der dir zur Seite stehen kann?
Ganz so ist es ja nicht, aber ich habe hier grade als
Werkstudent neu angefangen, und hab Access und VBA im Leben
halt noch nie benutzt…
warum schreibst du das nicht gleich? Mit solchen Informationen fallen die Antworten gleich umfangreicher aus, also keine falsche Scham, wir haben alle mal angefangen 
So nun zum Problem:
Im Listenfeld (Liste3) soll per Maus eine Auswahl getroffen werden und mit Doppelklick dann der Wert dieser Auswahl in eine Tabelle geschrieben (hinzugefügt) werden.
Vorbereitung:
Rechtsklick auf das Listenfeld
Eigenschaften wählen
Reiter = Ereignis
Doppelklick auf die Wörter: Beim Doppelklicken
[Ereignisprozedur] erscheint
am Ende der Zeile auf die drei Punkte […] klicken
der VBA - Editor wird geöffnet
es ist bereits vorgegeben:
Private Sub Liste0_DblClick(Cancel As Integer)
End Sub
dazwischen kommt jetzt der VBA Code:
Wir wissen, dass ME. das Kürzel dür das gerade offene Formular ist.
Wir wissen, dass die Liste LISTE3 heißt.
Wir können also nun die Information der Liste direkt ansprechen:
ME.Liste3
„Schlau“ wie Access ist, gibt es uns direkt die Information, die wir vorher ausgewählt haben. D.h. in ME.Liste3 ist schon unser Ergebnis!
was wollen wir mit diesen Daten machen: Anfügen an eine Tabelle:
Ohne viel Aufwand (es gibt noch einen umfangreicheren Weg) können wir in VBA eine SQL-Abfrage (Anfügeabfrage) aufrufen:
DOCMD.RUNSQL xxxxxx
Wir müssen uns jetzt nur noch diese SQL-Anweisung zusammen bauen:
Da du uns/mir immer noch nicht verraten hast, wie das Feld in der Tabelle heißt, in dem du die Information speichern willst, gehe ich mal davon aus, das in der Tabelle MA_MAI_selected_product es ein Feld mit der Bezeichnung PRODUCT gibt.
Mit den nun vorhandenen Bezeichnngen können wir uns einen SQL-String zusammenbauen:
meine_SQL_Anweisung = „INSERT INTO MA_MAI_selected_product ( PRODUCT ) SELECT '“ & ME.Liste3 & „’ AS Dummy, *;“
die vollständige SUB-Prozedur sieht dann so aus:
*-----------------------------------------
Private Sub Liste0_DblClick(Cancel As Integer)
Dim xSQL As String
‚den SQL-String basteln
xSQL = „INSERT INTO MA_MAI_selected_product ( PRODUCT ) SELECT '“ & Me.Liste3 & "‘ AS Dummy, *;"
'den SQL-String ausführen
DoCmd.RunSQL xSQL
End Sub
*-----------------------------------------
ok, das ist der reine Code, ohne Fehlerkontrolle etc.
Grüße aus Essen
Wolfgang