VB fallo IF con Null error 94
Publicado por Lorien (15 intervenciones) el 27/04/2015 13:13:22
Hola buenas, estoy desarrollando una BBDD como parte de mis practicas del grado superior de redes; me he topado con una cosa muy graciosa y a la vez exhasperante.
DESCRIBO MI PROBLEMA:
1---> Salta un error de valores Nulos (error 94) en una consulta SQL si no se introducen datos en el campo del formulario
2---> Meto un bucle if para corregir el problema (hasta aqui todo muy bonito, no deberia fallar)
3---> El error sigue saltando aun estando el bucle if antes del mismo en la ejecucion del programa
AQUI EL CODIGO FUENTE
=====================
Si alguien se pregunta porque estoy convirtiendo a string el valor en mitad de la consulta SQl, le dire que es para evitar un bucle de errores en el cual me pedian las comillas (error 3075) y otro que me decia que las comillas sobraban porque es un valor numerico (3464)
INFO. ADICIONAL PARA CURIOSOS:
=============================
DESCRIBO MI PROBLEMA:
1---> Salta un error de valores Nulos (error 94) en una consulta SQL si no se introducen datos en el campo del formulario
2---> Meto un bucle if para corregir el problema (hasta aqui todo muy bonito, no deberia fallar)
3---> El error sigue saltando aun estando el bucle if antes del mismo en la ejecucion del programa
AQUI EL CODIGO FUENTE
=====================
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Private Sub comprobarhistoria_Click()
Dim sql As String
Dim rs As recordset
If [filtrohistoria].Value = Null Then
[filtrohistoria].Value = 0
MsgBox "Introduzca un numero de historia", vbOKOnly, "Comprobacion erronea"
Else
sql = "select historia from PACIENTE where historia = " & CStr([filtrohistoria].Value) & ""
Set rs = CurrentDb.OpenRecordset(sql)
If str_resultado(rs) = "ERROR" Then
MsgBox "Paciente nuevo, introduzca datos personales", vbOKOnly, "Paciente nuevo"
Else
sql = "select fecha_nacimiento from PACIENTE where historia = " & [filtrohistoria].Value
Set rs = CurrentDb.OpenRecordset(sql)
[nuevofechan].Value = str_resultado(rs)
sql = "select descripcion from SEXO where cod_sexo = (select cod_sexo from PACIENTE where historia = " & [filtrohistoria].Value & ")"
Set rs = CurrentDb.OpenRecordset(sql)
[nuevosexo].Value = str_resultado(rs)
End If
End If
End Sub
Si alguien se pregunta porque estoy convirtiendo a string el valor en mitad de la consulta SQl, le dire que es para evitar un bucle de errores en el cual me pedian las comillas (error 3075) y otro que me decia que las comillas sobraban porque es un valor numerico (3464)
INFO. ADICIONAL PARA CURIOSOS:
=============================
1
2
3
4
5
6
7
8
9
Function str_resultado(rs As recordset) As String
If rs.RecordCount <> 0 Then
str_resultado = CStr(rs.Fields(0))
Else
str_resultado = "ERROR"
End If
End Function
Valora esta pregunta


0