2016-11-28 1 views
0

Ich habe mich nach einer Antwort auf dieses Problem umgeschaut, habe aber keine. Vielen Dank im Voraus an alle, die helfen können. Ich versuche, Datensätze zu suchen und sie zu ändern, basierend auf mehreren Feldern. Mein Formular erscheint jedoch leer.Unterformular leer: Ich konnte keinen Datensatz finden, basierend auf mehreren Feldern

Ich habe eine Datenbank mit einem zu vielen Links für die folgenden Tabellen: Sample-> Set-> Fang-> Länge-> Diät (Schlüsselfelder: ProbeID, SetID, etc.)

Vorläufige Daten trat ein. Ich habe zusätzliche Daten für einige Personen, die in die Tabellen Länge und Diät eingegeben werden. Also habe ich ein Formular mit Kombinationsfeldern erstellt, die es dem Benutzer erlauben, zum richtigen Fisch zu navigieren, indem Sie auswählen: Datum, Station, Set, Art und Länge. Also, wenn ich ein Datum auswähle, bin ich auf Stationen beschränkt, die an diesem Tag gesampelt wurden und so weiter. Ich habe eine Abfragezeichenfolge eingerichtet, um die Ergebnisse auf diejenigen zu beschränken, die den in den Kombinationsfeldern eingegebenen Kriterien entsprechen. Mein Unterformular basiert auf der letzten Abfrage in dieser Zeichenfolge (Abfrage 5). Es ist im Primärschlüsselfeld für die Längentabelle (LengthID) verknüpft. Alles soweit in Ordnung.

Das Problem: Wenn ich mein Formular öffne und Werte für jede Combobox auswähle, bleibt das Unterformular leer. Ich kann jedoch Abfrage 5 aus der Sidebar an diesem Punkt ausführen und es wird erfolgreich ausgeführt. Ich könnte Daten direkt in die Abfrage eingeben, aber sie wäre weniger gestrafft und anfällig für menschliche Fehler.

Ich habe auch versucht, mein Unterformular direkt aus der Seitenleiste zu öffnen. Wenn ich dies tue, werden Sie von Access aufgefordert, das Datum, die Station, das Set, die Art und die Länge anzugeben. Zweimal. Das Formular erscheint dann und alle Felder sind leer, einschließlich des LengthID-Felds, das ausgefüllt werden sollte (da ich einen bestehenden Datensatz suche). Ich weiß nicht, warum es mich zweimal auffordert, aber ich denke, dass das Unterformular nicht in der regulären Formularansicht angezeigt wird, da die Datenbank das LengthID-Feld als leer sieht.

Meine Kombinationsfelder scheinen korrekt zu einem bestimmten Datensatz zu navigieren. Die Abfragezeichenfolge Meine Kombinationsfelder und Unterformular basieren auf allen Arbeiten, wenn sie direkt ausgeführt werden. Aber ich kann keine Daten in mein Unterformular eingeben, vermutlich weil das Unterformular den richtigen Datensatz nicht finden kann, obwohl die Abfrage, auf der es basiert, es problemlos finden kann. Ich habe keine Ideen zur Fehlerbehebung mehr, jeder Rat wird sehr geschätzt. Vielen Dank!

Antwort

0

Wenn ich richtig verstehe, versuchen Sie, eine Abfrage WHERE Klausel unter Verwendung von Kombinationsfeldern zu erreichen. Es gibt viele SO-Fragen da draußen, aber das sollte dich in Gang bringen. Lass mich wissen, wenn du in Schwierigkeiten gerätst und ich dir helfen werde.

Ich nehme an, Sie haben eine verknüpfte Eltern/Unterformular-Kombination. Dieser Code wäre in der übergeordneten Formularsuchschaltfläche:

Dim strSQL As String 
strSQL = " 1=1 " 

If Not IsNull(cmbComboBox1) Then 
    strSQL = strSQL & " AND Field1 = " & cmbComboBox1 
End If 

If Not IsNull(cmbComboBox2) Then 
    strSQL = strSQL & " AND Field2 = " & cmbComboBox2 
End If 

If Not IsNull(cmbComboBox3) Then 
    strSQL = strSQL & " AND Field3 = " & cmbComboBox3 
End If 

Me.Filter = strSQL 
Me.FilterOn = True 
+1

Sie können Master- und untergeordnete Teilformularfelder mit Kombinationsfeldern verknüpfen. – Fionnuala

Verwandte Themen