在VB里:
我用的是SQL查询,出来的结果,想让它能预览,也能用EXCEL显示。请问如何实现?

解决方案 »

  1.   

    出来的结果,想让它能预览,也能用EXCEL显示
    ---------------------------------------------
    可以用MSFlexGrid或MSHFlexGrid控件来做预览想用Excel显示的话,需要把数据导到Excel里,然后才能用Excel显示
      

  2.   

    你的意思实际上就是把在一种控件(如:datagrid)查询显示的记录,也能保存到excel文件中。准备工作:
    在1个vb工程窗口中有datagrid1控件,command1和command2,text1控件,microsoft activex data object 2.6 library的引用1.设置全局变量传递查询条件
    Public str0 As String 
    1.先用datagrid控件连接ACCESS数据库表Private Sub Command1_Click()
    Dim cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim strcn As String
    这里给str0付值,比如:str0="领用人='" & text1.text & "'"
      strcn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & app.path & "\数据库.mdb;Persist Security Info=False"
      cn.CursorLocation = adUseClient
      cn.Open strcn
      Rs.Open "select * from kkkk where " & srt0, cn, adOpenDynamic, adLockReadOnly
      Set DataGrid1.DataSource = Rs
      DataGrid1.Refresh
    End Sub2.再通过str0变量把显示的结果保存到excel文件中.Private Sub Command2_Click()
    Dim cn As New ADODB.Connection
    Dim strcn As String
    Dim filename As String
      cn.Open ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\数据库名.mdb;Persist Security Info=False")
      filename = App.Path & "\" & InputBox("输入新文件名:",, "保存文件名") & ".xls" 
      strcn = "SELECT * INTO [Excel 8.0;DATABASE=" & filename & "].保存文件名的表名 FROM  kkkk"     '在kkkk这里,把kkkk作为记录源(select * from kkkk where " & srt0) 
      cn.Execute (strcn)
      cn.Close
      set cn=nothing如果要打开excel文件再添加打开excel文件的代码吧.我认为没必要在datagrid控件显示了你的查询内容,也一定要显示保存的 excel文件.呵呵End Sub
      

  3.   

    兄弟!向你推荐一个免费报表,杭州出的,帮助资料齐全,官方网站还承诺完全免费,我用过了,还可以。去试试www.happyreport.com