Access 2010 und MS SQL 2012 - Filterfehler
Guten Morgen,
hab da ein kurioses Problem, was mich schon seit einiger Zeit verfolgt, wir setzen eine SQL 2012 Datenbank ein, dieser erhält Daten als Frontend über Access 2010.
Im großen und ganzen läuft darüber alles absolut tadellos. Außer eine Sache.
Wenn ich ein geteiltes Formular über den Tabellenbereich filtere und danach einen Bericht mit diesem Filter öffne, erhalte ich einen Fehler.
Den Filter übergebe ich beim öffnen des Formular mittels Me.Filter.
Selektiere ich nur Zahlen aus verschiedenen Feldern und führe die Operation aus, dann klappt alles. Selektiere ich aber ein beliebiges Textfeld, erscheint der Fehler.
Im Debugmodus wird der Filter scheinbar richtig übergeben:
Me.Filter = "([Query].[Anlieferung] = "Text ")"
Als Fehler kommt aber der Hinweis, das die Spalte "Text " nicht existiert.
Über ein VBA-Forum hab ich hierzu folgenden Hinweis gefunden, der das Fehlverhalten erklärt:
Werden numerische Felder gefiltert, akzeptiert Access die Eingabe so "Filterby =" & FilterCrit (meine Zahlenfelder also laufen deswegen durch)
Werden text Felder gefiltert, will Access das aber so: "Filterby ="""&FilterCrit&"""" (hier übergibt aber Access den Filter weiterhin so, wie bei den Zahlen und damit denkt der Bericht das "Text" eine Spalte und nicht der Wert daraus ist)
Eine Alternative wäre es zwar, nun alle Felder als Kopf anzulegen und daraus zu filtern, wobei ich aber schätze das es doch eine Möglichkeit geben muss, den bestehenden Filter korrekt an den Bericht übergeben zu können. Ist ja schileßlich die selbe Anwendung vom selben Hersteller. Auch ist der Filterumfang über die gefilterten Formulare um ein vielfaches besser und schneller lösbar, wie wenn jedes Formular dann erstmal noch das Programmiert werden muss, was soweit ja schon vorhanden ist.
Vielleicht hat jemand eine Idee, wie man das soweit konvertieren kann, das Access den Filter akzeptiert.
Grüße
Forseti
hab da ein kurioses Problem, was mich schon seit einiger Zeit verfolgt, wir setzen eine SQL 2012 Datenbank ein, dieser erhält Daten als Frontend über Access 2010.
Im großen und ganzen läuft darüber alles absolut tadellos. Außer eine Sache.
Wenn ich ein geteiltes Formular über den Tabellenbereich filtere und danach einen Bericht mit diesem Filter öffne, erhalte ich einen Fehler.
Den Filter übergebe ich beim öffnen des Formular mittels Me.Filter.
Selektiere ich nur Zahlen aus verschiedenen Feldern und führe die Operation aus, dann klappt alles. Selektiere ich aber ein beliebiges Textfeld, erscheint der Fehler.
Im Debugmodus wird der Filter scheinbar richtig übergeben:
Me.Filter = "([Query].[Anlieferung] = "Text ")"
Als Fehler kommt aber der Hinweis, das die Spalte "Text " nicht existiert.
Über ein VBA-Forum hab ich hierzu folgenden Hinweis gefunden, der das Fehlverhalten erklärt:
Werden numerische Felder gefiltert, akzeptiert Access die Eingabe so "Filterby =" & FilterCrit (meine Zahlenfelder also laufen deswegen durch)
Werden text Felder gefiltert, will Access das aber so: "Filterby ="""&FilterCrit&"""" (hier übergibt aber Access den Filter weiterhin so, wie bei den Zahlen und damit denkt der Bericht das "Text" eine Spalte und nicht der Wert daraus ist)
Eine Alternative wäre es zwar, nun alle Felder als Kopf anzulegen und daraus zu filtern, wobei ich aber schätze das es doch eine Möglichkeit geben muss, den bestehenden Filter korrekt an den Bericht übergeben zu können. Ist ja schileßlich die selbe Anwendung vom selben Hersteller. Auch ist der Filterumfang über die gefilterten Formulare um ein vielfaches besser und schneller lösbar, wie wenn jedes Formular dann erstmal noch das Programmiert werden muss, was soweit ja schon vorhanden ist.
Vielleicht hat jemand eine Idee, wie man das soweit konvertieren kann, das Access den Filter akzeptiert.
Grüße
Forseti
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 243128
Url: https://administrator.de/contentid/243128
Ausgedruckt am: 22.11.2024 um 09:11 Uhr