problema actualizar registros en un .dbf

Abel
23 de Febrero del 2006
Hola, tengo el siguiente problema:

Quiero actualizar un campo de un .dbf de 1800 registros. Quiero rellenar el campo "Codformu", que está vacío, y poner 1,2,3,4,5... y así succesivamente. El problema es que solo me rellena el campo cada 7 registros, cuando cambia la formula. El código es el siguiente:

rsFormula.MoveFirst

While Not (rsFormula.EOF)
comptador = comptador + 1
comptastr = Trim(Str(comptador))

ssql = "UPDATE Formulas_2 Set Codformu = '" & comptastr & "' WHERE RECNO()=" & comptador
connexio.Execute ssql

rsFormula.MoveNext
Wend

No se si me he explicado bien, es un poco raro, en lugar de rellenar todos los campos, me los rellena de 7 en 7. Haber si me podeis ayudar. Gracias.

gabrield
23 de Febrero del 2006
Abel:
Si ya tienes abierto el RecordSet, podrías trabajar directamente sobre él en lugar de actualizar con una consulta SQL. Prueba de la siguiente manera:

rsFormula.MoveFirst

While Not (rsFormula.EOF)
comptador = comptador + 1
comptastr = Trim(Str(comptador))

ssql = "UPDATE Formulas_2 Set Codformu = '" & comptastr & "' WHERE RECNO()=" & comptador

rsFormula("Codformu").Value = comptastr
rsFormula.Movenext

Wen

Saludos cordiales
Gabriel Dameñov
www.gdmsargentina.com.ar

gabrield
23 de Febrero del 2006
Perdón:
La línea:

ssql = "UPDATE Formulas_2 Set Codformu = '" & comptastr & "' WHERE RECNO()=" & comptador

debes quitarla.

Abel
23 de Febrero del 2006
Gracias gabrield, pero me da un error: la instrucción es demasiado larga. Creo que es porque me guarda en el campo rsFormula(\"Codformu\") = \"1 \", es decir, un montón de espacios en blanco. Le hago el Trim pero no me hace ni caso, supongo que porque es un campo de la base de datos.

Te agradecería haber si sabes la solución. Gracias de nuevo.

Abel
23 de Febrero del 2006
rsFormula!Codformu = "1 "

- espacios después del 1 -