Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: maddhin am Juli 15, 2020, 12:35:47

Titel: Popup: filtern nach Firma und Focus auf aktuelles Produkt?
Beitrag von: maddhin am Juli 15, 2020, 12:35:47
Hallo,

ich habe mir eine Produktübersicht gebastelt. Wenn man jetzt z.B. auf Produkt-ID doppelklickt, wird ein Popup geladen, welches alle Produktdetails anzeigt. So weit so gut.

Da viele Firmen aber mehrere Produkte haben, hätte ich gerne, dass in dem Popup neben dem angeklickten Produkt auch noch die anderen Produkte der Firma "auftauchen", d.h. das angeklickte Produkt soll geladen werden und die weiteren Produkte via "nächster Datensatz" etc erreichbar sein.

Im Moment kann ich zwar alle Produkte der Firma anzeigen (Filter nach Firma-ID) lassen, aber das angeklickte Produkt ist dann nicht "im Fokus" sondern taucht dann irgendwann beim Durchgehen der Datensätze auf...

Kann man diese beiden Dinge irgendwie vereinen?
Titel: Re: Popup: filtern nach Firma und Focus auf aktuelles Produkt?
Beitrag von: ebs17 am Juli 15, 2020, 13:28:18
Du würdest für das PopUp eine Datenherkunft benötigen, die alle Produkte zeigen kann und die nach Firma gefiltert werden kann.

Beim Öffnen des PopUp gibst Du eine WHERE-Condition beim OpenForm mit. Damit kannst Du gezielt auf Deine Firma filtern. Gleichzeitig übergibst Du beim OpenForm als OpenArgs die ID zum Produkt. Damit kannst Du dann den Fokus auf den gewünschten Datensatz setzen, analog Gleicher Datensatz nach Requery (http://www.donkarl.com?FAQ4.5)
Titel: Re: Popup: filtern nach Firma und Focus auf aktuelles Produkt?
Beitrag von: maddhin am Juli 16, 2020, 02:49:26
@ebs17: lieben Dank, "recordset.findfirst" war der Tipp, den ich gebraucht habe!

Anbei die bzw. eine komplette Lösung für Leute, die ein ähnliches Problem haben:

'Function to open the product popup
Function ProductPopup()
Dim oForm As Form
Dim strCaption As String
Set oForm = Form_fsubProductPopup

'change name of the new form's caption to the current product name
If IsNull(Me.Product_Name) Then
strCaption = "No Name"
Else: strCaption = Me.Product_Name
End If
oForm.Caption = strCaption

'Filter the form for the choosen company
oForm.Filter = "ID_Corp=" & Me.ID_Corp
oForm.FilterOn = True
'Set focus on product which was doubleclicked
oForm.Recordset.FindFirst "ID_Product=" & Me.ID_Product
'Set popup size
oForm.InsideHeight = 10000
oForm.InsideWidth = 18000
'make the form appear
oForm.Visible = True
End Function

Private Sub ID_Product_DblClick(Cancel As Integer)
Call ProductPopup
End Sub