Если я понимаю, что вы пытаетесь сделать, вы, в основном, хотите, чтобы Adobe Reader открывал «объект» pdf-файла в памяти.Это невозможноВам нужно будет записать файл PDF на системный жесткий диск, а затем открыть его оттуда.Вы можете в некоторой степени добиться того, что вы просите, используя папку Temp на компьютере или самостоятельно управляя файлами / папкой.Например, вы можете очищать папку с файлами PDF при каждом открытии приложения.
Вот код, который поможет вам сделать то, что вы пытаетесь сделать.Этот код не имеет ничего общего с созданием папок, генерацией имен файлов, проверкой, существует ли файл и т. Д. Я предполагаю, что вы сможете справиться с этим.Мой код в Command1_Click предполагает, что вы используете SQL Server со связанными таблицами ODBC.
Я использую здесь FollowHyperlink, но я настоятельно рекомендую вместо этого использовать функцию GoHyperlink Аллена Брауна для открытия файлов,Вероятно, у вас будут ошибки безопасности с FollowHyperlink.
Private Sub Command1_Click()
Dim r As DAO.Recordset, sSQL As String
sSQL = "SELECT ID, BlobField FROM MyTable"
Set r = CurrentDb.OpenRecordset(sSQL, dbOpenDynaset, dbSeeChanges)
If Not (r.EOF And r.BOF) Then
Call BlobToFile("C:\MyPDFFile.pdf", r("BlobField"))
If Dir("C:\MyPDFFile.pdf") <> "" Then
FollowHyperlink("C:\MyPDFFile.pdf")
End If
End If
r.Close
Set r = Nothing
End Sub
'Function: BlobToFile - Extracts the data in a binary field to a disk file.
'Parameter: strFile - Full path and filename of the destination file.
'Parameter: Field - The field containing the blob.
'Return: The length of the data extracted.
Public Function BlobToFile(strFile As String, ByRef Field As Object) As Long
On Error GoTo BlobToFileError
Dim nFileNum As Integer
Dim abytData() As Byte
BlobToFile = 0
nFileNum = FreeFile
Open strFile For Binary Access Write As nFileNum
abytData = Field
Put #nFileNum, , abytData
BlobToFile = LOF(nFileNum)
BlobToFileExit:
If nFileNum > 0 Then Close nFileNum
Exit Function
BlobToFileError:
MsgBox "Error " & Err.Number & ": " & Err.Description, vbCritical, _
"Error writing file in BlobToFile"
BlobToFile = 0
Resume BlobToFileExit
End Function