Hallo,
weiss jetzt nicht ob dieses Thema unter Programmierung richtig ist. Sorry hierfür. Notfalls bitte verschieben.
Ich habe eine Frage zum Listenfeld mit Mehrfachauswahl.
Ich möchte die im Listenfeld ausgewählten DS mit einer Nr aus dem HF verknüpfen.
Im Prinzip so.
Das HF hat die NR 110
Im Listenfeld stehen folgende Daten
Listenfeld
LfdNR Artikel HFNR
---------------------------------
1 Hose
2 Tasche
3 Anzug
4 Jacke
Wähle ich jetzt im Listenfeld z.b. Hose und Jacke aus,
dann soll HFNR = NR 110 sein.
Geht so was oder ist das der flasche Ansatz ? ( wenn ihr versteht was ich meine )?
Lg Bernie
Hallo,
verstehe was du meinst. Du musst die RowSource des Listenfeldes im Ereignis "Beim Anzeigen" anpassen.
Private Sub Form_Current()
Me.Liste1.ColumnCount = 3
Me.Liste1.RowSource = "Select LfdNR, Artikel, '" & Me.HFNR & "' As HFNR From tblArtikel"
Me.Liste1.Requery
End Sub
Andreas
Hi Andi,
danke ersteinmal für deine Antwort. Funktioniert leider nicht, weil ich mich vll mal wieder falsch ausgedrückt habe.
Also das Listenfeld wird wie folgt befüllt :
Me!Liste43.RowSource = "Select Menge, Einheitencode, Ausprägungscode, Packstück_ID, Ladungsträger_ID_ACC FROM ARTIKEL_ERFASSUNG_UFO_f_Packstückauswahl WHERE Ladungsträger_ID_ACC =" & Me!Ladungsträger_ID
HF = Packstück..Abfrage : ARTIKEL_ERFASSUNG_UFO_f_Packstückauswahl
Hier gibt es die Felder
Packstück_ID = Autowert_PK
Auftrags_ID = Zahl Integer ( Wert wird mitgeliefert )
(es werden dann noch Länge/Breite ect für des Packstückes erfasst )
Um alle Artikel eines Auftrages angezeigt zu bekommen, befülle ich das Listenfeld erst einmal mit allen Artikel des Auftrages.
Listenfeld = TblArtikel
Hier soll der User dann eben auswählen. welche Artikel aus dem Auftrag in das Packstück kommen.
Die Verküpfung dieses Vorgangs ist
HF Packstück_ID
ARTIKEL Packstück_ID
Lg Bernie
Bernie, die Rowsource stimmt aber nicht mit der Aussage überein dass nur lfdNr und Artikel in der Liste steht....
Wie heißt denn das Feld HFNR im Hauptformular wirklich? Was für ein Datentyp?
Andreas
Hi Andi,
das Feld im HF Tbl_Packstücke heisst Packstück_ID
und das Feld in der Tabelle Artikel heisst auch Packstück_ID
Sind beide Zahlenfelder.
In Beziehung stehen 3 Tabellen:
1. ) Tbl_Ladungsträger = Ladungsträger_ID
2. ) Tbl_Packstücke = Packstück_ID und Ladungsträger_ID_ACC
3. ) Tbl_Artikel = Artikel_Nr und Ladungsträger_ID und Packstück_ID
Als erstes werden die Daten in Tbl_Packstücke und Tbl_Artikel via den Ladungsträger_IDs mit der Tabelle : Tbl_Ladungsträger verknüpft.
Das heisst man weiss welcher Artikel in einem Ladungsträger ist.
So und jetzt kommt es, dass ich auch noch wissen möchte welcher Artikel in welchem Packstück ist.
Daher muss die Verknüpfung so lauten :
TBL_Packstücke.Packstücke.ID = TBL_Artikel.Packstück_ID
so und nun dachte ich mir, anhand eines Listenfeldes mit mehrfachauswahl, die artikel einfach anzuklicken und die o.g. Verknüpfung per Button_Click für die ausgewählten DS zuerhalten.
Weiss nicht ob das der richtige weg ist.
Momentan erfolgt diese Verknüpfung in dem Man die Pckstück_ID des HF kopiert und in die Einzelnen DS im UFO ( Datenblatt welches eben mit Ladungsträger_ID = Ladunsträger_ID_ACC verknüpft ist ) in das Feld Packstück_ID einfüge.
ich wollte es jetzt nicht so kompliziert machen, daher das etwas einfachere Schaubild :
Das HF_Packstück hat die NR 110
Im Listenfeld stehen folgende Daten
Listenfeld
LfdNR Artikel Artikel_verknüpguns_NR_zum_HF_Packstücke
------------------------------------------------------------------------------
1 Hose
2 Tasche
3 Anzug
4 Jacke
jetzt möchte ich eben die dick angezeigten DS anklicken und dann
dieses Ergebnis bekommen
Eben die Daten verknüpfen.
LfdNR Artikel Artikel_verknüpguns_NR_zum_HF_Packstücke
------------------------------------------------------------------------------
1 Hose NR 110
2 Tasche
3 Anzug NR 110
4 Jacke
So sind Hose und Jacke mit dem Packstück verknüpft.
ist das jetzt besser verständlich ? Sorry tu mich da imemr etwas schwer dies zu erklären. Daher bitte um etwas Nachsicht ;-)
Lg Bernie
Aber die RowSource des Listenfeldes lautet doch:
Select Menge, Einheitencode, Ausprägungscode, Packstück_ID, Ladungsträger_ID_ACC FROM ARTIKEL_ERFASSUNG_UFO_f_Packstückauswahl WHERE Ladungsträger_ID_ACC =" & Me!Ladungsträger_ID
Was ist davon jetzt LfdNr und was Artikel??
Da stimmt doch was nicht!
Hi,
das sind alles Felder die aus der Artikel Tabelle stammen.
Die Liste wird auch mit den richtigen Daten befüllt.
Das funktioniert soweit auch.
Meine Frage ist doch nur, wenn diese Liste befüllt ist, dann befinden sich doch DS darin.
Wenn ich mittels Mehrfachauswahl mehre Datensätze markiere .. (und hier nochmals die Frage,)
kann ich dann den markierten DS einen Wert verpassen, der wiederum mein Packstück mit den markierten DS verknüpft ?
Ich weiss ja nicht ob oder wie das funktioniert.
Selbst Access bietet dir so eine ähnliche Funktion.
Du schiebst DS von einem Listenfeld in das Andere .. und genau so was möchte ich umsetzen
Lg Bernie
P.s. Bitte nicht mit mir verzeifeln.
Hallo,
ich befürchte, Du eierst immer noch mit falschen/ungenügenden Tabellen-Beziehungen herum....
Du brauchst Tabellen, die die Stammdaten (Artikel, Packstücke etc ) enthalten und (mindestens) eine Tabelle, die es erlaubt, diese Daten miteinander zu verbinden (z. B: "tblPackstückArtikel") .
Über Listenfelder sich zu unterhalten, wenn die dahinterliegenden Tabellen nicht vorhanden sind, ist fehl am Platz.
ZitatDu schiebst DS von einem Listenfeld in das Andere .. und genau so was möchte ich umsetzen
Durchlaufe das Listenfeld über die markierten Einträge (SelectedItems) und aktualisiere jedes Mal die entspr. Tabelle mit einer Aktionsabfrage (Update, bzw. Insert-SQL-String).
Hi,
ZitatDu brauchst Tabellen, die die Stammdaten (Artikel, Packstücke etc ) enthalten und (mindestens) eine Tabelle, die es erlaubt, diese Daten miteinander zu verbinden (z. B: "tblPackstückArtikel")
Wie noch eine Tabelle ? also eine 4te ? Ich dachte eigentlich, dass die Tbl_Packstücke diesen Part übernimmt.
ZitatDurchlaufe das Listenfeld über die markierten Einträge (SelectedItems) und aktualisiere jedes Mal die entspr. Tabelle mit einer Aktionsabfrage (Update, bzw. Insert-SQL-String).
???
Ok das ist zu hoch für mich. Hättest du hierfür vll ein Code Beispiel ?
Lg Bernie
Hi,
ich habs jetzt mal so probiert,
ZitatIf MsgBox("Wollen Sie diese Artikel in das Packstück übernehmen ?", vbYesNo) = vbYes Then
'---------------------------------------------------------------------
If Me!ARTIKEL_ERFASSUNG_Auswahl_UFO.Form.Recordset.RecordCount > 0 Then
Dim rs As DAO.Recordset
Dim varItem As Variant
Set rs = Me!ARTIKEL_ERFASSUNG_Auswahl_UFO.Form.RecordsetClone
Do Until rs.EOF
rs.Edit
'---------------------------------------------
For Each varItem In Me!Liste43.ItemsSelected
rs!Packstück_ID = Me.Packstueck_ID
Next varItem
'--------------------------------------------
rs.Update
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Me!ARTIKEL_ERFASSUNG_Auswahl_UFO.Requery
Me.ARTIKEL_ERFASSUNG_UFO_f_Packstueck.Requery
End If
Me.ARTIKEL_ERFASSUNG_UFO_F_PACKSTÜCKAUSWAHL.Requery
Me.ARTIKEL_ERFASSUNG_UFO_f_Packstueck.Requery
End If
Er übernimmt jetzt alle und leider nicht die im Listenfeld ausgewählten.