Visual Basic.NET - Error No se pudo encontrar la tabla de resultados

 
Vista:

Error No se pudo encontrar la tabla de resultados

Publicado por Medardo (17 intervenciones) el 27/05/2009 21:34:37
Hola

Debo indicar ante todo que, al realizar una búsqueda de este error a través de Google, muestra una sola página de PHP que, al final, no muestra nada al respecto. Parece que sobre este error no se ha escrito nada o, al menos yo, no lo encuentro.
Les explico:

Tengo un procedimiento que, en otras cosas, hace lo siguiente:

Elimina una tabla de la base de datos a través de un SQL ‘DROP TABLE‘.
Realiza una copia de una tabla de la base de datos, haciendo referencia a código de Access, a través de MiBase.DoCmd.CopyObject(….
La tabla resultante de la copia (CopyObject) se crea vacía porque así está la original.
Hasta ahí, todo funciona bien.
El problema se presenta cuando después, trato de importar datos de un fichero TXT hacia esa nueva tabla a través de un ‘INSERT INTO’.

En cuanto a eso, tengo el siguiente procedimiento:

Public Sub ImportarTxtAAccess()
'Importa los datos del fichero 'Delegados.txt'
'en la tabla de Access 'Delegados'
Dim strSQL As String
Dim sConnect As String

'cadena de conexión con el fichero txt
sConnect = "[Text;DATABASE=" & RutaNombreArchTxt & ";HDR=Yes;FMT=Delimited;].[Delegados.txt]"

'consulta SQL
strSQL = "INSERT INTO Delegados SELECT * FROM " & sConnect

'conformamos el comando
Dim cmd As New OleDb.OleDbCommand(strSQL, oConexion)

'esperar dos segundos
System.Threading.Thread.Sleep(2000)

'System.Windows.Forms.Application.DoEvents()
My.Application.DoEvents()

'ejecutamos la consulta
cmd.ExecuteNonQuery()
'cerramos la conexión
oConexion.Close()
End Sub

Resulta que, en la línea que está en rojo (cmd.ExecuteNonQuery()) me salta el siguiente error:
“No se pudo encontrar la tabla de resultados ‘Delegados’”

Pero sucede que se trata de un error que no me impide continuar el proceso porque si después, presiono F8 ó F5, el proceso continúa y finaliza satisfactoriamente realizando todas las operaciones, sin excepción. Entonces, ¿por qué se detiene el proceso mostrándose ese error?.

He probado no sé cuántas opciones, entre ellas:

- He mantenido la base de datos abierta para cerciorarme que la tabla, una vez copiada, sea visible en la ventana Base de datos. El resultado ha sido satisfactorio. Incluso, una vez realizada la copia de la tabla, incluí lo siguiente:
MiBase.RefreshDatabaseWindow()
Lo que permite refrescar la ventana Base de datos después de alguna operación de creación o eliminación de una tabla.

- He tratado de esperar un tiempo (2 segundos) antes de ejecutar la consulta:
System.Threading.Thread.Sleep(2000)

- También, pasar el control al sistema operativo con DoEvents:
My.Application.DoEvents()

Pero ninguno de los casos ha dado resultado satisfactorio.

¿Cuál es entonces el misterio del error si la tabla existe, se crea perfectamente mediante la copia?

Algo más curioso, en dos ocasiones se ha realizado todo el proceso sin error alguno, pero no tengo sospecha del por qué.

¿Alguien tiene alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder