¿Cómo cargar una imagen en el control de imagen de MS-Access desde el campo de juego de registros ADO?
Utilizando:
MS-Access 2013 SP1 x86MS-SQL Server 2012 SP1 CU8 x64Conexión a través de ODBC DSN, controlador SQL ServerUpScene Database Workbench Pro v4.4.4 Pro para MS-SQL ServerLa aplicación My Access 2013 usa SQL Server 2012 como la base de datos backend con ODBC. Estoy usando VBA / ADO para leer / escribir datos en la base de datos.
Hasta ahora no he tenido éxito en recuperar una imagen de la base de datos y asignarla a un control de imagen en un formulario de Access. La imagen se almacena en una tabla de SQL Server (como un campo VARBINARIO (MAX)).
En el punto en el que asigno el campo al control de imagen, aparece un error de tiempo de ejecución: "No hay coincidencia de tipo". La imagen almacenada en la base de datos como una imagen de mapa de bits. Intenté con Jpeg antes, pero fue el mismo error. ¿Como puede ésto ser resuelto?
Definición de tabla de SQL Server y definición de procedimiento almacenado:
CREATE TABLE dbo.tbPhoto (
row_id Int IDENTITY NOT NULL,
student_id Int NOT NULL,
picture VarBinary(max),
date_updated DateTime NOT NULL,
date_created DateTime NOT NULL,
CONSTRAINT PK_tbPhoto PRIMARY KEY CLUSTERED (
row_id
)
)
Acceda a los procedimientos para recuperar la imagen:
Private Sub load_studentdetails(AStudentID As Integer)
On Error GoTo errhnd
objStudent.GetStudentDetails AStudentID, StudentDetailsRS
Set Me.fmStudentReg_DtlA.Form.Recordset = StudentDetailsRS
' Me.fmStudentReg_DtlA.Form.Requery
objStudent.GetStudentPicture AStudentID, Me.fmStudentReg_DtlA!imgStudentPic
Exit Sub
errhnd:
MsgBox "Error: " & Err.Description
End Sub
Public Sub GetStudentPicture(AStudentID As Integer, ByRef APicture As Image)
On Error GoTo errhnd
Dim rs As New ADODB.Recordset
Set cmd.ActiveConnection = GetDBConnection
cmd.CommandType = adCmdStoredProc
cmd.CommandText = "dbo.StudentPicture_S"
cmd.Parameters.Refresh
cmd(1) = AStudentID
rs.CursorLocation = adUseClient
rs.Open cmd
Set APicture = rs("picture") '<-----Raises the error: "Type mismatch"
Exit Sub
errhnd:
MsgBox "Error: " & Err.Description
End Sub