Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error "El uso de propiedad no es valido"

Estas en el tema de Error "El uso de propiedad no es valido" en el foro de SQL Server en Foros del Web. Buenas, Tengo una tabla creada en Access, llamada "Clientes" con un campo autonumerico llamado "ClientesID", tengo tambien un formulario creado en base a esta tabla, ...
  #1 (permalink)  
Antiguo 18/08/2010, 21:43
Avatar de Lexther  
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Error "El uso de propiedad no es valido"

Buenas,

Tengo una tabla creada en Access, llamada "Clientes" con un campo autonumerico llamado "ClientesID", tengo tambien un formulario creado en base a esta tabla, estoy intentando mediante ADO,SQL y VB, (De un codigo que encontre en una pagina, que supuestamente soluciona un problema identico al mio) que al eliminar un registro, los demas registros se acomoden segun su lugar numerico, por ejemplo, si de los registros 1,2,3,4,5,6 elimino el registro 3, el 4 pase a ser el 3, el 5 el 4 y el 6 el 5, es decir, conservar correlativos luego de eliminar.

Este es el codigo encontrado.

Código vb:
Ver original
  1. Dim sql$, x As Long, y As Long
  2. Dim rst As ADODB. Recordset
  3.  
  4. Set rst = New ADODB. Recordset
  5.  
  6. Sql$ = "Select id From Tabla Order By Id"
  7.  
  8. With rst
  9. . CursorLocation = adUseClient
  10. . CursorType = adOpenKeyset
  11. . LockType = adLockOptimistic
  12. . Open sql$, CurrentProject. Connection, , , adCmdText
  13. End With
  14.  
  15. X = rst. RecordCount
  16. rst. MoveFirst
  17.  
  18. For y = 1 To x
  19. rst. Fields! Id = y
  20. rst. Update
  21. rst. MoveNext
  22. Next y
  23.  
  24. Set rst = Nothing

Sin embargo en el fragmento rst. Fields! Id = y me dice "Uso de propiedad no es valido".
  #2 (permalink)  
Antiguo 19/08/2010, 08:55
Avatar de Thumper  
Fecha de Ingreso: agosto-2004
Ubicación: Jesús María - Lima - Perú
Mensajes: 270
Antigüedad: 19 años, 8 meses
Puntos: 6
Respuesta: Error "El uso de propiedad no es valido"

"Id" al parecer es una palabra reservada ponle un alias a tu campo y pruebalo de otra manera

Linea 6. Sql$ = "Select id as intId From Tabla Order By Id"
Linea 19. rst. Fields! intId = y

saludos
__________________
Martín Alexis Valdivia S.
-----------------------------
"Quisiéramos cambiar el mundo, pero Dios no nos daría el código fuente." CAP
"Si Saber No Es Un Derecho, Seguro Será Un Izquierdo." WD
  #3 (permalink)  
Antiguo 19/08/2010, 09:26
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Error "El uso de propiedad no es valido"

Aunque no es un foro de VB, prueba esto:
Código vb:
Ver original
  1. rst!Id = y
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 20/08/2010, 15:05
Avatar de Lexther  
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error "El uso de propiedad no es valido"

He probado el codigo de estas 3 formas y me ha enviado error

1.
Código vb:
Ver original
  1. Private Sub Eliminar_Click()
  2. Dim sql$, x As Long, y As Long
  3. Dim rst As ADODB.Recordset
  4.  
  5. Set rst = New ADODB.Recordset
  6.  
  7. sql$ = "Select CodClientes From Clientes Order By CodClientes"
  8.  
  9. With rst
  10. .CursorLocation = adUseClient
  11. .CursorType = adOpenKeyset
  12. .LockType = adLockOptimistic
  13. .Open sql$, CurrentProject.Connection, , , adCmdText
  14. End With
  15.  
  16. x = rst.RecordCount
  17. rst.MoveFirst
  18.  
  19. For y = 1 To x
  20. rst.CodClientes = y
  21. rst.Update
  22. rst.MoveNext
  23. Next y
  24.  
  25. Set rst = Nothing
  26. End Sub

