Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Probleme mit "Like"

Begonnen von maute0311, September 29, 2010, 12:56:00

⏪ vorheriges - nächstes ⏩

maute0311

Hallo zusammen,

ich versuche aus einem Formular mit UFO einen Bericht drucken zu lassen.

Kurze Erklärung:
in meinem Kaufvertragsformular wird über ein Kombi der Artikel ausgewählt. z.B. Matratze XY oder Daunenbett XY
Wenn nun "Daunenbett XY" verkauft wird, möchte ich den Bericht "GutscheinBettenreinigung" drucken lassen.

Mein Versuch:
if me.Artikeldaten_Unterformular1!Kombinationsfeld18 like "*" & Daunenbett & "*" then
docmd.openreport "GutscheinBettenreinigung"
else
End if
der Code steht im Ereignis "beim verlassen" des UFO.

Leider Druckt er nicht den Bericht aus.

Ist mein Code falsch oder habe ich das falsche Ereignis gewählt?

Danke schonmal für Eure Hilfe

Gruß

Marc

bahasu

Zitat von: maute0311 am September 29, 2010, 12:56:00
if me.Artikeldaten_Unterformular1!Kombinationsfeld18 like "*" & Daunenbett & "*" then


Hi Marc

was passiert, wenn Du

"'*" & Daunenbett & "*'"

verwendest (Hochkomma zum Einrahmen)?


2. Ich hätte einen Druckbutton genommen, um den Druck zustarten.

Harald
Servus

maute0311

Hallo Harald,

ich habe es gemäß deinem Vorschlag geändert, es tut sich trotzdem nicht das gewünschte.

Auch habe ich den Code an einen Button gehängt, auch nichts.

Hast Du vielleicht noch einen anderen Vorschlag???

Gruß

Marc

bahasu

Hi Marc

hast Du schon per debugger bzw. mit einer zusätzlichen Zeile
msgbox "xyz"   ' {innerhalb der if - Anweisung, vor dem docmd.open...}
getestet, ob überhaupt dieser Befehl angesteuert wird?

Harald
Servus

maute0311

Hallo Harald,

die MSGBOX wird ignoriert.....

Gruß

Marc

MzKlMu

Hallo,
da gibt es erst noch einigen Klärungsbedarf.

Ist das Kombi im Ufo?
Wenn im Ufo mehrere Datensätze sind, wird nur der aktuelle Datensatz geprüft.
Steht dann Daunenbett immer vorn?
Ist die gebundene Spalte des Kombis die mit dem Namen?
Verwendest Du einen primärschlüssel für den Artikel?

Ich würde im Formularkopf des Ufos einen Button zum Drucken machen.
Im Ereignis "beim verlassen" des UFO ist das ungünstig, Du würdest ja einen Gutschein drucken, auch wenn Du das Formular nur ansiehst.

Mir scheint auch das datenmodell eher ungünstig. Du bräuchtest eine Tabelle mit den Oberbegriffen (1=Daunenbett, 2=Matratze) usw.
Dann kannst Du nähmlch auf die Zahl abfragen und sparst Dir das Like gedöns.


Gruß Klaus

maute0311

Hallo,

-Das Kombi befindet sich im UFO
-Das UFO kann mehrere Datensätze enthalten, die nicht alle Daunenbett sind.
-Daunenbett steht nicht immer vorne
-die gebundene Spalte ist der Name

Im Formularfuß ist bereits ein Button zum Drucken des Kaufvertrages, dort habe ich versucht den Code unterzubringen, ebenfalls ohne Erfolg.

Gruß

Marc

bahasu

N'abend,

wenn ich das recht verstanden habe, willst Du prüfen, ob ein langer Begriff ("Daunenbett xy")  einen kurzen Begriff enhält.

Vielleicht hilft Dir:
if InStr(me.Artikeldaten_Unterformular1!Kombinationsfeld18,"Daunenbett") > 0 then .... ' "Deinen Bericht drucken"

Harald
Servus

MzKlMu

Hallo,
wenn der Button zum Drucken im Formularfuß des Ufos ist, sollte das funktionieren:

If Me!Kombinationsfeld18 Like "Daunenbett*" Then
    DoCmd.OpenReport "GutscheinBettenreinigung"
End if



PS:
Du solltest Code grundätzlich kopieren, niemals abschreiben, damit die Helfer sicher sind, dass kein Tipfehler drin ist.
Dass abgeschrieben und nicht kopiert wurde erkennt man an den kleinen Buchstaben der Schlüsselworte.
Gruß Klaus

database

Hallo,

Wenn das Kombifeld als gebundene Spalte den Texteintrag besitzt sollte das Auslesen bzw. ein Zeichenfolgevergleich schon funktionieren.

Habe mit dem Vorschlag von MzKlMu das eben mal durchgespielt - passt!

Du kannst auch versuchen den Textinhalt des Kombis direkt abzufragen ...

If Me!Kobinationsfeld18.Text = "Daunenbett*" Then ...

Allerdings MUSST du dabei ZUVOR den Focus auf das Kombi legen --->  Me!Kobinationsfeld18.SetFocus

Grüße

Peter

maute0311

Hallo,

danke erstmal für Eure Mühe.

Ich glaube ich habe eine Information unterschlagen:

Das UFO ist als Datenblatt-Ansicht dargestellt. ( Hat das Auswirkungen auf die Funktion??? Leider funktionieren Eure Vorschläge nicht )

Der Button befindet sich nicht im UFO sonder im HFO.

Gruß

Marc

database

Hallo,

ZitatLeider funktionieren Eure Vorschläge nicht

Naja, wie denn auch - wir reden hier ja von völlig verschiedenen Voraussetzungen.
Wenn sich der Button auf dem Hauptformular befindet musst du das Steuerelement (Unterformular) des Hauptformulars und das im Unterformular enthaltene Steuerelement (Kombifeld ) richtig ansprechen.

Sieh zu dem Thema mal da rein und besonders den weiterführenden Link zu Dev Ashish!

www.donkarl.com?FAQ4.2

maute0311

Hallo,

Der Name des UFO-Steuerelementes ist "Artikeldaten_Unterformular1".
In meiner zuerst geposteten Frage habe ich den Bezug doch richtig geschrieben.
Zitatif me.Artikeldaten_Unterformular1!Kombinationsfeld18 like "*" & Daunenbett & "*" then
Der Name des Kombifeldes ist "Kombinationsfeld18" - der Steuerelementinhalt des Kombis ist "Artikel"

Gruß

Marc

database

Hallo,

hast du bei Dev Ashish nachgelesen?


To refer to a control     
On Mainform          Me!ControlName
On Sub 1               Me!Subform1.Form!ControlName

Für dich würde das sinngmäß lauten:

IF Me!Artikeldaten_Unterformular1.Form!Kombinationsfeld18 LIKE "Daunenbett*" Then

Versuch mal...

DF6GL

Hallo,

ich bezweifle erst mal, bis zur Behauptung des Gegenteils, dass sich der Vergleichswert nicht in Spalte 0 der Kombiliste befindet....   8)

Dort wird eher die ID des entspr. Datensatzes zu finden sein.


Wenn diese Referenzierung auf eine Kombifeldfeldspalte in einem UFO überhaupt zielführend ist, dann wird es vermutlich so heißen müssen, wenn der Wert in der zweiten Spalte (gezählt:1) steht:

if me!Artikeldaten_Unterformular1!Kombinationsfeld18.Column(1)   like "*Daunenbett*" then