SOBRE SU BASE DE DATOS. Perfecto funciona.
Al abrir la base de datos enviada, emerge una ventana de información:
" En la base de datos o proyecto de Microsof Access falta una referencia al archivo "MSOUTL.OLB" versión 9.3. o la referencia es errónea.
* Para asegurarse de que la base de datos o el proyecto funcionan correctamente, debe corregir arreglar la referencia
Botón Mostrar Ayuda>> y botón aceptar
Presionamos aceptar y se repite la misma información.
item
y así un monton de veces.
Al fin se habre con el acompañamiento de una serie de ventanas fugaces que no es posible contar.
Una vez que se habilita el contenido
Nos posicionamos en el FCompras para ver el procedimiento. Al pinchar en los tres puntos vuelve a aparecer la misma advertencia de que falta el archivo "MSOUTL.OLB" versión 9.3. o la referencia es errónea.
Pinchas aceptando y en la ventana que se abre, el código se ve. A primera vista parece ser el mismo que se envió en la primera respuesta. Pero comparándolos encuentro una diferencia
If Nz(Me.CodPedido, -1) = -1 Then Me.CodPedido = Nz(DMax("[CodPedido]", "TCompras"),0) + 1
Private Sub Form_Current()
If Nz(Me.CodPedido, -1) = -1 Then Me.CodPedido = DMax("[CodPedido]", "TCompras") + 1
End Sub
En la base de datos mandada funciona correctamente, tal como está construida.
Pongo el código en el formulario Compras de mi base dedatos.
If Nz(Me.CodPedido, -1) = -1 Then Me.CodPedido = DMax("[CodPedido]", "Compras") + 1
Para probarla busco el Formulario GESTION DE COMPRAS. Pincho par abrirlo y me anticipa esta advertencia:
"La expresión "Al activar registro" que ha especificado como valor de la propiedad de evento produjo el error El procedimiento externo no es válido.
* La expresión no da como resultado el nombre de una macro, de una función definida por el usuario o [Procedimiento de evento].
* Hubo un error al evaluar la función, evento o macro.
Y la ayuda dice:
Este error se produce cuando un evento no se ha podido ejecutar debido a que no se puede evaluar la ubicación de la lógica del evento. Por ejemplo, si la propiedad OnOpen de un formulario se establece en =[Campo], este error se produce porque se espera que se ejecute un nombre de evento o macro al producirse el evento.
Diferencias entre su formulario y el mio.
En mi base de datos:
El formulario Principal Provedores Tiene un cuadro combinado que selecciona un proveedor y rellena los datos completos en todos sus campos del formulario o podemos habilitar uno nuevo.
Al estar vinculado de uno a varios con el subformulario Compras, también en éste, rellena los campos combinados de éste: nombre de proveedor y otro campo más...
Cualquier variación que se haga en el campo principal de Proveedores repercute en el subformulario.
En su base de datos:
El formulario Proveedores es estatico, invariable con una sola entrada. No se rrelena ni se actualiza.
El subformulario TCompras es quien parece tener la batuta. Seleccionas el cuadro de lista colocado en el campo y actualiza, cierto.
En el suyo funciona el codigo en el subformulario. Parece ser que aún no se habria rrelenado con la selección de la lista.
En el mio no funciona el código. Encuentro el numero de pedido en blanco pero el nombre proveedor relleno por efecto de la combinación de campos en ambos formularios. Todos los registros que se puedan ir poniendo sale en blanco el número de pedido... con la consabida cantinela de error en cada una de las entradas.
¿Qué debería hacer?