Para SoftJaen

24/08/2006 - 22:14 por Cid | Informe spam
hice hace unas fechas una consulta sobre como exportar desde una base sql a
una access y me diste una respuesta que adjunto, el caso es que me he puesto
ahora a hacerlo y me encuentro con el problema de que por odbc no puedo
acceder al servidor ya que es remoto, se podria hacer con una conexion
remota? gracias y saludos.

te pongo la respuesta que me habias dado:
Si lo deseas hacer de una manera fácil y eficaz, abre una conexión con la
base de datos de Access, mediante el proveedor de datos Ole Db .NET, y
ejecutas una consulta SQL de creación de tabla, en cuya cadena de conexión
deberás de especificar tu intención de conectarte al servidor de SQL Server
mediante el driver ODBC del mismo. Aquí tienes un ejemplo:


Imports System.Data.OleDb


' Construimos la cadena de conexión Ole Db,
' para conectarnos con la base de datos de Access
'
Dim connString As String = _
"Provider = Microsoft.Jet.OLEDB.4.0;" & _
"Data Source = C:\Mis documentos\Bd1.mdb;"


' Creamos un nuevo objeto Connection
'
Dim cnn As New OleDbConnection(connString)


Try
' Creamos la consulta SQL de creación de tabla,
' indicando que vamos a utilizar el driver
' ODBC de Microsoft SQL Server
'
Dim sql As String = _
"SELECT * INTO [Nombre_Tabla_Access] " & _
"FROM [Nombre_Tabla_Base_SQLServer_2000] " & _
"IN ''[ODBC;DRIVER={SQL Server};" & _
"Server=Nombre_Instancia_Servidor_SQL;" & _
"Database=Nombre_Base_Datos_SQL_2000;" & _
"UID=Cuenta_Usuario;" & _
"PWD=Contraseña_Usuario]"


' Configuramos un objeto Command para ejecutar
' la consulta SQL de creación de tabla
'
Dim cmd As New OleDbCommand(sql, cnn)


' Abrimos la conexión
cnn.Open()


' Ejecutamos la consulta
Dim n As Integer = cmd.ExecuteNonQuery()


MessageBox.Show("Se creado satisfactoriamente la tabla." & _
ControlChars.CrLf & _
"Número de registros afectados: " & n.ToString, _
"Crear archivo dBASE")


Catch ex As OleDbException
MessageBox.Show(ex.Errors(0).Message)


Catch ex As Exception
MessageBox.Show(ex.Message)


Finally
' Cerramos la conexión
cnn.Close()
cnn = Nothing


End Try
 

Leer las respuestas

#1 SoftJaén
26/08/2006 - 14:38 | Informe spam
"Cid" escribió:

hice hace unas fechas una consulta sobre como exportar desde una base sql
a una access y me diste una respuesta que adjunto, el caso es que me he
pueso ahora a hacerlo y me encuentro con el problema de que por odbc no
puedo acceder al servidor ya que es remoto, se podria hacer con una
conexion remota?



Hola:

La única manera que conozco de acceder a una instancia remota de SQL Server,
es indicando la dirección IP y el puerto predeterminado del servidor SQL
Server, en lugar de indicar el nombre de la instancia de SQL Server.

Modifica la cadena de conexión para poder acceder al servidor:

Dim sql As String = _
"SELECT * INTO [Nombre_Tabla_Access]" & _
"FROM [Nombre_Tabla_Base_SQLServer_2000]" & _
"IN ''[ODBC;DRIVER={SQL Server};" & _
"SERVER=XXX.XXX.XXX.XXX,1433;" & _
"DATABASE=Nombre_Base_Datos_SQL_2000;" & _
"UID=Cuenta_Usuario;" & _
"PWD=Contraseña_Usuario]"

El puerto predeterminado por defecto es el 1433. Si por casualidad tienes
otro número de puerto distinto, deberás de indicarlo en la cadena de
conexión.

Un saludo

Enrique Martínez
[MS MVP - VB]

Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.

Preguntas similares