Access - Problemas con Sentencia SQL

 
Vista:

Problemas con Sentencia SQL

Publicado por elio (169 intervenciones) el 13/01/2008 18:31:33
hola a todos

tengo esta sentencia SQL y me esta dando un error

" No existe registro Activo "

Set borr = CurrentDb.OpenRecordset("Select CAMPO1 From NOMBRE_TABLA Where CAMPO2 Like '" & Me.Cuadro_combinado65.Value & "'")
If IsNull(borr!CAMPO1) Then
DoCmd.RunSQL "Delete * FROM NOMBRE_TABLA WHERE CAMPO2 Like '" & Me.Cuadro_combinado65.Value & "'"

End If

tengo declarado el recordset

Private borr as DAO.Recordset

y tengo marcado tambien la biblioteca DAO, la tengo en el tercer nivel de prioridad

EL combox es independiente no pertence a la tabla, toma datos de otra tabla

CAMPO1 es un campo fecha, y tanto CAMPO2 como el Combox son texto.

alguien me puede decir que esta mal, un saludo y muchas gracias
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:Problemas con Sentencia SQL

Publicado por Victoria (1530 intervenciones) el 13/01/2008 21:37:25
Hola:

Tu código es perfecto, salvo que no cargas el recordset:

borr.movelast
borr.movefirst

Tal vez te de error por eso, a mi no, pero, le encuentro un defecto y es que seleccionas TODOS los registros que tengan el mismo valor en el cuadro combinado.

Yo lo haría de esta forma:

Set borr = CurrentDb.OpenRecordset("SELECT * FROM tabla3 WHERE FECHA1 Is Null AND nombre='" & Me.Cuadro_combinado65 & "'")
If borr.RecordCount > 0 Then
borr.Delete
End If

De esta forma obtines los registros que tienen valor nulo en el campo fecha y el campo igual al cuadro combinado.

Un saludo
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:Problemas con Sentencia SQL

Publicado por elio (169 intervenciones) el 13/01/2008 23:45:08
gracias victoria

como te habras dado cuenta lo que intento hacer con ese codigo es evitar que se grabe los registros en blanco cuando se salga del formulario, o aunque el usuario teclee algun dato y deje algun campo vacio, no grabe , es verdad que se puede hacer de varias formas, como no comprendia porque me daba ese fallo lo intente de esta forma.

Private Sub Salir_Click()
If Me.Cuadro_combinado35.Value <> "" Then
If (Me.TOTAL.Value = 0) Or IsNull(Me.Fecha.Value) Then
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
DoCmd.Close: Exit Sub
End If
End If
DoCmd.Close


End Sub

un poco cutre quizas, pero funciona, intentare hacerlo de la forma que me dices y ya te dare respuesta, muchas gracias por tu atencion, un saludo.
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:Problemas con Sentencia SQL

Publicado por Victoria (1530 intervenciones) el 14/01/2008 12:02:47
Hola:

No es nada cutre lo que has puesto, es perfecto.

El código anterior que ponías, y que yo te escribí, lo que hace es BORRAR el registro si el campo es nulo, y, por lo que dices ahora, pretendes que NO se grabe si se da esa circunstancia

Pero, a mi forma de ver, existe una forma mejor de controlarlo, y es que compruebes si se ha cumplimentado el campo(s) cuando el SIGUIENTE control reciba el foco.

Si es nulo o blanco el control anterior, envia el foco a ese control anterior para que sea rellenado

Un saludo
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