Actualizar registro existente con código de expediente

Tengo esta tabla llamada Expedientes:

IdExpedientes - Autonumérico

Ayuntamiento - Tipo Texto

CodExpediente - Tipo Texto

En un formulario tengo un cuadro combinado donde aparecen una serie de ayuntamientos. Elijo el que desee y tengo desarrollada (gracias a los compañeros de todoexpertos) un pequeño código a través del cual genero automáticamente el código de expediente que tiene una secuencia EXP001/2021. El código que utilizo es el siguiente:

If Not IsNull(Me.cboayuntamiento) Or Me.cboayuntamiento <> "" Then
If MsgBox("¿Estás seguro que quieres crear el expediente?", vbQuestion + vbYesNo + vbDefaultButton2, "Alta de Nuevo Expediente de Subvenciones") = vbYes Then
CurrentDb.Execute "INSERT INTO Expedientes(CodExpediente,Ayuntamiento) VALUES('" & sgte_exp() & "','" & Me.cboayuntamiento.Column(1) & "','Si')"
If Err.Number = 0 Then
MsgBox "Expediente dado de alta con éxito", vbInformation, "Alta de Nuevo Expediente"
End If
End If
End If

El código para que no se repitan los códigos de expedientes es el siguiente:

Public Function sgte_exp() As String
  Dim db As DAO.Database
  Dim rs As DAO.Recordset
  Dim strSQL As String
  Set db = CurrentDb
  strSQL = "SELECT Last(Expedientes.CodExpediente) AS ultimo, Max(Val(Mid([CodExpediente],4,3))) AS cons FROM Expedientes;"
  Set rs = db.OpenRecordset(strSQL)
  If IsNull(rs!cons) Then
     sgte_exp = "EXP" & "001/2021"
  Else
    sgte_exp = "EXP" & Format(rs!cons + 1, "000") & "/2021"
  End If
rs.Close
db.Close
Set rs = Nothing
Set db = Nothing
End Function

Hasta aquí todo funciona de maravilla. Pero parto del hecho de que el sistema crea cada vez un nuevo registro en esa tabla de Expedientes, es decir, son registros nuevos. 

Lo que yo quiero y no soy capaz de programar es que imaginemos que en esa tabla de expedientes ya están los ayuntamientos en cuestión (15, 20 o los que sean) y lo único que quiero es que, en función del ayuntamiento que yo haya seleccionado en el cuadro combinado del que hablaba antes sólo se me actualice el campo de ese ayuntamiento relativo al Código de Expediente, pero no soy capaz.

Respuesta
1

No sé si te refieres a que si elijes, por ejemplo, Cartagena, y en la tabla ya existe al menos 1 registro con Cartagena y un CodExpediente, te ponga en el cuadro de texto Codexpediente del formulario ese valor.

Si es así, y suponiendo que la columna dependiente del combinado sea la de Ayuntamiento, basta con que en las propiedades del combinado, al que llamaremos también Ayuntamiento, en el evento Después de actualizar crees un procedimiento de evento y entre Private Sub... y End sub pongas

codexpediente=Dlookup("codexpediente","nombredelatabla","ayuntamiento='" & me.ayuntamiento & "'"

Es decir, ponme en el cuadro de texto CodExpediente el valor que figura en ese campo de la tabla en aquel registro en que Ayuntamiento sea igual al que acabo de elegir.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas