2016-04-16 3 views
0

Also mache ich ein Projekt, wo wir versuchen, unseren Benutzer das Formular zu öffnen, wählen Sie (über eine Combobox) einen Ausbilder, und dann alle Schüler zurück, die haben hatte diesen Lehrer im Laufe der Jahre in einer Tabelle.SQL Select Abfrage funktioniert nicht mit meinem Access Form

Ohne die WHERE-Klausel wird der Code ausgeführt und alle Schüler, die diesen Instruktor hatten, zurückgegeben. Aber wenn ich die [Formulare]! [STUDENT FORM]! [INSTRUCTOR] in der WHERE-Klausel verwende, bekommen wir plötzlich keine Ergebnisse. Kann mir jemand erklären, warum das so ist? Es hat in der gleichen Form mit einer anderen Combobox gearbeitet, aber wir mussten keine Joins verwenden, also frage ich mich, ob das das Problem ist?

Dies wird der SQL-Code - unser Formular ist STUDENT Formular mit dem Namen und der Combobox wird AUSBILDER genannt:


SELECT STUDENT.STU_LNAME, STUDENT.STU_FNAME, STUDENT.[STU_ INT], 
STUDENT.STU_NICK, STUDENT.STU_YEAR, STUDENT.STU_PHONE, STUDENT.STU_EMAIL, 
INSTRUCTOR.INSTRUCTOR_LNAME FROM 
(INSTRUCTOR INNER JOIN CLASS ON 
INSTRUCTOR.[INSTRUCTOR_ID] = CLASS.[INSTRUCTOR_ID]) INNER JOIN 
(STUDENT INNER JOIN ENROLL ON STUDENT.[STU_NUM] = ENROLL.[STU_NUM]) 
ON CLASS.[CLASS_ID] = ENROLL.[CLASS_ID] 
WHERE (((INSTRUCTOR.INSTRUCTOR_LNAME)=[Forms]![STUDENT FORM]![INSTRUCTOR])); 

Bitte lassen Sie mich wissen, wenn Sie mehr Informationen benötigen!

+0

@HansUp Es gibt drei Werte in der ComboBox, alle Namen. Wir versuchen also, den Benutzer einen Nachnamen auswählen zu lassen und dann die Abfrage alle Schüler zurückgeben, die eine Klasse mit diesem Lehrer genommen haben. –

+0

Ich war mir nicht ganz sicher, wie du mich benutzen wolltest - ich lief JUST, und es hat nicht funktioniert. Meinst du damit, die select-Anweisung durch diese zu ersetzen? Bearbeiten - Ich habe auch nur die SQL-Anweisung ersetzt, und es hat auch nicht funktioniert, leider, gab mir nur einen leeren Tisch. –

+0

Nein, keine Fehler. Es führt den Code aus, gibt aber keine Informationen, weshalb ich teilweise so verwirrt bin - wenn ich einen Fehler habe, könnte ich ihn eingrenzen. Stattdessen gab es nur eine Tabelle mit einer Spalte namens [Forms] zurück! [STUDENT FORM]! [INSTRUCTOR] –

Antwort

0

Ich wette, Ihre INSTRUCTOR Combobox zwei Spalten, mit INSTRUCTOR_ID die gebundenen Spalte und 0 Breite aufweisen, wobei (so nur INSTRUCTOR_LNAME ist sichtbar).

So ist der Wert, nach dem Sie filtern müssen, ist INSTRUCTOR_ID, und Sie müssen die WHERE-Klausel ändern:

WHERE (((INSTRUCTOR.INSTRUCTOR_ID)=[Forms]![STUDENT FORM]![INSTRUCTOR])); 
+0

Das war die Antwort! Vielen Dank! –