2016-05-05 9 views
0

Ich möchte ein wenig Code, an dem ich gearbeitet habe, in einer MS Access 2010-Datenbank, die ich geerbt habe, vereinfachen. Ich möchte, dass der Benutzer ein Datum in ein Formular in einem Feld [txtSelectDate] eingibt und dann aus einer Combobox einen [ProductName] auswählt, für den ein Datensatz in der Tabelle [uploads] am ausgewählten Datum des Benutzers ist.MS Access SELECT DISTINCT WHERE Abfrage als Combobox-Zeilenquelle

Momentan habe ich eine spezielle Abfrage, um dies zu tun, aber ich war auf meinem SQL und ich fragte mich, ob ich es vollständig innerhalb eines SQL-Ausdruck im Feld Eigenschaftenblatt> Daten> Zeilenquelle tun könnte.

Mein Versuch war:

SELECT DISTINCT [Uploads].[ProductName] 
FROM Uploads 
WHERE [Uploads].[ImportDate] = [Forms]![Review]![txtSelectDate] 
ORDER BY [ProductName]; 

Was mir fühlt sich an wie es sollte funktionieren, aber es gibt mir eine leere Combo ohne Optionen drin. Wenn ich das WHERE wegnehme, erhalte ich Optionen, aber ich bekomme alle Optionen, unabhängig davon, ob der betreffende [ProductName] -Wert tatsächlich in den Uploads des ausgewählten Datums enthalten war.

Antwort

0

Ich glaube, Sie müssen Ihre Form nach dem Datum aktualisieren ist entered- sie auf der gleichen Form sind unter der Annahme, fügen Sie ein nach dem Update Termin in Ihrem Textfeld:

Private Sub txtSelectDate_AfterUpdate() 
    Me.refresh 
End Sub 
+0

Das war es, was mich in der letzten Woche generell stupste. Ich habe eine Refresh- und Requery-Subroutine für alle meine Benutzereingabeformularsteuerelemente. –

0

Überprüfen Sie, ob Ihre txtSelectDate richtig ist In Date type umwandeln (oder passt zumindest zu Uploads.ImportDate, welcher Typ auch immer) oder Ihre Abfrage würde null Zeilen zurückgeben?

+0

Ich bin sicher, dass dieser Teil bereits korrekt ist. txtSelectDate steuert bereits zwei Abfragen in dem Formular, das alle Datensätze mit Ausnahme derjenigen mit einem übereinstimmenden Wert in Uploads! ImportDate erfolgreich ausfiltert –

Verwandte Themen