** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Visual Basic Clásico (VB3...VB6)
  Mensajes nuevos Mensajes nuevos RSS - Error en base de datos
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoError en base de datos

 Responder Responder Página  12>
Autor
Mensaje
gaita Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Marzo/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Tema: Error en base de datos
    Enviado: 16/Marzo/2010 a las 19:30
hola Gente soy nuevo en este foro y tengo el siguiente error

3027 diciendo "can't update database or object is read-only"
Private
Sub cmdFacturar_Click()
  1. Dim criterio As String
  2. Dim criterio1 As String
  3. Dim llave As String
  4. Dim llave1 As String
  5.  
  6. f_CopiaFacturador.Text2.Visible = False
  7. f_CopiaFacturador.txtFacTipo.Visible = True
  8.  
  9.  
  10. Call Letra
  11. criterio = " nrocomprobante ='" + txtNroPresupuesto + "' and tipocomprobante='" & Label7.Caption & "'"
  12. dsDetalleCliente.Recordset.FindFirst (criterio) '("nrocomprobante='" & txtNroPresupuesto.text & "'and tipocomprobante='" & Label7.Caption & "'")
  13.  
  14.  
  15. dsDetalleCliente.Recordset.Edit
  16. dsDetalleCliente.Recordset!tipoComprobante = "FC"
  17. dsDetalleCliente.Recordset!Nrocomprobante = txtNroPresupuesto1.text
  18. dsDetalleCliente.Recordset!condicion = "9"
  19. dsDetalleCliente.Recordset.Update
  20.  
  21. criterio1 = "numfactura ='" & txtNroPresupuesto.text & "' and tipocomprobante='" & Label7.Caption & "'"
  22. dsDetalleFactura.Recordset.FindFirst (criterio1) '("numfactura='" & txtNroPresupuesto.text & "' and tipocomprobante='" & Label7.Caption & "'")
  23.  
  24. dsDetalleFactura.Recordset.Edit
  25. dsDetalleFactura.Recordset!tipoComprobante = "FC"
  26. dsDetalleFactura.Recordset!numfactura = txtNroPresupuesto1.text
  27. dsDetalleFactura.Recordset.Update
  28. -----------------------------------------------------------------------------------------------------
  29. Function Letra()
  30. If cboTipoIva = "Responsable Inscripto" Or cboTipoIva = "Responsable No Inscripto" Then 'XXXXXXXXXXXX
  31. If OpVta.Value = True Then
  32. txtNroPresupuesto1 = Format(dsvariables.Recordset!facturaA + 1, "00000")
  33. Else
  34. txtNroPresupuesto1 = Format(dsvariables.Recordset!NcreditoA + 1, "00000")
  35. End If
  36. Else
  37. If OpVta.Value = True Then
  38. txtFacTipo.text = "B"
  39. txtNroPresupuesto1 = Format(dsvariables.Recordset!factura + 1, "00000")
  40. Else
  41. txtFacTipo.text = "B"
  42. txtNroPresupuesto1 = Format(dsvariables.Recordset!ncredito + 1, "00000")
  43. End If
  44. End If
  45. End Function
  46. --------------------------------------------------------------------------------------------------------
  47. --------------------------------------------------------------------------------------------------------
  48. y me da error 3027 diciendo "can't update database or object is read-only"
  49.  
  50. y el error me lo da en:
  51.  
  52. dsDetalleFactura.Recordset.Edit
  Responder%20Citando

Arriba
Emilio Ver desplegable
Administrador
Administrador

Santander

Unido: 08/Agosto/2004
Localización: España
Estado: en línea
Puntos: 18807
Enlace directo a este mensaje Enviado: 16/Marzo/2010 a las 19:59
Hola, bienvenido al foro!
 
lo mas probable es que el recordset esté basado en una consulta y que esa consulta no sea actualizable.
Saludos a todos desde Huelva

http://www.mvp-access.es/emilio/
Arriba
gaita Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Marzo/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 17/Marzo/2010 a las 01:35
el rsdetallefactura es el control data

No entiendoo bien lo que queres decir
Arriba
M_M_Tavi Ver desplegable
Habitual
Habitual
Avatar

Unido: 10/Noviembre/2009
Localización: España
Estado: Sin conexión
Puntos: 51
Enlace directo a este mensaje Enviado: 17/Marzo/2010 a las 11:18
Hola gaita, y bienvenido.
 
Creo que el mismo mensaje te está diciendo qué te está pasando:
La base debe ser de solo lectura.
Cambia los atributos del archivo para poder escribir en ella.
 
Saludos Wink
Pasaba por aqui...
Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 17/Marzo/2010 a las 12:53
¿Control Data? ¿Estamos hablando de VBA y Access, o de VB6 atacando a una base de datos de Access?
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
gaita Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Marzo/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 17/Marzo/2010 a las 18:18
no de VB6 con access ?

La base de datos no esta de "solo lectura"
Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 17/Marzo/2010 a las 18:52
Si es VB6, tal vez sea mejor mover el hilo al subforo adecuado.
 
