Bloqueo de Registros de Griselda

Borré el archivo ldb, pero igual tengo bloqueada mi tabla, ¿hay alguna forma de acceder por access o por vb?
Y este es el error que me tira cuando se bloquea:
Error 3251
Current recordset does not support updating this may be a limitation of the provider, or of the selected locktype.

1 respuesta

Respuesta
1
El problema corresponde a la forma en que trabajas con el recordset, me puedes mostrar como defines la conexión a la base de datos y como defines el recordset.
David:
Te envío el Código que se ejecuta cuando se bloquea
With rstFVentaPago
rstFVentaPago(Nomb_FormaVP")
rstFVentaPago.Update
form23.HabilitarBotonesYOrdenes
form23.tbBarraHerram.Buttons("grabar").enabled=false
form23.tbBarraHerram.Buttons("cancelar").enabled=false
form23.cmdgrabarFVP.enabled=false
form23.cmdcancelFVP.enabled=false
End with
Saludos
Griselda
David:
Este es mi código. Ya elimine el ldb de mi carpeta en donde esta la base de datos y quisiera saber si hay otra forma de desbloquearlo por access.
'Declaraciones publicas de la base de datos y tablas
Public cnSistemaFlowers As ADODB.Connection
Public rstCliente As ADODB.Recordset
Public rstFacturas As ADODB.Recordset
Public rstProductos As ADODB.Recordset
Public rstRubros As ADODB.Recordset
Public rstRubrosProductos As ADODB.Recordset
Public rstProvincia As ADODB.Recordset
Public rstLocalidad As ADODB.Recordset
Public rstRespIva As ADODB.Recordset
Public rstDatosEmpresa As ADODB.Recordset
Public rstFVentaPago As ADODB.Recordset
Public rstDetalleFactura As ADODB.Recordset
Public rstTipoOperac As ADODB.Recordset
Public rstUsuarios As ADODB.Recordset
Public rstProveedores As ADODB.Recordset
Public rstEstadoFactura As ADODB.Recordset
Public rstCompras As ADODB.Recordset
Public rstDetalleCompra As ADODB.Recordset
Public rstGraficoCompra As ADODB.Recordset
Public rstTipoFactura As ADODB.Recordset
Public rstTipodeUsuario As ADODB.Recordset
Public P As Integer
Public F As Integer
Public MontoTotal As Double 'Monto Total de Factura
Public n As Integer
Public Fuente As StdFont
Public Texto As String
Public DetalleFactura As String
Public FF As Integer
Public ValorFila As Integer
Public MontoTotalCompra As Single 'Monto Total de Compra
Public CodProveedor As Integer 'CodProveedor para rstCompras
Public CodTipoPago As Integer 'CodTipoPago para rstCompras
Public AgregarStock As Integer 'Cantidad Agregada al Stock
Public RestarStock As Integer 'Cantidad Restada al Stock
Public StockActual As Integer 'Cantidad Actual del Stock
Public Num_DetCompra As Integer 'Numero del detalle de compra
Public NombreUsuario As String
Public ConvertirNU As String
Public NumeroCompra As String 'Numero de la compra a los proveedores
Public GuardarCantidad As Integer
Public NuevaCantidad As Integer
Public NombProducto As String
Public kkl As Integer
Public GTipoFactura As String * 1
Public ResponsableIva As String
Public Iva As Double
Public agr As Integer
Public ContadorEntradas As Integer
Public CodTipoUsuario As Integer
Sub Main()
On Error GoTo Falla 'control de errores en tiempo de ejecucion
'Crea Instancias y Conecta Abre la Base de Datos
Const sPathBase As String = "c:\Tesis Gris\BDFlowers\SistemaFlowers.mdb"
Set cnSistemaFlowers = New ADODB.Connection
Set rstCliente = New ADODB.Recordset
Set rstProvincia = New ADODB.Recordset
Set rstLocalidad = New ADODB.Recordset
Set rstRespIva = New ADODB.Recordset
Set rstDatosEmpresa = New ADODB.Recordset
Set rstFacturas = New ADODB.Recordset
Set rstProductos = New ADODB.Recordset
Set rstRubrosProductos = New ADODB.Recordset
Set rstRubros = New ADODB.Recordset
'Set rstFVP = New ADODB.Recordset
Set rstFVentaPago = New ADODB.Recordset
Set rstDetalleFactura = New ADODB.Recordset
Set rstTipoOperac = New ADODB.Recordset
Set rstUsuarios = New ADODB.Recordset
Set rstCompras = New ADODB.Recordset
Set rstProveedores = New ADODB.Recordset
Set rstEstadoFactura = New ADODB.Recordset
Set rstDetalleCompra = New ADODB.Recordset
Set rstGraficoCompra = New ADODB.Recordset
Set rstTipoFactura = New ADODB.Recordset
Set rstTipodeUsuario = New ADODB.Recordset
With cnSistemaFlowers
.Provider = "ADODB"
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & sPathBase & ";"
.Open
.CursorLocation = adUseClient
End With
'Abrir el conjunto de registros
rstCliente.Open "SELECT * FROM Clientes ", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstFacturas.Open "SELECT * FROM Facturas", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstProductos.Open "SELECT * FROM Productos", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstRubros.Open "SELECT * FROM Rubros_Productos_SF", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstRubrosProductos.Open "SELECT * FROM Rubros_Productos_SF", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstProvincia.Open "SELECT * FROM Provincia", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstLocalidad.Open "SELECT * FROM Localidad", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstRespIva.Open "SELECT * FROM Responsable_Iva", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstDatosEmpresa.Open "SELECT * FROM DatosEmpresa", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstDetalleFactura.Open "SELECT * FROM Detalle_Factura", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstFVentaPago.Open "SELECT * FROM F_VP", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstTipoOperac.Open "SELECT * FROM Tipos_Operaciones_Audit", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstUsuarios.Open "SELECT * FROM Usuarios ORDER BY Usuarios.Nombre_Usuario", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstCompras.Open "SELECT * FROM Compras_A_Proveed", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstProveedores.Open "SELECT * FROM Proveedores", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstEstadoFactura.Open "SELECT * FROM Estado_Factura", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstDetalleCompra.Open "SELECT * FROM Detalle_Compra", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstGraficoCompra.Open "SELECT Mes,Año, MontoTotal FROM GraficoCompra WHERE Año Between #1-1-2002# and #12-31-2002# ", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstTipoFactura.Open "SELECT * FROM TipoFactura", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
rstTipodeUsuario.Open "SELECT * FROM Tipos_Usuarios", cnSistemaFlowers, adOpenDynamic, adLockOptimistic
'Ruta de acceso
ChDir App.Path
On Error GoTo 0 'detiene el control de errores
Falla: 'instruccion del mensaje de error
If Err.Number = Falla Then Exit Sub
MsgBox "Problemas con la Base de Datos, por favor verifique!!!", vbCritical, "ERROR"
Set cnSistemaFlowers = Nothing
Err.Clear
End Sub
Gracias
Saludos
Griselda
Ya volví a revisar el código y no le veo problema, ya que cada uno de los recordsets se abre en bloqueo optimista y es un recordset dinámico, es decir, se actualiza la información en otro lado y se refresca en el que tienes.
En que momento específico o segmento de código te marca el error.
Me marca el error cuando lo voy a grabar.
Primero me posiciono en el registro y después le doy grabar y se bloquea (pasa a modo solo lectura) pero al cargarse se carga como bloqueo optimista el problema esta al grabar.
Espero tu respuesta.
Saludos.
Griselda
Puedes colocar ese segmento de código en específico.
David:
Me faltaba la comilla pero está bien escrito en el programa.
¿Está bien lo que hago para grabar?
Espero tu respuesta.
Saludos
Griselda
Si esta bien escrito veo algo ma en rstFVentaPago(Nomb_FormaVP")m faltan otras comillas, ahora no sería mejor así:
With rstFVentaPago
rstFVentaPago("Nomb_FormaVP")
rstFVentaPago.Update
End with
form23.HabilitarBotonesYOrdenes
form23.tbBarraHerram.Buttons("grabar").enabled=false
form23.tbBarraHerram.Buttons("cancelar").enabled=false
form23.cmdgrabarFVP.enabled=false
form23.cmdcancelFVP.enabled=false
Checa la siguiente forma:
rstFVentaPago("Nomb_FormaVP")
rstFVentaPago.Update
Eliminas el with, ya que no lo necesitas y solo falta igualar:
rstFVentaPago("Nomb_FormaVP") = "nuevo valor"
rstFVentaPago.Update
No se te olvide sacar las instrucciones o simplemente eliminar el with
Muy raro, pero en fin, en todo esto de la computación cualquier cosa puede suceder.
Hola David!
Hice lo que me dijiste pero no se desbloquea, voy a probar hacer la tabla con distinto nombre, distinto nombre de campos, distinto nombre de recordset y con otro formulario. Probé hacer de nuevo la base de datos pero igualmente no me desbloquea.
Saludos
Griselda
Hola David:
Probé hacer lo ultimo que te dije: que era hacer una nueva tabla e igualmente no me desbloquea.
No hay alguna posibilidad de hacerlo por Access.
Gracias
Saludos
Griselda
La versión del ADO que utilizas para trabajar con el problema, ya que veo que todo lo que comentamos no nos ha ayudado mucho.
Quizás todo esta en el método de la apertura de la conexión, de la versión del ADO.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas