Tengo una pequeña duda, tengo una base de datos en la cual tengo una tabla con los datos de los clientes, y en otra tengo los datos de las poblaciones, entonces mediante un cuadro combinado escogo la población de entre la lista que me sale, hasta aquí bien, pero usando este método he de tener siempre insertado el nombre de la población en la tabla de poblaciones antes de rellenar la tabla clientes, entonces, ¿existe alguna manera de al ir rellenando la tabla clientes, desde un formulario por ejemplo, se puedan insertar nuevos campos en la tabla población? Conservando el cuadro combinado, claro.
Puedes ver el siguiente ejemplo usando neptuno.mdb y el evento Al no estar en la lista: 1.- Abre el formulario Pedidos en vista diseño, observa que la propiedad del cuadro combinado IdCliente Limitar a la lista esta establecida a Si. 2.- Ajusta ahora el evento Al no estar en la lista así: Private Sub IdCliente_NotInList(NewData As String, Response As Integer) Dim Db As Database Dim Rs As Recordset Dim Msg As String Dim CR As String CR = Chr$(13) 'Salir esta subroutine si el combo box was cleared. If NewData = "" Then Exit Sub ' Confirmar si el usuario quiere añadir el nuevo registro del cliente. Msg = "'" & NewData & "' is not in the list." & CR & CR Msg = Msg & "Do you want to add it?" If MsgBox(Msg, vbQuestion + vbYesNo) = vbNo Then 'Si el usuario elige no añadir al cliente, set the Response ' argument to suppress an error message y deshacer cambios. Response = acDataErrContinue ' Display a customized message. MsgBox "Please try again." Else ' Si el usuario elige añadir al cliente, abrir el recordset ' usando la tabla Clientes. Set Db = CurrentDb Set Rs = Db.OpenRecordset("Clientes", DB_OPEN_TABLE) ' Let code execution continue if a run-time error occurs. On Error Resume Next ' Create a new record. Rs.AddNew ' Ask the user to input a new Customer ID. Msg = "Please enter a unique 5-character Customer ID." Rs![IDCliente] = InputBox(Msg) ' Assign the NewData argument to the CompanyName field. Rs![NombreCompañía] = NewData ' Save the record. Rs.Update If Err Then ' If a run-time error occurred while attempting to add a new ' record, set the Response argument to suppress an error ' message and undo changes. Response = acDataErrContinue ' Display a customized message. MsgBox Error$ & CR & CR & "Please try again.", vbExclamation Else ' If a run-time error did not occur, set Response argument ' to indicate that new data is being added. Response = acDataErrAdded End If End If End Sub 3.- Pasa a vista formulario y escribe un nuevo cliente en el cuadro combinado para ver el resultado. NOTA: es posible que tengas que ajustar algo sobre este código.