El formulario no muestra la consulta

Tengo una base de datos con una tabla principal, tbinventario, que se alimenta de varias tablas auxiliares. Tbinventario está compuesta por algunos campos propios y las id de las tablas auxiliares. Tbinventario se rellena desde un formulario que sólo permite agregar registros nuevos. He creado una consulta tbinvEnriquecido que recoge los txt de las tablas auxiliares y los campos propios de tbinventario. Ahora necesito crear un formulario que permita modificar el campo fechabaja de unregistro que elija desde un txt y no lo consigo. Lo he intentado generando una consulta, tanto desde la tabla tbinventario como desde la consulta tbinvEnriquecido y nada, la consulta cuando la ejecuto funciona pero el formulario bajas no muestra ningún registro

1 Respuesta

Respuesta
2

No dices donde está ese campo fecha baja, si en una tabla u otra. Pero si, como me ha parecido entender, quieres que desde un cuadro de texto te actualice el campo fechabaja, puedes, por ejemplo poner en su evento después de actualizar

docmd.runsql"update nombre de tabla set fechabaja=#" & me.nombrecuadro de texto & "# where y aquí iría el criterio para diferenciar un registro de otro"

o sino

Docmd.runsql" insert into tabla (fechabaja)values(#" & me.nombrecuadro & "#) y el mismo criterio de arriba"

Pero como te digo todo depende de como tengas construidos los formularios. Si pudieras concretar algo más, sería mejor.

Hola, muchas gracias. El campo fechabaja aparece tanto en la tabla tbinventario como en la consulta invEnriquecido. He deshecho todo y he vuelto a empezar de nuevo. Ahora lo que tengo es un formulario que se basa en una consulta "cbaja" que he realizado sobre la consulta invEnriquecido y que sólo muestra ciertos campos que necesito para identificar el artículo que voy a dar de baja, le llamaremos datos del bloque 1 y son Bloque 1:

(NInventario -que es un campo número y clave-; fechaalta ;articulo; marcas; modelo; nSerie; nSistema; codCECO; codServicio: codCentro, cod,Planta,y codZona) y a continuación los campos que quiero actualizar al generar la baja desde el nuevo que integrarían el bloque 2 y son:

Bloque 2:

frmBajaActivos (fechabaja;, cod_tipo_baja; paradonacion -que es de tipo bolean-; destinatarioDonacion y ObservacionesBaja).

He creado un combobox que busca el nInventario en la consulta invEnriquecido (y funciona) y tengo una etiqueta "avisoBaja" que sólo quiero que se muestre cuando el artículo que se selecciona desde el combobox ya está de baja (es decir, tiene datos en los campos fechabaja y, cod_tipo_baja (del bloque 2)  ya que ambos campos son de obligada cumplimentación) y eso no lo consigo, no se muestra nunca.

Por otra parte quiero que cuando se carga el formulario(frmBajaActivos) basado en la consulta (invEnriquecido)  con los datos del nInventario seleccionado, los campos informativos del bloque 1 siempre estén bloqueados y no se puedan modificar y los del bloque 2, sólo esten  habilitados si el artículo aún no está de baja (o sea, no tiene datos en los campos fechabaja y, cod_tipo_baja)  , pero si el nInventario sí está de baja, permitir agregar información solo en el campo observacionesBaja y eso tampoco lo consigo. El formulario carga bien, no muestra nunca la etiqueta y siempre me aparecen todos los campos bloqueados.

No sé si está vez me he explicado bien. Te copio el  código que de momento tengo:

Private Sub buscaNInventario_AfterUpdate()
Dim rs As Object

Set rs = Me.Recordset.Clone
rs.FindFirst "[NInventario] = " & Str(Nz(Me![buscaNInventario], 0))
If Not rs.EOF Then
Me.Bookmark = rs.Bookmark
End If
End Sub

Private Sub buscaNInventario_Change()

If Not IsNull(FechaBaja) Then
avisoBaja.Visible = True
FechaBaja.Enabled = False
cod_tipo_baja.Enabled = False
DestinatarioDonacion.Enabled = False
ObservacionesBaja.Enabled = False
Else
avisoBaja.Visible = False
FechaBaja.Enabled = True
cod_tipo_baja.Enabled = True
DestinatarioDonacion.Enabled = True
ObservacionesBaja.Enabled = True

End If


End Sub

Private Sub Cancelar_Click()
On Error GoTo errorcancelar:
DoCmd.RunCommand acCmdUndo

errorcancelar:
If Err.Number = 2046 Then
MsgBox ("Registro cancelado")
End If
Exit Sub

End Sub

Private Sub Form_Current()
Form_Load
End Sub

Private Sub Form_Load()
avisoBaja.Visible = False
Dim Campos As Object
For Each Campos In Me.Controls
If TypeOf Campos Is TextBox Or TypeOf Campos Is ComboBox Then
Campos.Locked = True
End If
Next Campos
[buscaNInventario].Locked = False 'Cuadro Comb. que NO debe bloquearse
End Sub

Private Sub Guardar_Click()

DoCmd.RunCommand acCmdSaveRecord
MsgBox ("BAJA REGISTRADA"), vbInformation

End Sub

Private Sub SALIR_Click()

On Error GoTo salir
DoCmd.Close acForm, "FrmBajaActivos"
DoCmd.OpenForm "menu_BAJAS"
salir:
If Err.Number = 2046 Then
Dim msg As String
msg = "Error #" & Err.Number & Chr(13) & Error

MsgBox ("No se guardará ningún cambio")
End If
Err.Clear


End Sub

No lo consigo. Podrías ayudarme?

Te respondo desde el teléfono móvil ya que desde el lunes a primera hora de la mañana estoy de viaje y no regreso hasta el viernes por la tarde. Si puedes esperar, el viernes por la noche te respondo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas