Cuestión : InteropServices.COMException: No puede abrir más tablas.

Los estimados expertos,

I tienen un uso simple de la consola de VB.NET que los lazos a través de todas las tablas del msaccess y coloquen las colecciones, búsqueda para un valor dado del texto en el uso del strSearch variable.

The manejen explorar a través de cerca de 12 tablas fuera de 207 tablas en mi base de datos de la prueba del msaccess. Y me da error runtime como el siguiente:
---excepción del
Unhandled: System.Runtime.InteropServices.COMException: No puede abrir el an
y más tables.
en el
de DAO.Database.OpenRecordset (nombre de la secuencia, tipo de objeto, opciones del objeto, Objec
t LockEdit) en el
de scanTbls.Module1.Main los sArgs (de String [])---el

I también que mira la misma solución a esto con DIFICULTAD si DAO no trabaja well.
Here abajo es mi uso de la consola:
---el

de la cañería del
Module Module1

(sArgs de ByVal () como secuencia) amortigua el DB como rs déviles de DAO.Database
como DAO.Recordset
DaoDbEngine dévil como nuevo tbl dévil del
de DAO.DBEngine () como fld dévil de DAO.TableDef
como strTbl dévil de DAO.Field

como strFld dévil de String
como strSQL dévil de String
como cntTbl dévil de String
como strSearch dévil de Integer
como secuencia = lazo de “c:\test.mdb " el

(strPathFile)/>
“de la “contraseña " strPathFile dévil del
como secuencia = a través de una colección del tables
para cada tbl en strTbl = tbl de db.TableDefs

. Name

para cada fld en tbl. Fields
si fld. El tipo = 10 entonces el “tipo 10 es el texto, salto para el strFld = el fld del search
del número. El strSQL de Name
= “SELECCIONA * DE” y strTbl y “DONDE” y strFld del _
y “=” “y strSearch y””; “rs del
=
de db.OpenRecordset (strSQL) si rs.RecordCount > 0 entonces 'si el strSearch es el found
encontrado = True
Console.WriteLine (“nombre de la tabla: ” y extremo If
Next

de If
Next
del final de If
del final del
del strTbl) en el DB de Next
del curriculum vitae del error. Cerrar () el tbl del
= el fld de Nothing
= los rs de Nothing
= Nothing
DB = extremo Sub

End Module
de Nothing
DaoDbEngine = de Nothing

---

class= del

Respuesta : InteropServices.COMException: No puede abrir más tablas.

Qué sucede si usted agrega un cierre de Recordset:

    Para cada fld en tbl. Campos
                  Si fld. El tipo = 10 entonces el 'tipo 10 es el texto, salto para la búsqueda del número
                      strFld = fld. Nombre
                        el strSQL = “SELECCIONA * DE” y strTbl y “DONDE” y el _
                                  strFld y “= “” y strSearch y “”; “
                        rs = db.OpenRecordset (strSQL)
                        Si rs.RecordCount > 0 entonces 'si se encuentra el strSearch
                            encontrado = verdad
                            Console.WriteLine (“nombre de la tabla: ” y strTbl)
                        Terminar si

                        'Limpiar Recordsets abierto como usted va…
                        rs. Cierre

                    Terminar si
                Después
Otras soluciones  
 
programming4us programming4us