no puedo editar la tabla

18/11/2005 - 20:29 por fredy | Informe spam
hola grupo

la situacion es la siguiente:
tengo la macro que expongo abajo... cuando llega a la instruccion de edit
sale un error 3027 No se puede actualizar. Base de datos u objeto de sólo
lectura. que puede estar pasando o que estoy haciendo mal?
revise las propiedade de la base de datos en el explorer y no sale que sea
de solo lectura.

muchas gracias por su colaboracion

:)
Sub COMPLETAR_TABLA_FACTURADOS()
' ESTA MACRO SE HACE PARA OBTENER LOS DATOS DE VLAG, VLAL, VLMA, CFAL
'Y COMPLETAR LA TABLA FACTURADOS
Dim db As Database, rs As Recordset
Ruta = "C:\Trabajo FRA\APARTADO\infcomer\Tablas Marzo\"
Set db = OpenDatabase(Ruta & "FACTURADOS.mdb")
Set rs = db.OpenRecordset("SELECT FAC_MATR, FAC_NFAC, FAC_VLAG,
FAC_VLAL, FAC_VLMA, FAC_CFAL, PLA_MATR, PLA_NFAC, PLA_VLAG, PLA_VLAL,
PLA_VLMA, PLA_CFAL FROM FACTURADOS, PLANILLA01 WHERE PLA_MATRúC_MATR AND
PLA_NFACúC_NFAC", dbOpenDynaset)
With rs
Do While Not .EOF
.Edit
' FILA = rs!ID
' matrb = rs!fac_matr
' facb = rs!fac_nfac
' matre = rs!pla_matr
' face = rs!pla_nfac
!FAC_VLAG = rs!PLA_VLAG
!FAC_VLAL = rs!PLA_VLAL
!FAC_VLMA = rs!PLA_VLMA
!FAC_CFAL = rs!PLA_CFAL
.Update

Loop
End With
rs.Close
db.Close

End Sub
 

Leer las respuestas

#1 Héctor Miguel
19/11/2005 - 06:22 | Informe spam
hola, fredy !

primero [y disculpa que te lo 'tenga que decir', pero creo que]...
-> no es correcto que postees la misma pregunta en dos [o mas] grupos de forma 'indistinta' :(
pudiera resultar en un 'desgaste innecesario' de 'busquedas de soluciones'...
y... las respuestas en un grupo NO 'beneficiaran' a los demas grupos 'excluidos' [por 'indistintos'] :\
-> si consideras que es de interes para otros grupos... prueba haciendo 'cross-posting' [NO 'multi-posting'] ;)

... la macro que expongo abajo... cuando llega a la instruccion de edit sale un error 3027
No se puede actualizar. Base de datos u objeto de solo lectura.
que puede estar pasando o que estoy haciendo mal?
revise las propiedade de la base de datos en el explorer y no sale que sea de solo lectura...
Sub COMPLETAR_TABLA_FACTURADOS()
Dim db As Database, rs As Recordset
Ruta = "C:\Trabajo FRA\APARTADO\infcomer\Tablas Marzo\"
Set db = OpenDatabase(Ruta & "FACTURADOS.mdb")
Set rs = db.OpenRecordset("SELECT FAC_MATR, FAC_NFAC, FAC_VLAG,
FAC_VLAL, FAC_VLMA, FAC_CFAL, PLA_MATR, PLA_NFAC, PLA_VLAG, PLA_VLAL,
PLA_VLMA, PLA_CFAL FROM FACTURADOS, PLANILLA01 WHERE PLA_MATRúC_MATR AND
PLA_NFACúC_NFAC", dbOpenDynaset)
With rs
Do While Not .EOF
.Edit
[ mas lineas de codigo ] ...



una vez que has 'filtrado'...
1) si el recordset no contiene registros -?-... .BOF y .EOF devuelven' => True [no es 'editable' la posicion actual]
-> si .BOF/.EOF estan en True'... asi permanecen hasta que te 'mueves' a un registro existente

2) probablemente [si fuera el caso 'similar']... modificando el do...loop [p.e.]
de -> Do While Not .EOF
a -> Do Until .EOF
o... preguntando en el codigo por un: rs.RecordCount

3) otra posibilidad es cambiando el modo de acceso al recordset [p.e.]
de -> Set rs = db.OpenRecordset("SELECT FAC_MATR...PLA_NFACúC_NFAC", dbOpenDynaset)
a -> Set rs = db.OpenRecordset("SELECT FAC_MATR...PLA_NFACúC_NFAC", dbOpenDynaset, 0, dbOptimistic)

es posible que existan mas variantes/alternativas/... :))

comentas [si hubiera] detalles adicionales ?
saludos,
hector.

p.d. por si las... visita:
[traduccion automatica]
VBA: ODBCDirect de error "3027" en tiempo de ejecucion para abrir RecordSet
http://support.microsoft.com/kb/q161252/
ACC97: Opciones incorrectas método OpenRecordset para ODBCDirect
http://support.microsoft.com/kb/q169276/

ACC97: Tips for Converting Applications to Using ODBCDirect
http://support.microsoft.com/kb/164481/EN-US/

Preguntas similares