Access almacen repuestos

Me han pedido un nuevo access para controlar el tema de inventario y consumos de un almacén. Me han surgido una serie de dudas, que te planteo a continuación:
Como buscar por referencia (exacto) o por descripción (contiene...) la ubicación donde se encuentra en modo formulario es decir 2 cuadros de texto (que se rellene uno de los dos, si se rellenan los dos prioridad el de referencia) y que al darle al botón buscar_ubicacion en un label u otro cuadro de texto te aparezca la ubicación que hay guardada en la tabla. Sé que se puede hacer con el botón buscar registro, pero por si hay alguna forma de hacerlo "más bonito" sin que te salga una ventana de búsqueda ni nada parecido.
Como poner un formulario para que me marque el consumo de pieza. Quiero que el operario indique la referencia y la cantidad a consumir y al darle a un botón, éste descuente la cantidad consumida al campo cantidad de la Tabla_Inventario.
Formulario para crear nuevas referencias. Como puedo hacer para que según un tipo de pieza (eléctrico, mecánico, hidráulico, etc.) me codifique la nueva pieza, es decir que mire el ultimo numero de dicho tipo y me incremente uno para la nueva referencia. Las referencias son del tipo RMF0100001 donde RMF es fijo para todos, 01 indica el tipo de pieza si es eléctrico, mecánico o hidráulico y 00001 indica el numero de pieza de cada tipo.
En la Tabla_Ubicaciones tengo un campo llamado Disponible del tipo Si/No y quería saber como al poner una referencia en dicha ubicación puedo cambiar ese campo. Para evitar que campos ocupados me aparezcan como disponibles y otros que están disponibles me aparezcan ocupados.
Espero que no sea mucha molestia y comprendas lo que te quiero transmitir en cada una de estas dudas.

1 Respuesta

Respuesta
1
Vamos por partes, lo primero es crear la tabla para llevar el inventario. La llamaremos, por ejemplo, Inventario tendrá unos campos Referencia, Entrada, Salida y Stock, el campo referencia seria de texto y los demás numéricos. Si la referencia va a tener su base en un tipo de pieza crearemos otra tabla TipoPieza con 2 campos CodTipo y Tipo ambos de texto para que quedase algo así:
CodTipo Tipo
01 Eléctrico
02 Mecánico
...
También tendríamos que tener una tabla Referencias con los campos Referencia y CodTipo
Si te parece bien el planteamiento, pasamos a crear el formulario para crear las referencias.
Me cuentas.
A ver te explico como lo tengo yo creado hasta el momento:
Tablas:
Tabla_Inventario con los campos Referencia, Denominacion, Ubicacion, Proveedor, Fabricante, Ref_Fabricante, Stock, Stock_Min, Coste_Ud y Fecha_Alta
++Esta tabla recoge toda la información del inventario actual de todos los almacenes y todas las ubicaciones. Quiero que al darle al formulario Consumo_Referencia me reste la cantidad determinada en un cuadro de texto a la que hay disponible buscandolo por Referencia o Ubicacion.
Tabla_Cod_Rep con los campos Cod_Repuesto (RMF01, RMF02...) y Tipo_Repuesto (Eléctrico,Mecánico...)
++ Esta tabla es para el seleccionable del formulario Nueva_Referencia
++ (para que me busque la última referencia de ese tipo y me ponga la
++ nueva como 1 mas...)
Tabla_Almacenes con los campos Cod_Almacen y Almacen
++ Esta tabla es para cuando cree una nueva referencia, le diré en cual
++ de los 5 almacenes quiero guardarlo y me busque una ubicación
++ disponible en dicho almacén según la Tabla_Ubicaciones
Tabla_Ubicaciones con los campos Ubicación (todas las ubicaciones disponibles de los almacenes), Almacen (para el filtrado según el almacen que deseemos, aunque las 5 primeras letras de las ubicaciones, ya indican el almacen - no se si se puede eliminar este campo) y Volumen (al crear una nueva pieza, el jefe de almacen le determinara un volumen y quiero que le busque de estas ubicaciones cual tiene el volumen de la pieza...) y Disponibilidad (donde quiero que se me marque si la ubicación está ocupada o no con un campo Si/No)
Tabla_Volumenes para el seleccionable de los volúmenes.
Formularios:
++Básicamente donde tengo mayor duda es en los siguientes puntos:
En el formulario Nueva_Referencia como buscar la referencia ultima para añadirlo al siguiente la nueva pieza (indicando según el tipo de repuesto) y como buscar una ubicación disponible filtrado según almacen y volumen de la pieza. Para estas dos búsquedas había pensado que al introducir todos los datos, pulsar un botón y que en 2 etiquetas me aparezcan los valores de ref y ubicación encontrados. Además que al darle al botón guardar me guarde todos los datos introducidos y obtenidos (ref y ubicación) en la tabla_Inventario y me cambie el campo Disponible (tabla_ubicaciones) de dicha ubicación a No.
++En el formulario Consumo_Recambio indicando la Referencia o Ubicacion con uno de los dos cuadros de texto e indicando la cantidad a consumir en otro... Al darle al botón este me modifique de dicho producto la cantidad marcada (es decir, me haga una resta del Stock actual-Cantidad_Retirada).
Espero que entiendas mi problemática y me puedas ayudar.
Si necesitas la BD o una mejor explicación no dudes en pedírmela.
Un saludo.
Lo primero es crear en nº de referencia.
Tendrás que poner un cuadro combinado para seleccionar los repuestos RMF01, RMF02... llamaremos a este cuadro selRepuesto, origen de la fila:
Select Cod_Repuesto from Tabla_Cod_Rep ordeer by Cod_Repuesto
en la acción al hacer clic --->
Me.refresh
dim db as database
dim rs as recordset
dim var1 as string
dim var2 as double
set db=currentdb
set rs=db.OpenRecordset("Select Max(Right([Referencia],5) as Mayor from Tabla_Inventario where Left([Referencia],5)='" & Form!selRepuesto.Value & "'")
'Es decir seleccionamos el valor máximo de los 5 caracteres de la derecha para  el repuesto elegido en el cuadro combinado.
var2=val(rs!Mayor)+1
var1=Form!selRepuesto.Value&String(5-Len(var2),"0")&var2
'La función string rellena con el caracter elegido (en nuestro caso el 0) las veces que le digamos (en nuestro caso 5-longitud(var2))
'Por último ponemos el valor en el cuadro de texto txtReferencia que abremos creado antes:
Form!txtReferencia.Valor=var1
Me. Refresh
Prueba esto y me cuentas.
El código que te mandé anteriormente no está bien, este es el correcto:
Private Sub selRepuesto_Click()
Me.Refresh
Dim db As Database
Dim rs As Recordset
Dim var1 As String
Dim var2 As Double
Set db = CurrentDb
Set rs = db.OpenRecordset("Select Max(Right([Referencia],5)) as Mayor from Tabla_Inventario where Left([Referencia],5)='" & Form!selRepuesto.Value & "'")
If IsNull(rs!Mayor) = False Then
var2 = Val(rs!Mayor) + 1
var1 = Form!selRepuesto.Value + String(5 - Len(Trim(var2)), "0") + Trim(Str(var2))
Me.txtReferencia.Value = var1
Else
var1 = Form!selRepuesto.Value + "00001"
Me.txtReferencia.Value = var1
End If
Me.Refresh
End Sub
El If lo he puesto porque si no existe ninguna referencia para ese repuesto en la tabla Inventario empiece por la 00001.
Me cuentas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas