Recordset desconectado

Mi pregunta es tengo un recordset desconectado quisiera saber si hay manera de estando desconectado eliminar registro por medio de sql y lo mismo para actualizar.
Quiero que sea una temporal en la que pueda hacer cambios sin que afecten la tabla original

1 Respuesta

Respuesta
1
Esto es un ejemplo de modificar y eliminar con recordset desconectado por ahí si lo adaptas capaz que funciona.
Option Explicit
' Declaración de variables objeto a nivel del formulario
Private mCnn As ADODB.Connection
Private mRst As ADODB.Recordset
Private Sub Command1_Click()
' Conectamos el Recordset para proceder a la
' actualización
Set mRst.ActiveConnection = mCnn
' Actualizamos el conjunto de datos
mRst.UpdateBatch
' Desconectamos de nuevo el objeto Recordset
Set mRst.ActiveConnection = Nothing
End Sub
Private Sub Command2_Click()
If MsgBox("¿Desea eliminar la tabla temporal?", _
vbInformation + vbYesNo) = vbYes Then
'
' Eliminamos la tabla ...
MCnn. Execute "DROP TABLE Tabla1"
' Descargamos el formulario
Unload Me
End If
End Sub
Private Sub Form_Load()
On Error GoTo ErrFormLoad
' Configuramos los distintos controles del formulario
Command1.Caption = "Actualizar"
Command2.Caption = "Eliminar tabla temporal"
With DataGrid1
.AllowAddNew = True
.AllowDelete = True
End With
' Creamos un nuevo objeto Connection
Set mCnn = New ADODB.Connection
' Abrimos la conexión
With mCnn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source = C:Mis documentosNeptuno.mdb"
.Open
End With
' Creamos la tabla de prueba, copiando la estructura
' de la tabla Clientes
mCnn.Execute "SELECT * INTO Tabla1 FROM Clientes WHERE 1=0"
' Creamos un nuevo objeto Recordset
Set mRst = New ADODB.Recordset
' Configuramos y abrimos el Recordset
With mRst
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockBatchOptimistic
.Open "Tabla1", mCnn, , , adCmdTable
End With
' Enlazamos el control DataGrid con el objeto Recordset
Set DataGrid1.DataSource = mRst
' Desconectamos el objeto Recordset
Set mRst.ActiveConnection = Nothing
Exit Sub
ErrFormLoad:
If Err.Number = -2147217900 Then
If MsgBox("La tabla ya existe. ¿Desea eliminarla?", _
vbInformation + vbYesNo) = vbYes Then
'
' Eliminamos la tabla ...
mCnn.Execute "DROP TABLE Tabla1"
' ... y la volvemos a crear
Resume
End If
End If
Resume Next
End Sub
Private Sub Form_Unload(Cancel As Integer)
mRst.Close
mCnn.Close
Set mRst = Nothing
Set mCnn = Nothing
end sub
Lo que pasa es que estoy utilizando excel y una macro para conectarme a sql server y visual foxpro entonces necesito tomar unos datos, desconectarme y empezar a hacer cambios en el recordset, logro desconectarme pero no se si se pueda hacer actualizaciones y borrar registros del recordser pero por medio de SQL.
Gracias que pena no haber explicado bien el asunto.
Muchas gracias es un gran ejemplo intentare adaptarlo a mis necesidades
Chao
MAO
Usas sql, podes usar stored procedures y la tabla puede ser cualquiera sea temporal o no.
Cualquier duda volvé a preguntar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas