Access - Búsqueda recambio base de datos access

 
Vista:
sin imagen de perfil

Búsqueda recambio base de datos access

Publicado por Jose Manuel (2 intervenciones) el 10/11/2016 17:45:32
Buenas tardes, les escribo porque soy principiante en esto del access y estoy programando una base de datos ya creada posteriormente por otra persona.
Como he programado en C++ hay muchas cosas que me suenan, pero hay algo que no consigo poder llevar a cabo.
La base de datos es de un almacén de recambios, la tabla de recambios es de este tipo:

1

Como podéis ver, el código de almacén es una máscara del tipo 0\ 0\ 00\ 0000
El primer dígito tiene 4 opciones:
0 Recambio mecánico
1 Recambio eléctrico
2 Recambio neumático
3 Recambio hidráulico

El segundo dígito tiene varias opciones:
En los primeros dígitos 0 y 1 tiene 5 opciones:
0 Recambio general
1 Recambio Específico L8
2 Recambio Específico L6
3 Recambio Específico LX
4 Recambio Específico LY

Para los primeros dígitos 2 y 3 sólo tiene una opción:
0 Recambio general

Para los siguientes dos dígitos se define por categorías:
Por ejemplo, para una pieza mecánica (0) y considerada recambio general (0) tenemos que los siguientes dos dígitos pueden ser:
00 Tornillería
01 Rodamientos
02 Cojinetes
03 Ejes
.
.
.
Para una pieza, por ejemplo, eléctrica (1) y específica de la L6 (2) tenemos:
00 Clasificador
01 Prensa
02 Recortadora
03 Lavadora
.
.
.
Los últimos cuatro dígitos corresponde a una serie ordenada autonuméricamente de piezas de la misma categoría, como por ejemplo, para tornillería:
0001 Tuerca M2
0002 Arandela M2
0003 Tornillo Inox M2x20

Tengo ya una tabla para buscar recambios antigua, mi pregunta, (o ayuda en todo caso) sería poder implementar la búsqueda de recambios por fases sabiendo la codificación que tienen los artículos explicada anteriormente, del tipo:
Indique tipo de recambio (Aquí pondría mecánico (0), eléctrico (1), neumático (2), hidraúlico (3))
Indique si es general o específico (0 General, 1 específico L8, 2 Específico L6...)
Indique categoría (00 Tornillería, 01 Rodamientos...)
Indique su descripción (0001 Arandela M2, 0002 Tuerca M2)

¿Cómo lo podría hacer? ¿Probablemente tenga que crear una tabla temporal nueva que asocie los dígitos?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 29
Ha aumentado su posición en 4 puestos en Access (en relación al último mes)
Gráfica de Access

Búsqueda recambio base de datos access

Publicado por Luis (24 intervenciones) el 11/11/2016 16:47:08
podrias enviar la tabla? creo que ayudaría mucho, por lo demás podrías usar combobox anidados
Ejemplo:
En el primer combobox asigo estto como Origen de Fila ...
1
"SELECT DISTINCT tblPrestaciones.subGenero FROM tblPrestaciones ORDER BY tblPrestaciones.subGenero;"
y en eleventoDespues de actualizar le pongo este codigo:
1
2
3
Private Sub cmbFamiliaPresta_AfterUpdate()
DoCmd.RunCommand acCmdRefreshPage
End Sub

En el primer combobox asigo estto como Origen de Fila ...
1
2
3
4
"SELECT tblPrestaciones.nomPrestacion, tblPrestaciones.subGenero, tblPrestaciones.id
FROM tblPrestaciones
WHERE (((tblPrestaciones.subGenero)=[Formularios]![FormuNavegación]![SubformularioDeNavegación].[Formulario]![cmbFamiliaPresta]))
ORDER BY tblPrestaciones.nomPrestacion;

"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Búsqueda recambio base de datos access

Publicado por Jose Manuel (2 intervenciones) el 21/11/2016 17:07:35
Hola!
Gracias por la respuesta, a ver...creo que lo que te comenté más arriba es muy complicado de hacer, así que le he estado dando vueltas y me interesa que sea más simple, combobox anidados y que estén relacionados entre ellos:

Sin-titulo1

