Access - Extraer columna de Cuadro Combinado con un recordset

 
Vista:
sin imagen de perfil
Val: 11
Ha disminuido su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer columna de Cuadro Combinado con un recordset

Publicado por Martín (8 intervenciones) el 29/03/2019 12:40:18
Ante todo, buenos dias.
Soy recién llegado a esta web y me gustaría encontrar ayuda con este tema:
Estoy recorriendo dos tablas distintas con dos recordset distintos, uno para cada tabla.
La cuestión es que , cuando ambos recordset encuentran los registros indicados, tengo que comparar dos campos, pero resulta que uno de ellos es un campo combo box de tres columnas y en el diseño de la tabla,Tipo de Datos, figura como número y columna dependiente 1 (Esta columna es numérica pues contiene el id de la tabla de búsqueda).
Ahí está el problema pues el otro campo a comparar es de tipo texto.
La pregunta es :¿¿ Hay alguna manera de extraer el contenido de la segunda columna del combo box, que es la que a mi me interesa, mediante código en el recordset.???
No puedo cambier el tipo de datos del campo combo box porque forma parte unas relaciones y tendria que rehacer toda la bbdd.

Les quedaré muy agradecido si me pueden echar una mano con este asunto.

Saludos.
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
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Extraer columna de Cuadro Combinado con un recordset

Publicado por Norberto (753 intervenciones) el 29/03/2019 14:05:32
Hola.

En realidad lo campos no son de tipo combo box sino de tipo numérico. Combo box es la forma de mostrar los datos. Si el origen de la fila del campo es Tabla/Consulta lo tienes fácil: haz un recordset que incluya la tabla principal y la secundaria y comparas el campo texto de la tabla secundaria con el campo texto de la segunda de tus tablas. No sé si me explico.

Si el origen de la fila es Lista de valores, me lo dices (pones la expresión completa) y te posteo la respuesta.

Un saludo,

Norberto.



Captura
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
Val: 11
Ha disminuido su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer columna de Cuadro Combinado con un recordset

Publicado por Martin (8 intervenciones) el 29/03/2019 14:32:32
Gracias por tu interés Norberto.
Esto es lo que estoy haciendo

(SensorMtto) es el campo "numérico" del combo box y (Sensor) es de tipo texto




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
Function PreventivosRecomendados()
 
'On Error Resume Next
 
 
 
Dim miconexionS As New ADODB.Connection
Dim mirecordsetS As New ADODB.Recordset
Dim codigoS As String
 
Dim miconexionHP As New ADODB.Connection
Dim mirecordsetHP As New ADODB.Recordset
Dim codigoHP As String
 
Dim miconexionPR As New ADODB.Connection
Dim mirecordsetPR As New ADODB.Recordset
Dim codigoPR As String
 
Set miconexionS = CurrentProject.Connection
codigoS = "SELECT* from TSensoresAT"
mirecordsetS.Open codigoS, miconexionS, adOpenKeyset, adLockOptimistic
 
Set miconexionHP = CurrentProject.Connection
codigoHP = "SELECT* from THistoricoMttosPreventivos"
mirecordsetHP.Open codigoHP, miconexionHP, adOpenKeyset, adLockOptimistic
 
Set miconexionPR = CurrentProject.Connection
codigoPR = "SELECT* from TPreventivosRecomendados"
mirecordsetPR.Open codigoPR, miconexionPR, adOpenKeyset, adLockOptimistic
 
While mirecordsetPR.EOF = False
While mirecordsetS.EOF = False
 
While mirecordsetHP.EOF = False
 
      If mirecordsetHP!SensorMtto = mirecordsetS!Sensor Then                               'SensorMtto es el numerico
         If mirecordsetPR!FERMPRE < mirecordsetHP!FeRMP Then
         mirecordsetPR!IdP = mirecordsetHP!IdPlanficacion
         mirecordsetPR!FP = mirecordsetHP!FPlanificacion
         mirecordsetPR!FM = mirecordsetHP!FMantenimiento
         mirecordsetPR!GS = mirecordsetHP!GSensorMtto
         mirecordsetPR!SM = mirecordsetHP!SensorMtto
         mirecordsetPR!UM = mirecordsetHP!UbicacionMtto
         mirecordsetPR!VM = mirecordsetHP!VariosMtto
         mirecordsetPR!RVT = mirecordsetHP!RVM
         mirecordsetPR!RVT2 = mirecordsetHP!RVM2
         mirecordsetPR!FRVT = mirecordsetHP!FeRVM
         mirecordsetPR!REPVT = mirecordsetHP!REPvm
        mirecordsetPR!MPRE = mirecordsetHP!mp
         mirecordsetPR!RMPRE = mirecordsetHP!Rmp
         mirecordsetPR!RMPRE2 = mirecordsetHP!rmp2
         mirecordsetPR!FERMPRE = mirecordsetHP!FeRMP
         mirecordsetPR!REPMPRE = mirecordsetHP!repMP
         mirecordsetPR.Update
         End If
    End If
    mirecordsetHP.MoveNext
    Wend
    mirecordsetHP.MoveFirst
    mirecordsetS.MoveNext
    mirecordsetPR.MoveNext
    Wend
 
 
    Wend
 
 
mirecordsetS.Close
Set mirecordsetS = Nothing
miconexionS.Close
Set miconexionS = Nothing
 
 
mirecordsetHP.Close
Set mirecordsetHP = Nothing
miconexionHP.Close
Set miconexionHP = Nothing
 
mirecordsetPR.Close
Set mirecordsetPR = Nothing
miconexionPR.Close
Set miconexionPR = Nothing
 
 
End Function
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
Val: 11
Ha disminuido su posición en 6 puestos en Access (en relación al último mes)
Gráfica de Access

Extraer columna de Cuadro Combinado con un recordset

Publicado por Martin (8 intervenciones) el 29/03/2019 14:55:52
Lo que quiero hacer es lo siguiente:
La tabla TSensoresAT contiene unos determinados aparatos y sus características.
La tabla THistoricoMttosPreventivos contiene todos los mantenimientos que se le han realizado a estos aparatos. Incluye el campo Fecha_Realizado_Mtto. En esta tabla los registros se repiten pero tienen como variante el campo Fecha_Realizado_Mtto.
La tabla TPreventivosRecomendados es donde se guardaran los resultados de la búsqueda, es decir, se guardará un único registro por cada aparato con la fecha mayor de mantenimiento (la fecha que se realizó el último mantenimiento).

Esto es lo que quiero conseguir y se me ha ocurrido hacerlo mediante código.
Posiblemente sea más fácil con una consulta SQL pero el problema es que no domino este lenguaje. También lo he intentado mediante consultas de acción de Access pero tampoco lo he conseguido.
CUAL CREES QUE SERIA EL PROCEDIMIENTO MAS FACIL PARA SOLUCIONAR 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
sin imagen de perfil
Val: 85
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Extraer columna de Cuadro Combinado con un recordset

Publicado por Raul (36 intervenciones) el 29/03/2019 22:15:11
Demasiados ingredientes para hacer una pizza
Supon los Siguiente
Tabla1: Campo1, Campo2, CampoID
Tabla 2,: Campo3, Campo4, CampoID, Campofecha

Select distnct tabla1.Campo1, Tabla1.Campo2, Tabla1.campoid, Last(tabla2.campofecha) ... '[puedes usar también max(tabla2.campofecha)]
from tabla1 .... '[Inner left o inner right, osea como se relaciona con la tabla2]
group by tabla1.Campo1, Tabla1.Campo2, Tabla1.campoid
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