Hallo Franz,
hier nochmal die komplette Routine, habe versucht das so anzupassen, wie du es meinst:
----- zuerst die Funktion die eine Menge berechnet---------
Function Fuellen(Pos, TMengeN, TMengeG, TMengeV)
Bezeichnung1 = „TProspekt“ & Pos
Bezeichnung2 = „TStückzahl“ & Pos
If DLookup("[PTypZ]", „Prospektdaten“, Bezeichnung1 & " = PBezeichnung") = -1 Then
Fuellen = TMengeN + TMengeG + TMengeV 'Zeitung für alle
End If
If DLookup("[PTypP]", „Prospektdaten“, Bezeichnung1 & " = PBezeichnung") = -1 Then
Fuellen = TMengeN 'Prospekte nur für normale Haushalte
End If
If DLookup("[PTypI]", „Prospektdaten“, Bezeichnung1 & " = PBezeichnung") = -1 Then
Fuellen = TMengeN + TMengeG + TMengeV 'Infozettel für alle
End If
Me.Refresh
End Function
------------hier das Update, welches aus einer Funktion aufgerufen wird-------------
Function Ausfuellen(Nr)
Bezeichnung1 = „TProspekt“ & Nr
Bezeichnung2 = „TStückzahl“ & Nr
If Me.FilterOn Then
CurrentDb.Execute "UPDATE Tourenabfrage gefiltert SET " & Bezeichnung1 & „= '“ & Me(Bezeichnung1) & „’, & [Bezeichnung2] & " = Fuellen(Nr, [TMengeN], [TMengeG], [TMengeV]) & " WHERE TTourenplan=“ & Me!TTourenplan
Me.Requery
End If
End Function
-----------Hier der Aufruf, ausgelöst durch einen der zehn Button------
Private Sub Ausfuellen3_Click()
Call Ausfuellen(„03“)
End Sub
Jetzt stellt sich dir sicher die Frage wie das ganze funktionieren soll:
Das Formular hat 10 Zeilen in denen man jeweils ein Prospekt auswählen kann und per Knopfdruck soll z.B. das Prospekt in Zeile 1 in alle anderen Datensätze der Tourenabfrage auch auf Position 1 kopiert werden. Das klappt auch schon, die Schwierigkeit ist, dass es noch eine Stückzahl gibt. Diese muss bei jedem DS einzeln berechnet werden. Ich glaub das ist ganz schön kompliziert zu erklären…
Die Berechnung der Stückzahl ist dann noch vom Typ des Prospektes abhängig, deshalb die Funktion ganz oben…