Sin-titulo2

Vuelvo a adjuntar dos imágenes, la primera es del formulario que utilizo(Busqueda_Recambio)
La segunda es de la tabla que quiero utilizar.
Lo que me interesa es que para una descripción elegida del cuadro combinado Tipo Recambio haya otro cuadro combinado (En este caso he añadido uno a la derecha) que me permita elegir los tipos de categorías distintos para la descripción elegida, por ejemplo, para la elección del tipo rodamientos, me aparezca en categorías las opciones de Radial a una hilera de bolas o cónicos, y elegida una de ellas que en la tabla_lista que hay abajo me aparezcan los rodamientos de una hilera de bolas o cónicos que hay . La base de datos utiliza VS así que necesito programarlo, y no sé cómo hacerlo.
Añado la formulación utilizada:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
Private Sub Bt_cerrar_Click()
DoCmd.Close
End Sub
 
 
Private Sub Eti_Tipo_recambio_Change()
 
Dim C As DAO.Recordset
Dim D As DAO.Recordset
Dim E As DAO.Recordset
Dim SQL As String
Dim X, Y, Z As Variant
 
    SQL = " SELECT * "
    SQL = SQL & "FROM (Datos_recambios)"
    SQL = SQL & "WHERE (Descripción)= '" & Me.Eti_Tipo_recambio.Value & "'"
 
 
    Set C = CurrentDb.OpenRecordset(SQL)
        If C.RecordCount > 0 Then
            Me.Eti_categoria.Value = C.Fields("Categoría")
        End If
    C.Close
 
 
 
'====================================================================================
'Effacer la table temporaire de recherche des categories
'====================================================================================
 
    Set D = CurrentDb.OpenRecordset("TMP_buscar_recambios_1")
        While Not D.EOF
            D.Delete
        D.MoveNext
        Wend
    D.Close
 
    SQL = " SELECT * "
    SQL = SQL & "FROM (Datos_recambios)"
    SQL = SQL & "WHERE (Categoría)= '" & Me.Eti_categoria.Value & "'"
    SQL = SQL & "AND (Descripción)= '" & Me.Eti_Tipo_recambio.Value & "'"
 
    Set C = CurrentDb.OpenRecordset(SQL)
        If C.RecordCount > 0 Then
            Set D = CurrentDb.OpenRecordset("TMP_buscar_recambios_1")
                While Not C.EOF
                    D.AddNew
                        D.Fields("Descripción") = C.Fields("Descripción")
                        D.Fields("Código_almacén") = C.Fields("Código_almacén")
                        D.Fields("Características") = C.Fields("Características")
                        D.Fields("Ubicación") = C.Fields("Ubicación")
                        D.Fields("Stock") = C.Fields("Stock")
                        D.Fields("Referencia_original") = C.Fields("Referencia_original")
                     D.Update
                C.MoveNext
                Wend
            D.Close
        End If
    C.Close
 
 
Me.Eti_lista.Requery
 
End Sub
 
Private Sub Form_Current()
 
Dim C As DAO.Recordset
Dim D As DAO.Recordset
Dim E As DAO.Recordset
Dim SQL As String
Dim X, Y, Z As Variant
 
 
    Set D = CurrentDb.OpenRecordset("TMP_buscar_recambios")
        While Not D.EOF
            D.Delete
        D.MoveNext
        Wend
    D.Close
 
    Set D = CurrentDb.OpenRecordset("TMP_buscar_recambios_1")
        While Not D.EOF
            D.Delete
        D.MoveNext
        Wend
    D.Close
 
Me.Eti_lista.Requery
 
    SQL = " SELECT * "
    SQL = SQL & "FROM (Datos_recambios)"
 
    Set C = CurrentDb.OpenRecordset(SQL)
        Set D = CurrentDb.OpenRecordset("TMP_buscar_recambios")
            While Not C.EOF
                D.AddNew
                    D.Fields("Descripción") = C.Fields("Descripción")
                D.Update
            C.MoveNext
            Wend
        D.Close
    C.Close
 
DoCmd.Maximize
End Sub

Adjunto también la parte de la base de datos en la que estoy interesado en mejorarla.
Espero que me podáis ayudar con esto.
Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar