Código rebelde

30/06/2003 - 15:39 por El Nazgûl | Informe spam
Tengo una tabla a la que accedo por ADO (es correcto, ggg, por aquello de
las confusiones). Busco cuál es el último código introducido y le sumo 1. He
aquí el código:

Sub AsignarCodigo()
CON = "Select CODIGO From TABLA"
TABLA.Open CON, CNN, adOpenDynamic, adLockOptimistic, adCmdText
'On Error Resume Next
TABLA.MoveLast
If TABLA.RecordCount <= 0 Then
formulario.txtCodigo = "01"
Else
formulario.txtCodigo = "0" & Val(TABLA!Codigo) + 1
End If
TABLA.Close
End Sub

Yo creo que el código está bien, pero no sé si estaré equivocándome al hacer
referencia a la propiedad .RecordCount (cuyo valor es -1, haya registros o
no en la tabla). Y puedo asegurar que tengo, al menos, un registro.

Y el segundo síntoma de rebeldía es que si escribo TABLA!CODIGO,
automáticamente me lo cambia a TABLA!Codigo.

¿Quién me puede ayudar?

Salu2 desde Angband (Utumno)

El Nazgûl ;-)
 

Leer las respuestas

#1 Nohel Hernández
30/06/2003 - 16:04 | Informe spam
Saludos Nazgul

Puedes intentarlo de la siguiente forma:

Sub AsignarCodigo()
CON = "Select MAX(CODIGO) as UltimoCodigo From TABLA"
TABLA.Open CON, CNN, adOpenDynamic, adLockOptimistic, adCmdText
'On Error Resume Next
If TABLA.EOF=True then
formulario.txtCodigo = "01"
Else
If IsNull(Tabla!UltimoCodigo) Then
formulario.txtCodigo = "01"
Else
formulario.txtCodigo = "0" & TABLA!UltimoCodigo + 1
End If
End If
TABLA.Close

Yo utilizaba "SELECT TOP 1 Codigo FROM TABLA ORDER BY Codigo DESC"
pero en una muy buena aclaratoria de Don Leonardo Azpurua me sugirío que
utilizara MAX ya que es soportado por la mayoria de las BD existentes

Con respecto a que te cambia CODIGO por Codigo no es una rebeldía, debes
verificar que no tengas declarada una variable "Codigo" en tu programa
Espero te sirva

Saludos

Nohel Hernandez
Caracas - Venezuela

(Guía de buen uso del foro)
http://perso.wanadoo.es/rubenvigon/foro

Preguntas similares