Sub openFile()
'生成图片文件到目录
On Error Resume Next
Set mypic = New StreamDim mypicTEMP As String
Dim i As Integer
Dim numpic As Integer
i = 0For numpic = 1 To myreco(5)
    mypicTEMP = myreco(16) & myreco(6 + i)  '生成文件路径名
    mypic.Type = adTypeBinary
    mypic.Open
    mypic.Write (myreco(7 + i).Value)    '读入图片
    mypic.SaveToFile mypicTEMP, adSaveCreateOverWrite
    i = i + 2
Next
End Sub
上面是一段将数据库中的图片 ,写成一个图片文件。ACCESS可保存TIF ,BMP ,JPG 格式 。可就是不能通过二进制写入PSD 格式的图片。---
我在ACCESS 中用插入对象的方法, 将PSD 格式图片,写进数据库中, 显示“Adobe Photoshop img" 可用上述程序(通过VB调用数据库记录)可写成PSD  格式的文件,可Photoshop无法打开此文件,  说不能识别的格式。---
我如何是好? 请高手帮忙!!!!! 

解决方案 »

  1.   

    完整的代码如下:如果是用SQL那么保存文件的字段类型应该是Binary。如果是用Access,那么保存文件的字段应该用OLE对象,在表中显示为长二进制数据。 
    需要引用ado对象
         
        '将任何文件从数据库中下载到本地: 
        Public Function LoadFile(ByVal col As ADODB.Field, ByVal FileName As String) As Boolean '获得binary数据 
        On Error GoTo myerr: 
         Dim arrBytes() As Byte 
         Dim FreeFileNumber As Integer 
         lngsize = col.ActualSize 
         arrBytes = col.GetChunk(lngsize) 
         FreeFileNumber = FreeFile 
         Open FileName For Binary Access Write As #FreeFileNumber 
         Put #FreeFileNumber, , arrBytes 
         Close #FreeFileNumber 
         LoadFile = True 
        myerr: 
         If Err.Number <> 0 Then 
         LoadFile = False 
         Err.Clear 
         End If 
        End Function 
         
        '将文件从本地上传到数据库中 
        Public Function UpLoadFile(ByVal FileName, ByVal col As ADODB.Field) As Boolean 
         On Error GoTo myerr: 
         Dim arrBytes() As Byte 
         Dim FreeFileNumber As Integer 
         FreeFileNumber = FreeFile 
         Open FileName For Binary As #FreeFileNumber 
         n = LOF(FreeFileNumber) 
         ReDim arrBytes(1 To n) As Byte 
         Get #FreeFileNumber, , arrBytes 
         Close #FreeFileNumber 
         col.AppendChunk (arrBytes) 
         UpLoadFile = True 
        myerr: 
         If Err.Number <> 0 Then 
         UpLoadFile = False 
         Err.Clear 
         End If 
        End Function 
      

  2.   

    我试了一下,  只能写tif,jpg,bmp格式的 
    写PSD 格式的无效,  Photoshop打不开!!!PSD 含图层信息!
      

  3.   

    此问题已解决!ACCESS可以写入PSD格式的图片。我在MSDN Library 中找到源程序。谢谢各位!!!