Access - Archivos adjuntos

   
Vista:

Archivos adjuntos

Publicado por Paco (2 intervenciones) el 22/02/2016 10:37:23
Hola, tengo una duda referente al tema de archivos adjuntos, os explico mi duda.
Tengo una tabla en access con tres atributos y uno de ellos es archivos adjuntos y necesito crear un formulario en el que se realiza una consulta justo al abrirlo que devuelve como resultado un archivo adjunto... hasta aquí bien, mi problema viene cuando quiero enlazar dicho resultado(archivo) a un campo de archivo adjunto que he creado en el formulario, ya que cuando intento asignar el resultado de la consulta en el campo me salta un error.
Os dejo el código.


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
Private Sub Form_Load()
    Dim db_m As Database
    Dim rs_m As DAO.Recordset
    Dim strSQL As String
    Dim strResult As String
    Dim afld As Field2
    Dim rst As Recordset2
    Dim rsadj
 
 
    Set db_m = CurrentDb
 
    Matricula = Me.OpenArgs
    Me.titulo = Matricula
 
strSQL = "SELECT * FROM FechaAscensores WHERE matricula='" & Matricula & "'"
 
Set rst = db_m.OpenRecordset(strSQL, dbOpenForwardOnly)
 
Set afld = rst!AdjuntoPDF
 
Set rsadj = afld.Value
 
 
Do While Not rsadj.EOF
 
   'Asignar archivo adjunto
    Me.adj = rsadj.Value
    rsadj.MoveNext
 
Loop
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

Archivos adjuntos

Publicado por Enrique Heliodoro (1663 intervenciones) el 22/02/2016 11:27:01
En principio los formularios no tiene datos adjuntos, estos solo 'existen' en las tablas (lo que no deja de ser una sub-tabla internamente conectada), en los formularios si es cierto que existe un objeto que los puede manejar (pero basado en una tabla que los admita).

En base a ello, para 'pasar' ese tipo de objeto entre dos tablas (aunque se utilice un formulario como intermediario para facilitar su manejo) ambas tablas deberían pertenecer al nuevo tipo de recordset (el Recordset2) y el código posteado solo declara a uno de los recordset con ese tipo (lo cual invalidaría el intercambio de datos, uno lo soporta, el otro no)
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

Archivos adjuntos

Publicado por Paco (2 intervenciones) el 23/02/2016 10:09:52
Hola, muchas gracias por responder, pero el otro que está declarado como Recordset no lo utilizo en ningún momento. Todos los Recordset que utilizo están declarados como Recordset2.
El fallo salta en esta línea:

1
Me.adj = rsadj

Adjunto también todo el codigo de nuevo:
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
Private Sub Form_Load()
    Dim db_m As Database
    Dim strSQL As String
    Dim strResult As String
    Dim afld As Field2
    Dim rst As Recordset2
    Dim rsadj As Recordset2
 
 
 
    Set db_m = CurrentDb
 
    Matricula = Me.OpenArgs
    Me.titulo = Matricula
 
strSQL = "SELECT * FROM FechaAscensores WHERE matricula='" & Matricula & "'"
 
Set rst = db_m.OpenRecordset(strSQL, dbOpenForwardOnly)
 
Set afld = rst!AdjuntoPDF
 
Set rsadj = afld.Value
 
Do While Not rsadj.EOF
 
    Me.adj =  rsadj
    rsadj.MoveNext
 
Loop
 
 
End Sub
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