Uso no válido de Null.

Estoy haciendo un sistema uso VB 6.0 y Sql Server 2005, y me piden que al ingresar un registro en la tabla me traiga el número de este último registro a un textbox.
He hecho algo pero me da el siguiente error:
Error 94 en tiempo de ejecución: Uso no válido de la propiedad Null.
El tema es el siguiente: Yo definí el campo clave de esta tabla como de tipo int y con especificación de identidad e incremento en 1.
Vale aclarar que en el formulario no pido que lo ingresen porque este es autonumérico y se genera sólo, pero yo lo quiero mostrar luego de dada el alta así, con ese código puedo hacer otras asignaciones en base a ese número de clave.
Esta es la tabla a la que le ingreso los datos:
VOLUNTARIOS
    NumVoluntario
    NumDador 'Esta clave está como atributo y hace referencia a otra tabla. Este atributo (en esta tabla) Está definido en esta tabla como de tipo int pero que permita nulos
    ApeVol
    NomVol
    FNacVol
    TipoDocumento
    NumDocumento
    DomicilioParticular
    TelefonoParticular
    Celular
    EMail
    Profesión
Ahora, como quiero recuperar el último registro ingresado hice este código para traerme el último ID.
UtlRegistro = ("SELECT MAX(NumVoluntario) as ultID FROM Voluntarios WHERE NumVoluntario = '" & NumVoluntario & "'")
Te paso el código Completo para que veas como lo hago y me ilumines donde está el error:
Private Sub cmdGuardar_Click()
Dim rsVol As ADODB.Recordset
Dim ConsultaSql As String
Dim UltRegistro As String
UtlRegistro = ("SELECT MAX(NumVoluntario) as ultID FROM Voluntarios WHERE NumVoluntario = '" & NumVoluntario & "'")
    Set Base = New ADODB.Connection
    AbrirBase
    Set rstVoluntarios = New ADODB.Recordset
    ConsultaSql = "INSERT INTO Voluntarios("
    ConsultaSql = ConsultaSql & "ApeVol, "
    ConsultaSql = ConsultaSql & "NomVol, "
    ConsultaSql = ConsultaSql & "FNacVol, "
    ConsultaSql = ConsultaSql & "TipoDocumento, "
    ConsultaSql = ConsultaSql & "NumDocumento, "
    ConsultaSql = ConsultaSql & "DomicilioParticular, "
    ConsultaSql = ConsultaSql & "TelefonoParticular, "
    ConsultaSql = ConsultaSql & "Celular, "
    ConsultaSql = ConsultaSql & "EMail, "
    ConsultaSql = ConsultaSql & "Profesion "
    ConsultaSql = ConsultaSql & ")values ("
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(1).Text) & ", " 'Apellido
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(2).Text) & ", " 'Nombre
    ConsultaSql = ConsultaSql & SQLText(DTPFNac.Value) & ", "   'FechaNacimiento
    ConsultaSql = ConsultaSql & SQLText(cmbTipoDoc.Text) & ", "  'TipoDocumento
    ConsultaSql = ConsultaSql & Val(txtVoluntario(3).Text) & ", " 'NumeroDocumento
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(4).Text) & ", " 'Domicilio
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(5).Text) & ", " 'Teléfono particular
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(6).Text) & ", " 'Celular
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(7).Text) & ", " 'E-mail
    ConsultaSql = ConsultaSql & SQLText(txtVoluntario(8).Text) & ");" 'Profesión
    'ConsultaSql = ConsultaSql & SQLText(cmbTipoContribucion.Text) & ");"  'Tipo Contribución
    Base.Execute (ConsultaSql)
    MsgBox "Cómo desea ingresar a este Voluntario", vbInformation
    Base.Close
'***** Código para extraer el último ID ingresado
    Set Base = New ADODB.Connection
    AbrirBase
    Set rsVol = New ADODB.Recordset
    rsVol.Open UtlRegistro, Base
    txtVoluntario(0).Text = rsVol!ultID 'Text donde quier mostrar el último ID
'**************************** fin Código para extraer el último ID.
If Not IsNull(rsVol!ultID) <> False Then
    txtVoluntario(0).Text = rsVol!ultID
 Else
    MsgBox "No Hay Ningun Voluntario Cargado", vbInformation, "Control de Voluntarios"
End If
    rsVol.Close
Set rsVol = Nothing
     cmdGuardar.Enabled = False
End Sub
Bueno amigo.

1 respuesta

Respuesta
-1
UtlRegistro = ("SELECT MAX(NumVoluntario) as ultID FROM Voluntarios WHERE NumVoluntario = '" & NumVoluntario & "'")
¿xq el where? No hay nada que filtrar, entiendo
Si el ID y clave principal es autonumérica, nunca dará null, así que has de ver que el error no se gestiona por ese lado.
Si es clave principal no puede permitir nulos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas