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
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