2017-04-26 4 views
0

Ich bin neu in Access und habe ein Formular, das eine Liste der Mitarbeiter anzeigt, die aus einer Abfrage abgerufen wird. Es ist eine fortlaufende Liste und ich kann nach Mitarbeiter-Typ filtern. Ich wollte den neuen Datensatz in der Endlosform isolieren, also fügte ich einen Knopf hinzu, der DataEntry = True ändert, jedoch, als ich DataEntry = False änderte, stieß ich auf Probleme mit dem filternden Arbeiten, und sie schienen um die RecordSource zu stemmen.MS Access RecordSource-Auswahlfehler

Die Filterung erfolgt mit einer combobox, die eine einfache 'Requery' 'AfterUpdate()' aufruft, und die Abfrage selbst erhält die Werte als Kriterien aus der combobox Auswahl.

In der Schaltfläche zu DataEntry = False ändern, habe ich versucht, auch die RecordSource zuweisen. Am Anfang schien es gut zu funktionieren, aber dann stürzte Access ab und jetzt bekomme ich Fehler 3701, sobald die Taste gedrückt wird.

Ich habe verschiedene verschiedene Syntax versucht, um die RecordSource zu setzen.

Me.RecordSource = "qryName" Form.RecordSource = "qryName Forms!frmName.RecordSource = "qryName

und alle oben mit "SELECT * FROM [qryName]" anstelle einer einfachen Zeichenfolge.

Jeder gibt mir einen Fehler 3701.

Was mache ich falsch?

+0

Haben Sie die Abfrage verwenden müssen, wie Ihre Recordsource? Teilt Ihre Abfrage mehrere Tabellen oder verwenden Sie nur die Abfrage, um das Recordset zu filtern? – geeFlo

Antwort

2

Das klingt übermäßig kompliziert. Stellen Sie einfach die Filter Eigenschaft des Formulars - Sie die Combobox, das zu tun verwenden können:

Me.Filter = "EmployeeType = '" & Me!ComboSelectedType.Value "'" 
Me.FilterOn = True 

oder, wenn der Wert numerisch ist:

Me.Filter = "EmployeeType = " & Me!ComboSelectedType.Value "" 
Me.FilterOn = True 
+0

Danke. Ich wusste nicht, dass ich das mit Abfragen machen konnte, die von mehreren Tabellen stammten, aber nach einiger Arbeit erreichte es genau das, wonach ich suchte. – motifesta