Hola RsOft,
Entiendo que "EjecutaSQL" es el nombre de la funcion, que es tipo DataTable.
En el Return devuelves "EjecutaSQL.Tables(0)". Pero no debería tener una colección Tables, si ya es un DataTable. Deberías devolver solamente una variable de tipo DataTable. Y también pienso que crearte un Dim tabla As DataTable y trabajar con este. Y finalmente Hacer un Return tabla.
A parte también asignas EjecutaSQL a un new DataSet..
Yo cambiaría por algo así:
Código:
Public Function EjecutaSQL(ByVal strSQL As String) as DataTable
daDataAdapter = New Data.SqlClient.SqlDataAdapter(strSQL, cnn)
Dim dS as New Data.DataSet
daDataAdapter.Fill(dS, "NombreTabla")
Return dS.Tables(0).Copy
End Function
A ver qué tal.
Un saludo RsOft.