Y si la base de datos no es de "sólo lectura", revisa la consulta que cargas en ese control Data: seguramente es como indica Emilio, que no permite modificar los datos.
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
gaita Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Marzo/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 20/Marzo/2010 a las 00:49
me ponen Patxi Sanz

Y si la base de datos no es de "sólo lectura", revisa la consulta que cargas en ese control Data: seguramente es como indica Emilio, que no permite modificar los datos.


no se a que consulta se refiere ?

trabajo con visual basic 6 y access y me da el errror

sino me gustaria que alguien me diga como puedo actualizar esos dos datos (tipoComprobante y numfactura)

reeemplaxar esto

criterio1 = "numfactura ='" & txtNroPresupuesto.text & "' and tipocomprobante='" & Label7.Caption & "'"
dsDetalleFactura.Recordset.FindFirst (criterio1) '("numfactura='" & txtNroPresupuesto.text & "' and tipocomprobante='" & Label7.Caption & "'")

dsDetalleFactura.Recordset.Edit
dsDetalleFactura.Recordset!tipoComprobante = "FC"
dsDetalleFactura.Recordset!numfactura = txtNroPresupuesto1.text
dsDetalleFactura.Recordset.Update
Arriba
CarCar Ver desplegable
Moderador
Moderador


Unido: 30/Septiembre/2004
Localización: España
Estado: Sin conexión
Puntos: 9049
Enlace directo a este mensaje Enviado: 20/Marzo/2010 a las 10:45
Movemos el hilo al foro correspondiente...

Si realmente estás agradecido, pásate por http://www.mvp-access.com/foro/foroonline.htm
Arriba
CarCar Ver desplegable
Moderador
Moderador


Unido: 30/Septiembre/2004
Localización: España
Estado: Sin conexión
Puntos: 9049
Enlace directo a este mensaje Enviado: 20/Marzo/2010 a las 10:49
Hola:
 
El control data tendrá una propiedad en la que esté el nombre de una consulta o una sentencia SQL de eso es de lo que te están hablando.
 
Si ejecutas en Access esa consulta para ver su contenido, verás que tampoco te deja actualizar datos, ni añadir registros, eso es porque la consulta no es actualizable. Si antes funcionaba y ahora no, se habrá añadido a dicha consulta una nueva tabla que crea ambigüedades.

Si realmente estás agradecido, pásate por http://www.mvp-access.com/foro/foroonline.htm
Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 20/Marzo/2010 a las 13:27
Y si no puedes modificar la consulta que usas como origen del control Data, siempre puedes usar una consulta de actualización en vez de la edición del registro.
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
gaita Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Marzo/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 22/Marzo/2010 a las 00:03
Publicado originalmente por CarCar CarCar escribió:

Hola:
 
El control data tendrá una propiedad en la que esté el nombre de una consulta o una sentencia SQL de eso es de lo que te están hablando.
 
Si ejecutas en Access esa consulta para ver su contenido, verás que tampoco te deja actualizar datos, ni añadir registros, eso es porque la consulta no es actualizable. Si antes funcionaba y ahora no, se habrá añadido a dicha consulta una nueva tabla que crea ambigüedades.


Sentencia SQl no  hay lo que si en:

Private Sub Form_Activate
tengo este codigo , tendra algo que ver ?

If IsNumeric(txtNroPresupuesto) Then
   dsDetalleFactura.Recordset.FindFirst ("numfactura ='" & txtNroPresupuesto.text & "'and tipocomprobante='" & Label7.Caption & "'")
   dsDetalleFactura.Refresh
   txtTotal.text = FormatNumber(dsDetalleFactura.Recordset!Subtotal, 2)
   txtiva.text = FormatNumber(dsDetalleFactura.Recordset!iva, 2)
   txtfinal.text = FormatNumber(dsDetalleFactura.Recordset!total, 2)
End If

Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 22/Marzo/2010 a las 11:49
Sentencia SQL tiene que haber, si no mediante código, sí en las propiedades del control Data. También puede ser que en vez de sentencia SQL, hayas indicado únicamente el nombre de la tabla o consulta que tiene que usar ese control Data.
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
gaita Ver desplegable
Nuevo
Nuevo
Avatar

Unido: 16/Marzo/2010
Localización: Argentina
Estado: Sin conexión
Puntos: 0
Enlace directo a este mensaje Enviado: 22/Marzo/2010 a las 18:02
Ni hace falta ni sirve para nada reproducir entero el mensaje anterior.

Si , eso si , indique :

recordsource= tbdetallefactura1


Editado por oirausu - 22/Marzo/2010 a las 21:30
Arriba
Patxi Sanz Ver desplegable
Administrador
Administrador
Avatar

Unido: 26/Noviembre/2007
Localización: España
Estado: Sin conexión
Puntos: 5023
Enlace directo a este mensaje Enviado: 23/Marzo/2010 a las 11:33
Y ese tbdetallefactura1, ¿qué es? ¿una consulta o una tabla?
 
Si es una consulta, abre la base de datos desde Access, abre esa consulta, e intenta modificar o agregar registros directamente en ella.
Un saludo,

Patxi Sanz
Tudela (NA)
Mi Web
Arriba
 Responder Responder Página  12>
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable