Necesito ayuda urgentemente, sobre un numero consecutivo. Gracias

lechuga
20 de Julio del 2004
Hola compareño(a)s

Alguien me puede ayudar, mi problema es el siguiente.
Lo que pasa que estoy haciendo un sistema para llevar el control de un inventario el cual me piden que se generen las claves automaticamente.

Tengo el siguiente codigo para generar automaticamente la clave del proveerdor cuando doy de alta.

Public Sub Correlativo()
CADENADECONEXION = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:WINDOWSEscritorioSICIReMaSICIReMa.mdb;Persist Security Info=False"
DB.ConnectionString = CADENADECONEXION
DB.Open
dim num, total as integer
Total = 0

Set RST = DB.Execute("Select max([Numero]) As [valor] FROM proveedores")
If RST.BOF Or RST.EOF Then
num = 1
cl_prov = "PROV001"
Else
Total = RST!valor
num = Total + 1
If ((Total + 1) >= 1 And (Total + 1) <= 9) Then
cl_prov = "PROV00" & (Total + 1)
Else
If ((Total + 1) >= 10 And (Total + 1) <= 99) Then
cl_prov = "PROV0" & (Total + 1)
Else
If ((Total + 1) >= 100 And (Total + 1) <= 999) Then
cl_prov = "PROV" & (Total + 1)
End If
End If
End If
End If
DB.Close
End Sub

Pero cuando doy de alta y mi base de datos esta vacía me manda el siguiente error
Error"94" uso no valido del Null. En cambio si tengo en el primer registro 0 me pone automaticamente PROV001

Alguien me puede ayudar para validar cuando la base de datos este completamente vacía y ya no me marque ese error.

De antemano muchisimas gracias

Se me olvidaba, la variable num es otro campo en la base de datos en donde llevo el numero de registro.
Y cl_prov donde guardo la clave del proveedor.

Zulu
20 de Julio del 2004
A mí me sucedía algo similar. El problema está en que, al no haber registros, RST se queda con valor nulo, así que no puedes hacer la comprobación BOF o EOF. En su lugar, prueba esto

if isNull(RST("Valor")) then

Pruébalo y si funciona coméntalo.