Pergunta : InteropServices.COMException: Não pode abrir any more tabelas.

Os caros peritos,

I têm uma aplicação simples do console de VB.NET que os laços através de todas as tabelas do msaccess e coloquem as coleções, busca para um valor dado do texto na aplicação do strSearch variable.

The controlem fazer a varredura através de aproximadamente 12 tabelas fora de 207 tabelas em minha base de dados do teste do msaccess. E dá-me o erro runtime como o seguinte:
---exceção do
Unhandled: System.Runtime.InteropServices.COMException: Não pode abrir o an
y mais tables.
no
de DAO.Database.OpenRecordset (nome da corda, tipo de objeto, opções do objeto, Objec
t LockEdit) no
de scanTbls.Module1.Main (sArgs de String [])---o

I am igualmente que olha a mesma solução a este com DEMORA se DAO não trabalha well.
Here abaixo é minha aplicação do console:
---o

do cano principal do
Module Module1

(sArgs de ByVal () como a corda) escurece o DB como rs não ofuscantes de DAO.Database
como DAO.Recordset
DaoDbEngine não ofuscante como o tbl não ofuscante novo do
de DAO.DBEngine () como o fld não ofuscante de DAO.TableDef
como o strTbl não ofuscante de DAO.Field

como o strFld não ofuscante de String
como o strSQL não ofuscante de String
como o cntTbl não ofuscante de String
como o strSearch não ofuscante de Integer
como a corda = laço de “c:\test.mdb " o

(strPathFile)/>
“da “senha " strPathFile não ofuscante do
como a corda = através de uma coleção do tables
para cada tbl no strTbl = no tbl de db.TableDefs

. Name

para cada fld no tbl. Fields
se fld. O tipo = 10 então o “tipo 10 é o texto, faixa clara para o strFld = o fld do search
do número. O strSQL de Name
= “SELECIONA * DE” & strTbl & “ONDE” & strFld do _
& “=” “& strSearch &””; do “rs
=
de db.OpenRecordset (strSQL) se rs.RecordCount > 0 então 'se o strSearch é o found
encontrado = True
Console.WriteLine (“nome da tabela: ” & extremidade If
Next

de If
Next
do fim de If
do fim do
do strTbl) no DB de Next
do resumo do erro. Fechar () o tbl do
= o fld de Nothing
= os rs de Nothing
= o Nothing
DB = extremidade Sub

End Module
de Nothing
DaoDbEngine = de Nothing

---

class= do

Resposta : InteropServices.COMException: Não pode abrir any more tabelas.

O que acontece se você adiciona um fim de Recordset:

    Para cada fld no tbl. Campos
                  Se fld. O tipo = 10 então 'o tipo 10 é o texto, faixa clara para a busca do número
                      strFld = fld. Nome
                        o strSQL = “SELECIONA * DE” & strTbl & “ONDE” & o _
                                  strFld & “= “” & strSearch & “”; “
                        rs = db.OpenRecordset (strSQL)
                        Se rs.RecordCount > 0 então 'se o strSearch é encontrado
                            encontrado = retificar
                            Console.WriteLine (da “nome tabela: ” & strTbl)
                        Terminar se

                        'Limpar Recordsets aberto como você vai…
                        rs. Fim

                    Terminar se
                Em seguida
Outras soluções  
 
programming4us programming4us