2.
Código vb:
Ver original
  1. Private Sub Eliminar_Click()
  2. Dim sql$, x As Long, y As Long
  3. Dim rst As ADODB.Recordset
  4.  
  5. Set rst = New ADODB.Recordset
  6.  
  7. sql$ = "Select CodClientes From Clientes Order By CodClientes"
  8.  
  9. With rst
  10. .CursorLocation = adUseClient
  11. .CursorType = adOpenKeyset
  12. .LockType = adLockOptimistic
  13. .Open sql$, CurrentProject.Connection, , , adCmdText
  14. End With
  15.  
  16. x = rst.RecordCount
  17. rst.MoveFirst
  18.  
  19. For y = 1 To x
  20. rst!CodClientes = y
  21. rst.Update
  22. rst.MoveNext
  23. Next y
  24.  
  25. Set rst = Nothing
  26. End Sub

3.
Código vb:
Ver original
  1. Private Sub Eliminar_Click()
  2. Dim sql$, x As Long, y As Long
  3. Dim rst As ADODB.Recordset
  4.  
  5. Set rst = New ADODB.Recordset
  6.  
  7. sql$ = "Select CodClientes From Clientes Order By CodClientes"
  8.  
  9. With rst
  10. .CursorLocation = adUseClient
  11. .CursorType = adOpenKeyset
  12. .LockType = adLockOptimistic
  13. .Open sql$, CurrentProject.Connection, , , adCmdText
  14. End With
  15.  
  16. x = rst.RecordCount
  17. rst.MoveFirst
  18.  
  19. For y = 1 To x
  20. rst.Fields! CodClientes = y
  21. rst.Update
  22. rst.MoveNext
  23. Next y
  24.  
  25. Set rst = Nothing
  26. End Sub
  #5 (permalink)  
Antiguo 20/08/2010, 15:10
Avatar de Lexther  
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error "El uso de propiedad no es valido"

Modifique el nombre del campo autonumerico y con este codigo tampoco funcionó:

Código vb:
Ver original
  1. Private Sub Eliminar_Click()
  2. Dim sql$, x As Long, y As Long
  3. Dim rst As ADODB.Recordset
  4.  
  5. Set rst = New ADODB.Recordset
  6.  
  7. sql$ = "Select id From Clientes Order By Id"
  8.  
  9. With rst
  10. .CursorLocation = adUseClient
  11. .CursorType = adOpenKeyset
  12. .LockType = adLockOptimistic
  13. .Open sql$, CurrentProject.Connection, , , adCmdText
  14. End With
  15.  
  16. x = rst.RecordCount
  17. rst.MoveFirst
  18.  
  19. For y = 1 To x
  20. rst.!Id = y
  21. rst.Update
  22. rst.MoveNext
  23. Next y
  24.  
  25. Set rst = Nothing
  26. End Sub

Sale error de Compilacion - Error de Sintaxis
  #6 (permalink)  
Antiguo 20/08/2010, 15:28
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Error "El uso de propiedad no es valido"

Hola,

Posiblemente,

rst.Fields("CodClientes").Value = y

Saludos,
  #7 (permalink)  
Antiguo 20/08/2010, 15:38
Avatar de Lexther  
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error "El uso de propiedad no es valido"

Si la coloco tal como me dijiste, no sucede nada, y si le coloco el simbolo ! me sale este error:

http://img833.imageshack.us/img833/7591/000wt.jpg"]http://img833.imageshack.us/img833/7591/000wt.jpg
  #8 (permalink)  
Antiguo 20/08/2010, 20:21
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 2 meses
Puntos: 260
Sonrisa Respuesta: Error "El uso de propiedad no es valido"

Hola,

¿Con 'no sucede nada' a que te refieres? Ese código renumera el campo Id de la tabla Clientes. ¿Revisaste los datos de la tabla Clientes antes y después? ¿Había algo que renumerar?

Solo para estar seguro hice una prueba y funcionó bien, cambiado la numeración de 1 en adelante secuencialmente a un campo numérico de una tabla. Solamente probé con 5 registros ingresados a mano con números al azar.

Saludos.
  #9 (permalink)  
Antiguo 20/08/2010, 21:27
Avatar de Lexther  
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error "El uso de propiedad no es valido"

El codigo funciona perfectamente, el error fue todo el tiempo mio, y tu me has dado la luz, estaba probandolo pero ciertamente no habia nada que organizar, por eso no notaba su efectividad.

Gracias a todos, por su incondicional ayuda.
  #10 (permalink)  
Antiguo 20/08/2010, 21:37
Avatar de Lexther  
Fecha de Ingreso: agosto-2010
Mensajes: 8
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Error "El uso de propiedad no es valido"

Este tema ya puede cerrarse, soy nuevo, no se si debo hacerlo yo o lo hace algun moderador.

Gracias.

Etiquetas: propiedad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:17.