All pastes #256648 Raw Edit

DarkNightRider

public text v1 · immutable
#256648 ·published 2006-11-24 14:02 UTC
rendered paste body
Function gfCalculaUltId(ByVal vfTablaNombre As String, ByVal vfCampoId As String, ByVal vfLongCampo As Integer)
    Dim lrs As New ADODB.Recordset
    Dim lsId    As String
    
    If lrs.State = adStateOpen Then lrs.Close
    Sql = "Select max(" & vfCampoId & ") from " & vfTablaNombre
    lrs.Open Sql, gConn, adOpenKeyset, adLockReadOnly
    If lrs.RecordCount >= 0 And Not IsNull(lrs.Fields(0).Value) Then
        lsId = lrs.Fields(0).Value
    Else
        lsId = gfIncrementa("0", vfLongCampo)
    End If
    lrs.Close
    
    gfCalculaUltId = lsId
End Function

Function gfIncrementa(ByVal vfValor As String, ByVal vfLongitud As Integer)
    ValorN = CLng(vfValor)
    ValorS = Trim(CStr(ValorN + 1))
    Cero = ""
    For i = 1 To vfLongitud - Len(ValorS)
        Cero = Cero + "0"
    Next
    Valor = Cero & ValorS
    
    gfIncrementa = Valor
End Function


'Para obtener el siguiente codigo de la tabla concepto,
'tengo que enviar el nombre de la tabla, el nombre del campo y
'la longitud del campo
NuevoId=gfIncrementa(gfCalculaUltId("Concepto", "ConId", 8), 8)

'NuevoId sera del tipo 00047