Reconectar a sql server desde access

Tengo una pequeña aplicación en access que funciona con sql server r2 pero resulta que cuando se cae la red o algo similar se desconecta y toca cerrar el programay volverlo a iniciar como o que código hace para que me vuelva a reconectar o algo asi

1 respuesta

Respuesta
1

De que manera te conectas a SQL server, por medio de ODBC, si es así no debería pasar ese error ya que la conexión permanece abierta. Pero podrías colocar un código para que refresque la conexión:

Sub ConecSQL()
On Error GoTo error
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
With conn
.Open "Driver={SQL Server};" & _
"Server=aquí va el servidor;" & _
"Database=aquí va la base de datos;" & _
"TABLE=dbo.aquí va la tabla"
End With
conn.Close
Set conn = Nothing
Exit Sub
error:
MsgBox "No se pudo realizar conexión, aun no se establece la red", vbInformation, "Infor"
conn.Close
Set conn = Nothing
End Sub

gracias por tu rápida respuesta, bueno mira yo lo hice por mover datos, y en que parte pondría este codigo?

Ese código lo puedes ejecutar desde un modulo o desde un botón de comando en el evento hacer click, pero como por mover datos, lo que hace el código es verificar si la conexión ya esta estable o aun tiene fallas, yo trabajo también desde access con datos de SQL server que se encuentra en tablas almacenadas lo que hago es crear una imagen de cada tabla y las actualizo en cada cierto tiempo.

pero como haces para crear esa imagen de cada tabla y que por ejemplo otros usuarios entre y estén modificando el rigstro no habría problemas?

Para crear la imagen es como importar la tabla a través de código es proceso fácil yo actualmente en la base de datos son 119 tablas las que tengo que importar, ese proceso se realiza en la madrugada cuando no se usan mucho la información de dichas tablas, y después en un tiempo en la mañana para que los datos estén listos para la tarde, y así es el proceso para hacer ese tipo de importación te dejo el código:

Sub SQLImport()
On Error GoTo error
Dim NombreTabla As String 'Nombre de la tabla
Dim Base As String 'base de datos
Dim registros As Integer
Dim contador As Integer
Dim TABLAS_RPM_T4M As ADODB.Recordset
Dim Importar As ADODB.Command
Dim origen As String 'origen de la tabla
DoCmd.Echo False
Set TABLAS_RPM_T4M = New ADODB.Recordset
With TABLAS_RPM_T4M
.ActiveConnection = CurrentProject.Connection
.CursorType = adOpenKeyset
.LockType = adLockOptimistic
.Open "SELECT TABLA,BASE FROM TABLAS_RPM_T4M"
End With
registros = TABLAS_RPM_T4M.RecordCount
For contador = 1 To registros
Set Importar = New ADODB.Command
Set DropTable = New ADODB.Command
NombreTabla = TABLAS_RPM_T4M.Fields(0)
Base = TABLAS_RPM_T4M.Fields(1)
origen = "[ODBC;Driver=SQL Server;" & _
"SERVER=CME042;" & _
"DATABASE=" & Base & ";" & _
"Integrated Security=SSPI;].[" & NombreTabla & "]"
With Importar
.ActiveConnection = CurrentProject.Connection
.CommandText = "SELECT * INTO " & NombreTabla & " FROM " & origen
.Execute
End With
If TABLAS_RPM_T4M.EOF And TABLAS_RPM_T4M.BOF Then
Exit Sub
Else
TABLAS_RPM_T4M.MoveNext
End If
Set Importar = Nothing
Set DropTable = Nothing
Next
DoCmd.Echo True
Set Importar = Nothing
Set TABLAS_RPM_T4M = Nothing
Exit Sub
error:
MsgBox error, vbCritical
MsgBox "Problema al crear imagen de " & NombreTabla, vbCritical
DoCmd.Echo True
Set Importar = Nothing
Set TABLAS_RPM_T4M = Nothing
End Sub

pero por lo que veo este sistema que me dices no funciona en tiempo real y la necesidad que tengo es que los datos estén en tiempo real. también por lo que

Tienes razón por eso se eligen horas para actualizarse las tablas, yo realizo este proce porque son muchos los registros que se manejan y hacen al access lento por medio de la vinculación porque los servidores se encuentran en estados unidos no en mexico es mas que nada optimizar el las bases de access para que puedan trabajar bien ellas, porque en información actualizada es mejor crear un vinculo pero todo depende de donde se encuentre el servidor y que tantos registros se manejan

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas