Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Laufzeitfehler 2001 - Access Office XP





Frage

Hallo, benötige bitte dringend Hilfe. Habe ein Formular mit 2 Kombifeldern und 1 Unterformular aufgrund 3 Tabellen erstellt (Kombi1 greift auf Tabelle Lieferanten, Kombi2 auf Kategorie zu und UF ist Geräte). Wenn ich allerdings einen Lieferanten oder eine Kategorie auswähle (sodass im Unterformular die dazugehörigen Geräte angezeigt werden) erscheint folgende Meldung: "Laufzeitfehler '2001' Sie haben die vorherige Operation abgebrochen.' Das dazu erstellte Modul sieht so aus: -------------------------------------- Option Compare Database Public Sub daten_auswahl(ByVal combo0 As Integer, ByVal combo1 As Integer) Dim mesql If combo0 = 1 And combo1 = 1 Then mesql = "SELECT * FROM Geräte" ElseIf combo0 = 1 And combo1 <> 1 Then mesql = "SELECT * FROM Geräte WHERE [Kategorie] =" & combo1 ElseIf combo0 <> 1 And combo1 = 1 Then mesql = "SELECT * FROM Geräte WHERE [Lieferant] =" & combo0 Else: mesql = "SELECT * FROM Geräte WHERE [Lieferant] =" & combo0 _ & " AND [Kategorie] =" & combo1 End If [Form_Geräte Unterformular].RecordSource = mesql End Sub ---------------------------- Habe schon die Service Packs installiert - hat auch nichts genutzt. Weiß irgendjemand, was ich falsch gemacht haben könnte? Bedanke mich für jede Hilfe im Voraus. ali70

Antwort 1 von MickK

Hallo ali70,
die meldung erscheint mir etwas merkwürdig. was mir aber aufgefallen ist, Du musst nach der Zuweisung der Recordsource

[Form_Geräte Unterformular].RecordSource = mesql

noch folgendes machen

[Form_Geräte Unterformular].Requery

Damit wird Deine Abfrage auch ausgeführt und das Unterformular aktualisiert.

Gruß
Mick

Antwort 2 von Roadrunner90

Hi ali70,
kann mich dunkel erinnern, dass ich diese Meldung unter ACC2000 auch mal hatte. Prüfe mal zuerst ob es, wenn Access geschlossen ist, eine .LDB gleichen namens gibt, wenn ja lösche diese.
Wenn nein, so war das bei mir, neue Datenbank erstellen und alle Objekte aus der defekten importieren.
Bei mir hat es geholfen, die Meldung ist nicht wieder aufgetretet.
Gruß Rudolf

Antwort 3 von ali70

Hallo Mick,
Hallo Rudolf,

danke für Eure Tips - haben aber leider nicht funktioniert.

Habe eine neue Datenbank erstellt und die Tabellen aus der "alten" importiert - beim neuen Formular erscheint mir jedoch schon wieder dieselbe Fehlermeldung.

Irgendeine Idee, was ich noch machen könnte?

Danke und lg

ali70

Antwort 4 von MickK

Hallo ali70,
wenn Du kein Problem damit hast, kannst du mir gerne mal Deine mdb an meine o.a. Emailadresse senden und ich schau mir das mal genauer an.

Gruß
Mick

Antwort 5 von FrankieH

Warum setzt du eigentlich die Recordsource jedesmal neu? Reicht doch aus, wenn du den Filter einstellst.

Und nicht vergessen - Filteron=TRUE, ausser im ersten Fall.


Antwort 6 von FrankieH

Noch ein Nachsatz zu deinen SQL-ANweisungen:

1. Auch bei Umlauten sollte man mit eckigen Klammern kapseln. Also:
SELECT * FROM [Geräte];


2. Und am Ende einer Anweisung sollte ein Semicolon stehen.

Vielleicht hilft das bei deinem Problem.


Sind eigentlich die Datentypen deiner WHERE-Bedingung numerisch? Sonst müsstest du nochmal einfache Anführungszeichen setzen.

Vielleicht gibtst du im Debug-Fenster mal deine SQL-Anweisung aus und kopierst die in eine neue Anfrage ein. Dann siehst du sofort, ob die in Ordung ist.


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: