Access - Duda absurda URGE

 
Vista:

Duda absurda URGE

Publicado por juanky (13 intervenciones) el 19/08/2002 12:56:50
Tengo un problema, aunque es más un despiste.

Tengo un formulario para introducir datos. El primer dato es un campo indexado y no duplicado.

Al introducir el dato, necesito que me indique si ya existe o no.
En la actualidad me deja rellenar todos los datos, pero al validar, me indica que no puede ser dado que ya existe ese dato.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda absurda URGE (Aclaraciones)

Publicado por juanky (13 intervenciones) el 19/08/2002 13:30:26
La tabla se llama PETICIONES. Tiene un campo clave autonumérico, y un campo llamado PETICION.

Este campo (PETICION) es el que introduzco y me debe indicar si existe. Si existe, me debe dar los datos, y si no existe, me debe dejar introducir datos.

Saludos y gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda absurda URGE (Aclaraciones)

Publicado por Luis Fernando Melo (323 intervenciones) el 19/08/2002 14:42:14
Hola
Para hacer lo que quieres es necesario que en el evento before_update del campo PETICION, añadas un codigo que te permite buscar si ese registros existe. Te doy un ejemplo sencillo
private sub CAMPOTXT_PETICION_beforeUpdate(Cancel as boolean)
dim sql as string
dim R as recordset
'Si el campo es numerico. Para cadena de caracteres debes
'colocarlo entre comillas simples
sql="SELECT PETICION FROM PETICIONES WHERE PETICION=" & CAMPOTXT_PETICION
'CAMPOTXT_PETICION es el control TEXTBOX del formulario

set R = dbengine(0)(0).openrecordset(sql,dbopensnapshot)
if not(R.bof and R.eof) then
'El regitro exsiste
Cancel=true 'Cancela la actualizacion del campo y
'obliga al usuario a cambiarlo
else
'El regitro no existe
end if

end sub

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda absurda URGE (Aclaraciones)

Publicado por Victoria (1530 intervenciones) el 19/08/2002 14:54:42
Hola
Existe otra posibilidad en la misma direccion:
dim sql as string
dim R as recordset
sql="SELECT PETICION FROM PETICIONES WHERE PETICION=' " & Me!CAMPOTXT & " ' "
(doy por supuesto que si es campo texto)
Me: es el formulario activo
set R=Currentdb.openrecordset(sql)
If R.RecordCount > 0 ' existe el campo con ese valor
Me.Undo
end if
Victoria
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda absurda URGE (Aclaraciones)

Publicado por juanky (13 intervenciones) el 19/08/2002 16:38:57
Al introducir tu instrucción en Afterupdate, me dice que después del IF falta un then o goto.

Perdona mi ignorancia.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda absurda URGE (Aclaraciones)

Publicado por Luis Fdo Melo (323 intervenciones) el 21/08/2002 06:05:03
Victoria Tu intención es buena, pero el código tienes algunas falencias que te explicaré.
1. Si como resultado de la consulta, no hay registros, la llamada a la propiedad RecordCount, te genera automaticamente un error.
2. Un pequeño error que hace que no funcione tu código, te faltó el THEN:
If R.RecordCount > 0 THEN ' existe el campo con ese valor
Me.Undo
end if
3. Para que la propiedad recordCount tenga el valor adecuado, hay que moverse al utimo registro.
R.MoveLast
'Ahora si funciona adecuadamente el RecordCount
R.movefirst

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda absurda URGE (Aclaraciones)

Publicado por juanky (13 intervenciones) el 19/08/2002 16:41:40
Gracias por el interés, pero no me chuta.

Me dices que CAMPOTXT_PETICION es el control TEXTBOX del formulario. No tengo un campo que actualice la base, sino que trabajo sobre la base directamente siendo el campo PETICION.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar