Duda access 2003 =)

Hola, no se si te acuerdes de mi, pero ase poco me ayudaste muchísimo =)
Resulta que me surgió un pquqeño problema.
Tengo una tabla deptos: numero (numero), tipo (texto)
Para ingresar los datos tengo el siguiente código
Private Sub cmdingresar_Click()
Dim sql As String
Dim db As Database
Dim rs As Recordset
Set db = CurrentDb()
Set rs = db.OpenRecordset("select * from depto where numero=" & Form!txtnum.Value & "")
MsgBox (rs!numero)
If IsNull(Form!txtnum.Value) = True Or IsNull(Form!txttipo.Value) = True Then
MsgBox ("Debe ingresar todos los campos con *")
GoSub fin
Else
If rs.EOF = True Then
sql = "insert into depto(numero,tipo) values(" & Form!txtnum.Value & ",'" & Form!txttipo.Value & "')"
DoCmd.RunSQL sql
Else
MsgBox ("El registro ya existe, Si desea cambiar su valor debe actualizar el dato")
GoSub fin
End If
End If
fin:
End Sub
en el codigo reviso (gracias a tus enseñanzas =)):
Si los campos son nulos
Si ya existe en la tabla
Nota: los gosub los puse por que después are algo con el control de usuario, es por eso que están allí
Resulta que en esta linea me dice que:
Set rs = db.OpenRecordset("select * from depto where numero=" & Form!txtnum.Value & "")
Error de sintaxis, (falta de operador ) en al expresión de la consulta 'numero ='
Numero del error: 3075
Pero no entiendo por que ya que al ser un numero debería ser igualado así: " & form!txtnum.value & "
y me alega por eso =(
un abrazo grande =), saludos
Respuesta
1
Hombre... soy bastante despistada pero... hace un momento que estábamos con el EOF, por tanto claro que me acuerdo.
Cuando da el erro 3075 es que el parámetro que mandamos no es válido, o bien porque no coincide el tipo de campo o porque mandamos un valor nulo. Lo que no entiendo es para que quieres el recordset si lo que haces es comprobar si txtNum, es decir el cuadro de texto está o no vacío. Si lo que quieres es comprobar si el registro existe o no en la tabla tendrás que poner el recordset después del If, es decir después de comprobar si el contenido del cuadro de texto esta lleno.
Me cuentas.
wooo  brillante como siempre =), tenias toda la razon. Que tonto fui.
Mucha gracias nuevamente por tu tiempo :D
un abrazo grande a mi experta favorita =).
Me alegro de que lo hayas solucionado, ahora por favor, cierra la pregunta. Es que se me acumulan...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas