Hallo und einen schonen guten Montag.
Ich habe zwei Tabellen. Eine Tabelle "tbl_Auftrag" und eine Tabelle"tbl_Auftragsinhalte".
Die Tabelle Auftragsinhalte beinhaltet verschiedene Produkte, welche einem Auftrag zugeordnet sind. Die beiden Tabellen sind logischerweise verknüpft.. Alsp die Tabelle Auftragsinhalte beinhaltet ein Feld ID_Auftrag. Es ist normal, dass einem Auftrag mehrere unterschiedliche Produkte zugeordnet sind.
Es sind einzelne Produkte darunter, die z.B. in einem Bericht einen extra Textblock benötigen.
Meine Frage ist nun, wie kann ich mit VBA herausfinden, ob ein Auftrag bestimmte Produkt enthält? Also noch konkreter an einem Beispiel: Auftrag10 enthält die Auftragsinhalte Produkt A, Produkt B, Produkt C. Wie kann ich eine Variable z.B. auf 1 setzen, wenn Auftrag10 das Produkt B enthält?
Freue mich auf Lösungsansätze.
LG
datekk
Hallo,
Zitatdie z.B. in einem Bericht einen extra Textblock benötigen
was hast Du denn überhaupt vor?
Willst Du das Textfeld je nach Artikel aus/einblenden?
Das könnte in der Ereignisprozedur "Beim Formatieren" passieren, in dem man beim aktuellen Artikel das Textfeld auf NULL prüft (oder eine in der Tabelle mitgeführte "Markierung" auswertet).
Ja, zum einen geht es um einen Textblock. Dieser soll aber nicht im Detailbereich erscheinen sondern z.B. im Berichtsfuß. Weiterhin soll an anderer Stelle über ein Formular bei einer Änderung eines Feldes nach dieser Eigenschaft gesucht werden. Eine erfolgreiche Prüfung soll ein Textfeld öffnen sowie eine Mail mit einem Bericht senden... Es ist also etwas komplexer.
Hallo,
besitzt der Textblock dynamische Daten oder ist der Inhalt statisch?
Wie auch immer, und egal wo sich das Textfeld (oder Bezeichnungsfeld) befindet, kann es ein/ausgeblendet werden in der Format-Ereignisprozedur des entspr. Bereiches.
ZitatWeiterhin soll an anderer Stelle über ein Formular bei einer Änderung eines Feldes nach dieser Eigenschaft gesucht werden.
unverständlich...
ZitatEine erfolgreiche Prüfung soll ein Textfeld öffnen sowie eine Mail mit einem Bericht senden...
Naja, wenn das Ereignis bekannt ist, bei dessen Auftreten das Textfeld "geöffnet" ( Ein Textfeld kann nicht geöffnet , allenfalls auf sichtbar eingestellt werden) kann die dazugehörende Ereignisprozedur das Ganze ja ausführen...
Zitatbesitzt der Textblock dynamische Daten oder ist der Inhalt statisch?
Wie auch immer, und egal wo sich das Textfeld (oder Bezeichnungsfeld) befindet, kann es ein/ausgeblendet werden in der Format-Ereignisprozedur des entspr. Bereiches.
Der Text wäre statisch und ich weiß auch, wie Textblöcke ein oder ausgeblendet werden. Nur wie frage ich das vorhandensein des bestimmten Inhalts ab sodass ich mittels IF anweisung den Textblock ein bzw. ausschalte? Einfach IF Produktname = "Produkt X" Then....???
ZitatZitat
Weiterhin soll an anderer Stelle über ein Formular bei einer Änderung eines Feldes nach dieser Eigenschaft gesucht werden.
unverständlich...
Ich versende ein Angebot mit bestimmten Inhalten. Erhalte ich dieses Angebot vom Kunden unterschrieben zurück, ändere ich über ein Formular in dem Datensatz den Status von Angebot auf Auftrag. In diesem Moment soll im Hintergrund geprüft werden, ob dieses Angebot einen gewissen Datensatz (ein bestimmtes Produkt) in der Tabelle "AngebotInhalte" aufweist. Wenn dies der Fall ist, soll eine Textmeldung erscheinen und eine Mail versand werden. Auch hier weiß ich, wie ich Textmeldungen erstelle und Mails versende.. Aber genau wie beim Bericht mit dem Textblock suche ich nach der Möglichkeit, wie ich z.B. die IF Klausel aufbaue. Es müsste so ähnlich ablaufen:
Behandlung des Kombinationsfelds im Formular... Aktion nach Aktualisierung:
Ist in der Tabelle "AngebotInhalte" bei Angeboten mit der Angebotsnummer 12345 in der Spalte Produkt
unter anderem ein Produkt Namens "Produkt X" vorhanden... Wenn ja, Textmeldung und Mail versenden, wenn nein Ende.
Hallo,
am Besten fragst Du mit DCount()-Funktion unter Übergabe der Angebotsnummer und der Artikelnummer als Kriterium die Tabelle "AngebotInhalte" ab, ob ein DS existiert und reagierst entspr.
Woher kommt denn die "bestimmte Artikelnummer"?
.
.
If Dcount ("*","AngebotInhalte","Angebotnummer = '" & Me!Angebotnummer & "' and ArtikelID = 99999) > 0 Then
'Artikel im Angebot vorhanden...
End If
.
.
... Danke, dass hört sich "funktionierbar" an.... Ich probier dies aus und melde mich asap.
Es gibt eine feste ArktikelID nach der gesucht wird.
Danke Franz, das hat funktioniert. Nur konnte ich auf die Hochkommas verzichten, da die Angebotsnummer/-ID kein String ist.
Also:
If DCount("*", "AngebotInhalte", "Angebot_ID = " & Me.ID_Angebot & "And ID_Produkt = 4") > 0 Then
Besten Dank.
*gelöst* :)