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.
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
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 de jftamames
-1