UPDATE campo sin valor

Dudas sobre código
Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

UPDATE campo sin valor

Mensajepor leadrudi » Sab Oct 26, 2019 5:08 am

Buenas noches:
Una preguntonta, si se puede llamar así:
Hay un campo que puede tener o no una fecha y podría haberla tenido y después perderla.
Así que sincronizo con:

Código: Seleccionar todo

.RunSQL "UPDATE [tabUsuarios] SET [tabUsuarios].[BAJA] = #" & Me.txtFecha.Value & "# WHERE [tabUsuarios].[USUARIO] = '" & Me.txtPUsuario.Value & "';"

Ahora, como el campo podría estar vacío, me arroja error. Entonces puse:

Código: Seleccionar todo

If Not Nz(Me.txtFecha.Value, "•") = "•" Then

El problema con esto es que si el campo deja de tener fecha, no se actualiza el valor quedando con el dato ingresado. Entonces, ¿cómo puedo hacer para "quitar" el valor si el campo está en blanco?
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

pitxiku
VIP
Reto02
Mensajes: 363
Registrado: Sab Sep 30, 2017 6:23 pm

Re: UPDATE campo sin valor

Mensajepor pitxiku » Sab Oct 26, 2019 4:43 pm

Sin entender bien la pregunta:

Código: Seleccionar todo

'Si no hay nada en el control txtFecha, insertamos la fecha de hoy
.RunSQL "UPDATE [tabUsuarios] SET [tabUsuarios].[BAJA] = #" & Nz(Me.txtFecha, Date()) & "# WHERE [tabUsuarios].[USUARIO] = '" & Me.txtPUsuario & "';"

'Si hay una fecha, guardamos. Si no hay, avisamos:
If IsDate(Me.txtFecha) Then
    .RunSQL "UPDATE [tabUsuarios] ...
Else
    MsgBox("Quiero una fecha")
End If

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: UPDATE campo sin valor

Mensajepor leadrudi » Sab Oct 26, 2019 7:24 pm

Es una fecha de baja, por lo que el campo podría ir vacío (por eso funciona con el IF si no está en blanco, o sea, fue dado de baja).
Pero cabe la posibilidad que se anule esa baja por lo que la fecha debe ser eliminada y el campo quedar nuevamente sin valor.
Y ahí el IF no permite que el campo se limpie en la tabla porque solo actualiza cuando el campo NO tiene fecha.
Aclaro que la tabla no está asociada al formulario sino que guardo los cambios con el UPDATE.
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:

pitxiku
VIP
Reto02
Mensajes: 363
Registrado: Sab Sep 30, 2017 6:23 pm

Re: UPDATE campo sin valor

Mensajepor pitxiku » Sab Oct 26, 2019 8:15 pm

Si el campo admite valores nulos, puedes guardar eso mismo:

Código: Seleccionar todo

If IsDate(Me.txtFecha) Then
    .RunSQL "UPDATE [tabUsuarios] SET [tabUsuarios].[BAJA] = #" & Me.txtFecha & "# WHERE [tabUsuarios].[USUARIO] = '" & Me.txtPUsuario & "';"
Else
    .RunSQL "UPDATE [tabUsuarios] SET [tabUsuarios].[BAJA] = NULL WHERE [tabUsuarios].[USUARIO] = '" & Me.txtPUsuario & "';"
Ene If

Avatar de Usuario
leadrudi
Nivel 4
Mensajes: 127
Registrado: Sab Oct 14, 2017 7:55 am

Re: UPDATE campo sin valor

Mensajepor leadrudi » Sab Oct 26, 2019 9:11 pm

¡GENIAL!
Tuve que hacer un par de correcciones a la configuración del campo en la tabla pero por fin funcionó.
+1 Cosa aprendida :D
¡MUCHAS GRACIAS!
:?: :!: :idea: :arrow: :oops: :( :o :) :D :geek: :ugeek:


Volver a “Código VBA”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 4 invitados