注册 登录
编程论坛 VB6论坛

VB如何读写Access里excel文件?

yuk_yu 发布于 2011-10-25 17:06, 1929 次点击
请大家指点如何将一个附件保存到access中,并且可以实现直接将附件打开? 如果是其他附件读写会有区别吗?
附件是存放在ACCESS,但怎么直接读取附件打开呢? 附件有PDF,XLS,XLSX,JPG
只有本站会员才能查看附件,请 登录


[ 本帖最后由 yuk_yu 于 2011-10-26 08:59 编辑 ]
9 回复
#2
yuk_yu2011-10-26 10:50
回复 楼主 yuk_yu
敬请大家帮忙,在附件中只能实现下载,而不能实现直接打开,挺麻烦,我想实现直接打开.谢谢
#3
yuk_yu2011-10-28 11:51
回复 2楼 yuk_yu
期待大家指点!
#4
xlin1033xl2011-10-28 21:27
Private Sub download_Click()
    Dim f As String
    Dim rs As ADODB.Recordset
    Dim mstream As ADODB.Stream
    Dim strfileName As String
    On Error GoTo errlab


    Set rs = New ADODB.Recordset
    rs.Open "Select * from fileTab where fileid=" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0), cn, adOpenKeyset, adLockOptimistic

    Set mstream = New ADODB.Stream
    mstream.Type = adTypeBinary
    mstream.Open
    mstream.Write rs.Fields("Filedata").Value

    strfileName = rs("filename")
    mstream.SaveToFile App.Path & "\" & strfileName, adSaveCreateOverWrite
    rs.Close

    Call ShellExecute(0, "open", strfileName, 0, 0, 1)

    Exit Sub
errlab:
    MsgBox "打开文件出错!", vbExclamation, "错误"
End Sub
#5
xlin1033xl2011-10-28 21:28
忘记函数定义了,补上
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
#6
yuk_yu2011-10-29 11:44
回复 5楼 xlin1033xl
完美答案,谢谢!!
#7
yuk_yu2011-10-29 12:09
回复 5楼 xlin1033xl
老大,可以实现关闭打开的文件同时删除该文件吗?要不开多几个文件会出现很多附件再该目录,占用过多空间会要手动删除。
#8
xlin1033xl2011-10-29 20:06
要响应关闭的操作,这个需要拦截windows消息了,这个比较麻烦
#9
yuk_yu2011-10-30 02:02
回复 8楼 xlin1033xl
谢谢,我再想其他办法吧!
#10
foreversun2013-12-20 17:40
rs.Open "Select * from fileTab where fileid=" & MSHFlexGrid1.TextMatrix(MSHFlexGrid1.Row, 0), cn, adOpenKeyset, adLockOptimistic
 如何 将上面这句改为指定的记录: 如fielid=7 或者filename=text.xls
1