Ошибка метода LoadPicture - PullRequest
       0

Ошибка метода LoadPicture

0 голосов
/ 19 сентября 2019

Я успешно загрузил изображение в таблицу Oracle.Когда я пытаюсь получить одно и то же изображение в элемент управления изображениями в VBA, метод LoadPicture не работает.Вот код, который я использовал.

Private Sub Image_Retreive()

    Dim v_RecId As Long
    Dim v_Str As String

    With cn
        .Provider = "OraOLEDB.Oracle"
        .ConnectionString = "Data Source=" & cboDsn.Value & ";" & _
                            "User ID=" & txtuser.Value & ";" & _
                            "Password=" & txtpwd.Value & ";"
        .Open
    End With

    Rs.Open "select image,file_name from images where file_name=" & "'" & _ 
             fsys.GetFileName(txtFileName.Value) & "'", _
             cn, adOpenKeyset, adLockOptimistic

    Strm.Open
    Strm.Type = adTypeBinary
    Strm.Write (Rs.Fields(0).Value)
    Image1.Visible = True

    Image1.Picture = LoadPicture(Rs.Fields(1).Value)

    Rs.Close
    cn.Close
    Strm.Close
    Set Strm = Nothing
    Set cn = Nothing
    Set Rs = Nothing

Попытка сохранения в локальный файл:

If v_Image_Size > 0 Then 
    'Write the content of the stream object to a file 
    Strm.SaveToFile ("c:\temp\" & Rs.Fields(1).Value), adSaveCreateOverWrite 
    'Load the temp Picture into the Image control 
    Image1.Picture = LoadPicture("c:\temp\" & Rs.Fields(1).Value) 
    'imgPhoto.Picture = LoadPicture(App.Path & "\temp\emp.bmp") 
Else 
    MsgBox "Error reading the Photo" 
End If

Получена эта ошибка:

Ошибка выполнения -2147418113 (8000ffff) Метод 'LoadPicture' объекта '_Application' не выполнен

1 Ответ

0 голосов
/ 20 сентября 2019

Это работает для меня:

Dim fso As New Scripting.FileSystemObject
Dim stm As New ADODB.Stream
Dim tmpFileName

'get a temporary file name
tmpFileName = fso.GetSpecialFolder(TemporaryFolder) & "\" & fso.GetTempName

'open a recordset "rs"

With stm
    .Type = adTypeBinary
    .Open
    .Write rs.Fields(0).Value   'write image bytes to stream
    .SaveToFile tmpFileName, adSaveCreateOverWrite
End With
Sheet1.Image1.Picture = LoadPicture(tmpFileName)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...