Estas en:
gratiszona
>>
trucos
>>
trucos access
trucos access: Añadir un nuevo elemento a un cuadro combinado cuyo origen de la fila es una tabla no actualizable
Muchas veces se crean tablas para las que no nos molestamos en hacer formularios de mantenimiento, como pueden ser tablas de paises o de codigos postales. Sin embargo, utilizamos estas tablas en cuadros combinados, con lo que existe la posibilidad de que el usuario quiera añadir un nuevo elemento a la lista. Mediante el siguiente procedimiento se añade un nuevo pais a la tabla de paises sin necesidad de abrir un formulario de altas. En la propiedad Al no estar en la lista del cuadro combinado insertar el siguiente codigo:
Sub id_pais_notinlist(newdata as string,response as integer)
dim mensaje as string,titulo as string,respuesta as integer
dim db as database,r as recordset,codigo as byte
mensaje = "El elemento no se encuentra en la lista. ¿Desea añadirlo?"
titulo = "Nuevo Pais"
respuesta = msgbox(mensaje,36,titulo)
if respuesta = 6 then 'Si se desea dar de alta el nuevo elemento
set db = currentdb()
set r = db.openrecordset(Tpais)
codigo = ult_idpais() + 1 'Funcion que obtiene el ultimo codigo de pais de la tabla
r.addnew
r![id_pais] = codigo
r![nombre] = newdata
r.update
r.close
origen = "Select id_pais,nombre From Tpais" 'Se actualiza el origen de la fila
me![id_pais].rowsource = origen
me![id_pais].requery
me![id_pais] = codigo 'Se asigna el nuevo codigo
else
me![id_pais] = null
docmd.gotocontrol "id_pais"
end if
response = data_errcontinue
End Sub
La funcion ult_idpais() podria ser de la siguiente forma:
Private Function ult_idpais() As Byte
Dim db As Database
Dim ssTmp As Recordset
Dim sSQL As String
Dim yCodigo As Byte
sSQL = "SELECT Max(id_pais) AS UltCodigo FROM Tpais"
Set db = currentdb()
Set ssTmp = db.OpenRecordset(sSQL, dbOpenSnapshot, dbForwardOnly)
yCodigo = ssTmp!UltCodigo
ssTmp.Close
Set ssTmp = Nothing
Set db = Nothing
Return yCodigo
End Function
Actualizado: 18/09/2008
Mejor Internet Explorer o
Si has encontrado esta web de tu agrado, ¡ diselo a tus amigos ! Nos ayudas a cubrir gastos si con un simple SMS te bajas a tu movil un logo, un tono o una melodia polifonica desde:
www.gratiszona.com/moviles
www.conmovil.com
·
·