Pytanie : InteropServices.COMException: Móc wcale więcej stół.

Kochany Ekspert,

I mieć prosty VB.NET konsola zastosowanie który pętla przez wszystkie msaccess stół i odpowiadać kolekcja, rewizja dla dawać tekst wartość w strSearch variable.

The zastosowanie kierować przez wokoło 12 stół z 207 stół w mój msaccess test baza danych. I ono dawać błąd błąd jako the następujący:
---
Unhandled Wyjątek: System.Runtime.InteropServices.COMException: Móc an
y więcej tables.
przy DAO.Database.OpenRecordset (Smyczkowy Imię, Protestować Typ, Przedmiot Opcja, Objec
t LockEdit)
przy scanTbls.Module1.Main (String [] sArgs)
---

I am także the ten sam rozwiązanie to z CEREGIELE jeżeli DAO pracować well.
Here to być mój konsola zastosowanie:
---
Module Module1

Okręt podwodny Magistrala (ByVal sArgs () Jako Sznurek)

Ćmić db Gdy DAO.Database
Ćmić rs Gdy DAO.Recordset
Ćmić DaoDbEngine Gdy Nowy DAO.DBEngine ()
Ćmić tbl Gdy DAO.TableDef
Ćmić fld Gdy DAO.Field

Ćmić strTbl Gdy String
Ćmić strFld Gdy String
Ćmić strSQL Gdy String
Ćmić cntTbl Gdy Integer
Ćmić strSearch gdy Sznurek = "hasło "
Ćmić strPathFile jako Sznurek = "c:\test.mdb "

db = DaoDbEngine.OpenDatabase (strPathFile)

"pętla przez kolekcja tables
Dla StrPathFile tbl W db.TableDefs

strTbl = tbl. Name

Dla Tbl fld W tbl. Fields
Jeżeli fld. Typ = 10 Wtedy "typ 10 być tekst, pominięcie dla numerowy search
strFld = fld. Name
strSQL = "WYBIÓRKA * OD" & strTbl & "DOKĄD" & _
strFld & "=" "& strSearch &""; "
rs = db.OpenRecordset (strSQL)
Jeżeli rs.RecordCount > (0) Wtedy 'jeżeli strSearch być found
znajdować = True
Console.WriteLine ("stołowy imię: " & strTbl)
Końcówka If
Końcówka If
Next
Końcówka If
Next

Na Błąd Życiorys Next
db. Zamykać ()
tbl = Nothing
fld = Nothing
rs = Nothing
db = Nothing
DaoDbEngine = Nothing

Końcówka Sub

End Module
---

Odpowiedź : InteropServices.COMException: Móc wcale więcej stół.

Zakończenie zdarzać się jeżeli ty dodawać Recordset zakończenie:

    Dla Tbl fld W tbl. Pole
                  Jeżeli fld. Typ = 10 Wtedy 'typ 10 być tekst, pominięcie dla numerowy rewizja
                      strFld = fld. Imię
                        strSQL = "WYBIÓRKA * OD" & strTbl & "DOKĄD" & _
                                  strFld & "= "" & strSearch & ""; "
                        rs = db.OpenRecordset (strSQL)
                        Jeżeli rs.RecordCount > (0) Wtedy 'jeżeli strSearch znajdować
                            znajdować = Prawdziwy
                            Console.WriteLine ("stołowy imię: " & strTbl)
                        Kończyć Jeżeli

                        'Czyścić iść otwarty Recordsets gdy ty iść…
                        rs. Zakończenie

                    Kończyć Jeżeli
                Następnie
Inne rozwiązania  
 
programming4us programming4us