做一个软件测试记录,使用datagrid。
1> 除了存储char,int等,如何把测试过的软件和相关word文档上传并储存在mssql里。
2> 能否实现下载。
3> commandbuton_click 打开另一个form,该怎么写?Private Sub edit_Click()
editForm.Show
End Sub望指教小弟,各位见笑。
----------------------------

解决方案 »

  1.   

    使用流对象保存和显示图片 
    打开vb6,新建工程。添加两个按钮,一个image控件
    注意:Access中的photo字段类型为OLE对象.
    SqlServer中的photo字段类型为Image'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
    ‘2.5版本以下不支持Stream对象
    Dim iConcstr As String
    Dim iConc As ADODB.Connection
     '保存文件到数据库中
    Sub s_SaveFile()
        Dim iStm As ADODB.Stream
        Dim iRe As ADODB.Recordset
        Dim iConcstr As String    '读取文件到内容
        Set iStm = New ADODB.Stream
        With iStm
            .Type = adTypeBinary   '二进制模式
            .Open
            .LoadFromFile App.Path + "\test.jpg"
        End With
           '打开保存文件的表
        Set iRe = New ADODB.Recordset
        With iRe
            .Open "select * from img", iConc, 1, 3
            .AddNew         '新增一条记录
            .Fields("photo") = iStm.Read
            .Update
        End With
          '完成后关闭对象
        iRe.Close
        iStm.Close
    End Sub
    Sub s_ReadFile()
        Dim iStm As ADODB.Stream
        Dim iRe As ADODB.Recordset
        '打开表
    Set iRe = New ADODB.Recordset
    ‘得到最新添加的纪录
        iRe.Open "select top 1 * from img order by id desc", iConc, adOpenKeyset, adLockReadOnly
        '保存到文件
        Set iStm = New ADODB.Stream
        With iStm
            .Mode = adModeReadWrite
            .Type = adTypeBinary
            .Open
            .Write iRe("photo")
    ‘这里注意了,如果当前目录下存在test1.jpg,会报一个文件写入失败的错误.
            .SaveToFile App.Path & "\test1.jpg"
        End With
           Image1.Picture = LoadPicture(App.Path & "\test1.jpg")
       '关闭对象
        iRe.Close
        iStm.Close
    End Sub
     Private Sub Command1_Click()
    Call s_ReadFile
    End Sub
    Private Sub Command2_Click()
    Call s_SaveFile
    End Sub
    Private Sub Form_Load()
        '数据库连接字符串
        iConcstr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False" & _
            ";Data Source=F:\csdn_vb\database\保存图片\access图片\img.mdb"‘下面的语句是连接sqlserver数据库的.
        ‘iConcstr = "Provider=SQLOLEDB.1;Persist Security Info=True;" & _
    ‘ "User ID=sa;Password=;Initial Catalog=test;Data Source=yang"
        Set iConc = New ADODB.Connection
       iConc.Open iConcstr
    End Sub
     Private Sub Form_Unload(Cancel As Integer)
    iConc.Close
    Set iConc = Nothing
    End Sub
      

  2.   

    to  Leftie(左手,为人民币服务):第一个问题我作过,但是我觉得有一个问题,那就是我的系统是不断的产生word文档(我开始作了一个word模板),但是我的问题是怎么知道是现在产生的word文档啊?也就是说LoadFromFile App.Path + "\test.jpg",这个地方地文件名怎么是我随时产生地啊?
    谢谢
      

  3.   

    最后地问题就是
    frm.show即可啊
      

  4.   

    用GetTempFileName产生个可用的文件名,把你的图片保存为这个文件名就可以了
    Public Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long
      

  5.   

    Leftie(左手,为人民币服务) 谢谢你,在编译您的代码.Fields("photo") = iStm.Read 和.Fields("photo") = iStm.Read 这两行参数错误?  谢谢。
      

  6.   

    引用的ado版本要2.7以上,最好安装MDAC2.8MDACTYP.EXE,还有,将photo字段改你实际的字段名称
      

  7.   

    不一定要保存到sqlserver裡,你可以把文件copy到另外一個地就可以了
      

  8.   

    //2> 能否实现下载。下面是實現Excel下載到的代碼'請你自己加個CommonDialog控件Private Sub Command3_Click()
        Dim objFileSystem As Object
        Dim objExcelText As Object
        Dim strTableString As String, i As Integer, strFileName As String
        Dim pubConn As New ADODB.Connection
        Dim rsTable As New ADODB.Recordset
        Dim strConn As String
        Dim strSQL As String    strConn = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=develop; password=12345;Data Source=ServerNmae"
        pubConn.Open strConn
        rsTable.CursorLocation = adUseClient
        strSQL = "select top 10 * from gate_register"
        rsTable.Open strSQL, pubConn, adOpenDynamic, adLockOptimistic
        
        For i = 0 To rsTable.Fields.Count - 1
            strTableString = strTableString & rsTable.Fields(i).Name & Chr(9)  '獲取字段名
        Next
        strTableString = strTableString & rsTable.GetString     '字段名+數據庫的記錄
        
        cmDialog.CancelError = False
        cmDialog.FileName = "FileName"  '默認生成的文件名
        cmDialog.DialogTitle = "Save Export File"
        cmDialog.Filter = "Excel (*.xls)|*.xls|文本文件(*.DBF)|*.DBF|檔案文件(*.doc)|*.doc|所有文件(*.*)|*.*"
        cmDialog.DefaultExt = "*.xls"
        cmDialog.ShowSave
        strFileName = cmDialog.FileName
        
        Set objFileSystem = CreateObject("Scripting.FileSystemObject")
        Set objExcelText = objFileSystem.createtextfile(strFileName, True)
        objExcelText.writeline (strTableString)
        
        objExcelText.Close
        Set objFileSystem = Nothing
    End Sub
      

  9.   

    Leftie(左手,为人民币服务)  感谢你
    ------------------------------------------
    1>.Write iRe("photo") 总报参数类型错误,或不在可以接受的范围之内,或与其他参数冲突   问题:现在出现这样的报错,请问是怎么?  谢谢各位大侠2> http://community.csdn.net/Expert/TopicView.asp?id=4201236 这还有分感谢各位高手~.......
      

  10.   

    Leftie(左手,为人民币服务)   很谢谢你现在准备把上传下载和CommonDialog控件 结合起来希望各位高手,大侠指点小弟.谢谢
      

  11.   

    各位大侠  我用了CommonDialog1,语句 .LoadFromFile (CommonDialog1.filename)
    为什么我txt的 文件能上传  并下载打开rar的文件却不能上传,并且打不开?感谢各位大侠 在下有礼了~~~~
      

  12.   

    检查你的.LoadFromFile (CommonDialog1.filename) filename 默认为空?
    在保存的时候如果是  doc  就要取名为 *.doc 等等!
      

  13.   

    感谢,怎么判断image字段是否为空?