Error al exportar de Access a Sql2005

07/01/2009 - 02:36 por Anti_Work | Informe spam
Hola. estoy tratando de pasar las tablas con los datos de Bienes.mdb
(db-Access) a MBienes (db-SqlServer2005).
MBienes está completamente vacía. Asi que lo primero que intente fue
exportar la tabla Empleados desde vb2005, pero me da un error. Aqui dejo el
codigo:

Dim cStr As String = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source =
C:\Bienes.mdb;"
Dim cnn As New OleDbConnection(cStr)
Dim sql As String = "SELECT * INTO dbo.Empleados " & _
"IN ''[ODBC;DRIVER={SQL Native Client};" & _
"Server=USER\SQLEXPRESS;" & _
"Database=MBienes;] " & _
"UID=USER\Administrador;" & _
"FROM Empleados"

Dim cmd As New OleDbCommand(sql, cnn)
cnn.Open()
Dim n As Integer = cmd.ExecuteNonQuery()

Error: Los datos proporcionados en la consulta debe contener al menos una
tabla o consulta.

¿No le estoy pasando la tabla Empleados?. Por favor, si alguien me puede
ayudar a ver el error, se lo agradeceré.

Saludso

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
07/01/2009 - 11:54 | Informe spam
"Anti_Work" wrote in message
news:
Hola. estoy tratando de pasar las tablas con los datos de Bienes.mdb
(db-Access) a MBienes (db-SqlServer2005).
MBienes está completamente vacía. Asi que lo primero que intente fue
exportar la tabla Empleados desde vb2005, pero me da un error. Aqui dejo
el
codigo:

Dim cStr As String = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source > C:\Bienes.mdb;"
Dim cnn As New OleDbConnection(cStr)
Dim sql As String = "SELECT * INTO dbo.Empleados " & _
"IN ''[ODBC;DRIVER={SQL Native Client};" & _
"Server=USER\SQLEXPRESS;" & _
"Database=MBienes;] " & _
"UID=USER\Administrador;" & _
"FROM Empleados"
[...]
Error: Los datos proporcionados en la consulta debe contener al menos una
tabla o consulta.

¿No le estoy pasando la tabla Empleados?. Por favor, si alguien me puede
ayudar a ver el error, se lo agradeceré.



Creo que hay un fallo en la consulta: el UID debería estar dentro de los
corchetes del IN, en lugar de estar fuera de ellos. Además, seguramente
necesitará también el PWD.
También me da la impresión de que hay un problema de comillas. No sé si
estará mal copiado el código, pero creo que sobran dos comillas simples que
van seguidas detrás del IN.



Saludso
Respuesta Responder a este mensaje
#2 Anti_Work
07/01/2009 - 15:20 | Informe spam
Gracias "Alberto Poblacion"
Mira, ejecuté esta consulta desde Access

SELECT * INTO Empleados
IN ''[ODBC;DRIVER={SQL Native Client};
Server=USER\SQLEXPRESS;
Database=MBienes]
FROM Empleados;

Y me aparece en una pantalla de login. Elegi "Autenticación de Windows" y
funcinó. Me exporto la tabla con los datos (sin las claves).
Entonces cambié el string en VB, lo ejecuto y me da el error:
"ODBC: error al conectar con '{SQL Native Client}USER\SQLEXPRESS'."

sql = "SELECT * INTO Empleados " & _
"IN ''[ODBC; DRIVER={SQL Native Client};" & _
"Server=USER\SQLEXPRESS;" & _
"Database=MBienes] " & _
& "FROM Empleados"

¿como es que en access funcion y en vb no?.

Saludos.
Respuesta Responder a este mensaje
#3 Alberto Poblacion
07/01/2009 - 16:06 | Informe spam
"Anti_Work" wrote in message
news:
Mira, ejecuté esta consulta desde Access

SELECT * INTO Empleados
IN ''[ODBC;DRIVER={SQL Native Client};
Server=USER\SQLEXPRESS;
Database=MBienes]
FROM Empleados;

Y me aparece en una pantalla de login. Elegi "Autenticación de Windows" y
funcinó. Me exporto la tabla con los datos (sin las claves).
Entonces cambié el string en VB, lo ejecuto y me da el error:
"ODBC: error al conectar con '{SQL Native Client}USER\SQLEXPRESS'."

sql = "SELECT * INTO Empleados " & _
"IN ''[ODBC; DRIVER={SQL Native Client};" & _
"Server=USER\SQLEXPRESS;"
& _
"Database=MBienes] " & _
& "FROM Empleados"

¿como es que en access funcion y en vb no?.



En Acces funciona porque es capaz de presentarte una ventanita para
pedirte las credenciales para conectarse al SQL Server. En VB no funciona
porque el driver de OleDb no es capaz de mostrar la pregunta en pantalla,
así que tienes que meterle las credenciales dentro de la consulta. Para usar
autenticación de Windows, prueba a ponerle esto:

sql = "SELECT * INTO Empleados " & _
"IN ''[ODBC; DRIVER={SQL Native Client};" & _
"Server=USER\SQLEXPRESS;" &
_
"Database=MBienes;" & _
"Trusted_Connection=Yes] "
& _
& "FROM Empleados"

Por supuesto, la autenticación de Windows sólo funcionará si el usuario
que está ejecutando el código tiene permiso de acceso al Sql Server. Por
ejemplo, si el código anterior lo metes en una aplicación asp.net bajo IIS
(en lugar de una de WinForms), no funcionará salvo que configures
previamente la impersonación de asp.net.
Respuesta Responder a este mensaje
#4 Anti_Work
07/01/2009 - 17:20 | Informe spam
Funcinó perfectamente!!!

Muchas Gacias.
Saludos



"Alberto Poblacion" wrote:

"Anti_Work" wrote in message
news:
> Mira, ejecuté esta consulta desde Access
>
> SELECT * INTO Empleados
> IN ''[ODBC;DRIVER={SQL Native Client};
> Server=USER\SQLEXPRESS;
> Database=MBienes]
> FROM Empleados;
>
> Y me aparece en una pantalla de login. Elegi "Autenticación de Windows" y
> funcinó. Me exporto la tabla con los datos (sin las claves).
> Entonces cambié el string en VB, lo ejecuto y me da el error:
> "ODBC: error al conectar con '{SQL Native Client}USER\SQLEXPRESS'."
>
> sql = "SELECT * INTO Empleados " & _
> "IN ''[ODBC; DRIVER={SQL Native Client};" & _
> "Server=USER\SQLEXPRESS;"
> & _
> "Database=MBienes] " & _
> & "FROM Empleados"
>
> ¿como es que en access funcion y en vb no?.

En Acces funciona porque es capaz de presentarte una ventanita para
pedirte las credenciales para conectarse al SQL Server. En VB no funciona
porque el driver de OleDb no es capaz de mostrar la pregunta en pantalla,
así que tienes que meterle las credenciales dentro de la consulta. Para usar
autenticación de Windows, prueba a ponerle esto:

sql = "SELECT * INTO Empleados " & _
"IN ''[ODBC; DRIVER={SQL Native Client};" & _
"Server=USER\SQLEXPRESS;" &
_
"Database=MBienes;" & _
"Trusted_Connection=Yes] "
& _
& "FROM Empleados"

Por supuesto, la autenticación de Windows sólo funcionará si el usuario
que está ejecutando el código tiene permiso de acceso al Sql Server. Por
ejemplo, si el código anterior lo metes en una aplicación asp.net bajo IIS
(en lugar de una de WinForms), no funcionará salvo que configures
previamente la impersonación de asp.net.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida