Parameter aus einem Textfeld an eine Abfrage weitergeben

Huhu,

habs jetzt hinbekommen... ;)

Code:
SELECT *
FROM   Tabelle
WHERE  [Text] Like "*" & [Forms]![frm_search]![Suchtext] & "*"
OR     [Text] Is Null;

Nur hab ich jetzt noch ein Problem.

Ich lass mir die herausgesuchten Datensätze wie gesagt in einem Unterformular (Endlosformular) auflisten. Ein Wert der dabei mit angezeigt wird ist eine Zahl, die die jeweilige Bewertung angibt. Wenn ich mir die zahlen über ein Textfeld anzeigen lasse, stimmen sie auch mit dem jeweiligen Datensatz überein. Nur will ich jetzt, statt der Zahl ein jeweils entsprechendes Bild anzeigen lassen.
Meine Idee war, beim Laden des Unterformulars mittels "Case Of" das jeweilige Bild zuzuweisen. Das klappt auch beim ersten Datensatz richtig, nur die anderen wird dann auch allen dieses Bild zugewiesen, obwohl diese ein anderes bekommen müssten.
Wäre nett, wenn mir jmd. nochmal helfen könnte.

Danke !

mfg Speedy
 
Auch dazu wäre es gut, wenn Du den Code reinstellst, da dies natürlich unterschiedliche Ursachen haben kann.

Denkbar ist z.B., dass Du die Zahl als Text interpretierst.

Grüsse
ronaldh
 
Nur hab ich jetzt noch ein Problem.

Ich lass mir die herausgesuchten Datensätze wie gesagt in einem Unterformular (Endlosformular) auflisten. Ein Wert der dabei mit angezeigt wird ist eine Zahl, die die jeweilige Bewertung angibt. Wenn ich mir die zahlen über ein Textfeld anzeigen lasse, stimmen sie auch mit dem jeweiligen Datensatz überein. Nur will ich jetzt, statt der Zahl ein jeweils entsprechendes Bild anzeigen lassen.
Meine Idee war, beim Laden des Unterformulars mittels "Case Of" das jeweilige Bild zuzuweisen. Das klappt auch beim ersten Datensatz richtig, nur die anderen wird dann auch allen dieses Bild zugewiesen, obwohl diese ein anderes bekommen müssten.
Wäre nett, wenn mir jmd. nochmal helfen könnte.

Danke !

mfg Speedy

Auch dazu wäre es sinnvoll, wenn Du den entsprechenden Code postest, da die Ursachen vielfältig sein können. Eine Möglichkeit ist zum Beispiel, dass die Zahl als String deklariert ist.

Grüsse
ronaldh
 
Code:
Private Sub Form_Load()
    Dim schwierigkeitsgrad_int As Integer
    Dim Verzeichnis As String
    
    Verzeichnis = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
    
    schwierigkeitsgrad_int = CInt(label_Schwierigkeitsgrad.Value)
    Select Case schwierigkeitsgrad_int
    Case 1
        pic_schwierigkeit.Picture = Verzeichnis & "img\s1.gif"
    Case 2
        pic_schwierigkeit.Picture = Verzeichnis & "img\s2.gif"
    Case 3
        pic_schwierigkeit.Picture = Verzeichnis & "img\s3.gif"
    Case 4
        pic_schwierigkeit.Picture = Verzeichnis & "img\s4.gif"
    Case 5
        pic_schwierigkeit.Picture = Verzeichnis & "img\s5.gif"
    Case 6
        pic_schwierigkeit.Picture = Verzeichnis & "img\s6.gif"
    Case 7
        pic_schwierigkeit.Picture = Verzeichnis & "img\s7.gif"
    Case 8
        pic_schwierigkeit.Picture = Verzeichnis & "img\s8.gif"
    Case 9
        pic_schwierigkeit.Picture = Verzeichnis & "img\s9.gif"
    Case 10
        pic_schwierigkeit.Picture = Verzeichnis & "img\s10.gif"
    End Select
End Sub

Wie du siehst variiert der Wert zw. 1 und 10 mit dem entsprechenden Bild dazu.
Ich denke, dass das Problem sein wird, dass nur einmal (nämlich vom ersten Datensatz) diese Proc. durchlaufen wird. Daher wird den anderen Datensätzen einfach auch das Bild des ersten zugewiesen. :-/

mfg Speedy
 
Das Problem wird sein, dass Du die Zuweisung im Form_Load-Ereignis untergebracht hast, und die Form vermutlich schon geladen ist, wenn die entsprechende Zuweisung kommt.

Eine Alternative wäre es, diese Zuweisung in einer Prozedur unter zu bringen, die Du bei Bedarf aufrufst (immer dann, wenn sich etwas ändert).
 
Wenn ich die Zuweisung beispielsweise mal ins Form_Query-Ereignis packe (ich lasse das Unterformular per "unterformular.Requery" aktualisieren bei der Suche), dann zeigt der mir trotzdem stehts nur das Bild vom ersten Datensatz an, der beim ersten Aufruf des Formulars mit dem Unterformular der erste ist. :-/

mfg Speedy
 
Du kannst diesen Code in das Form_Activate tun (dann wird immer aktualisiert, wenn die Form aktiv wird), oder in ein separates Modul. Dann kannst Du diese Prozedur immer dann aufrufen, wenn der Wert sich geändert hat.
 
Zurück