Frage : InteropServices.COMException: Kann mehr Tabellen nicht öffnen.

Liebe Experten,

I haben eine einfache VB.NET Konsolenanwendung, der Schleifen durch alle Msacceßtabellen und Ansammlungen, Suche nach einem gegebenen Textwert strSearch variable.

The in der Anwendung erreicht, durch ungefähr 12 Tabellen aus 207 Tabellen in meiner Msacceßtestdatenbank heraus zu scannen auffängt. Und sie gibt mir Laufzeitfehler als das folgende:
---
Unhandled Ausnahme: System.Runtime.InteropServices.COMException: An
y kann mehr tables.
nicht DAO.Database.OpenRecordset (Schnur-Name, Objekt-Typ, Gegenstand-Wahlen, Objec
t LockEdit) am
scanTbls.Module1.Main (String [] sArgs) am
öffnen---das

I morgens die gleiche Lösung zu diesem mit AUFHEBEN auch schauend, wenn DAO nicht folgendes well.
Here bearbeitet, ist meine Konsolenanwendung:
---
Module Module1

verdunkeln Vorhauptleitung (ByVal sArgs () als Schnur)

DB als DAO.Database
schwache rs als DAO.Recordset
schwaches DaoDbEngine als neues DAO.DBEngine ()
schwaches tbl als DAO.TableDef
schwaches fld als DAO.Field

schwaches strTbl als String
schwaches strFld als String
schwaches strSQL als String
schwaches cntTbl als Integer
schwaches strSearch als Schnur = Schleife „des Kennwortes "
schwaches strPathFile als Schnur = „c:\test.mdb-"

(strPathFile)/>
„durch eine Ansammlung tables
für jedes tbl db.TableDefs

im strTbl = im tbl. Name

für jedes fld im tbl. Fields
wenn fld. Art = 10 dann „Art 10 ist Text, Zeilensprung für Zahl search
strFld = fld. Name
strSQL = „WÄHLEN * VON“ u. strTbl u. „WO“ u. _
strFld u. „=“ „u. strSearch u.““ vor; „
rs = db.OpenRecordset (strSQL)
, wenn rs.RecordCount > 0 dann ', wenn strSearch das gefundene found
= True
Console.WriteLine ist („Tabellenname: “ u. strTbl)
Ende If
Ende If
Next
Ende If
Next

auf Störungs-Zusammenfassung Next
DB. ()
tbl = Nothing
fld = Nothing
rs = Nothing
schließen DB = Nothing
DaoDbEngine = Nothing

Ende Sub

End Module
---

Antwort : InteropServices.COMException: Kann mehr Tabellen nicht öffnen.

Was geschieht, wenn Sie einen Recordset Abschluss addieren:

    Für jedes fld im tbl. Felder
                  Wenn fld. Art = 10 dann 'Art 10 ist Text, Zeilensprung für Zahlsuche
                      strFld = fld. Name
                        strSQL = „WÄHLEN * VON“ u. strTbl u. „vor, WO“ u. _
                                  strFld u. „= „“ u. strSearch u. „“; „
                        rs = db.OpenRecordset (strSQL)
                        Wenn rs.RecordCount > 0 dann ', wenn strSearch gefunden wird
                            gefunden = ausrichten
                            Console.WriteLine („Tabellenname: “ u. strTbl)
                        Beenden wenn

                        'Geöffnetes Recordsets aufräumen, wie Sie gehen…
                        rs. Abschluss

                    Beenden wenn
                Zunächst
Weitere Lösungen  
 
programming4us programming4us