以下是全部代码,Public cn As ADODB.Connection
Public rs As ADODB.RecordsetPrivate Sub Command1_Click()
Dim XL As Object
Dim m As Integer
Dim n As Integer
Dim Rcount As Long
Screen.MousePointer = 11
Label1.Caption = ""
Set XL = CreateObject("Excel.sheet.8")
If rs.RecordCount > 0 Then
  Label1.Caption = "将字段名添加到电子表格中"
  For m = 0 To rs.Fields.Count - 1
     XL.Worksheets(1).Cells(1, m + 1).Value = rs(m).Name
    
  Next
  rs.MoveLast
  rs.MoveFirst
  Rcount = rs.RecordCount
  m = 0
  Do While Not rs.EOF
     Label1.Caption = "record:" & Str(m + 1) & "of" & Str(Rcount)
     Label1.Refresh
     For n = 0 To rs.Fields.Count - 1
  
        
           XL.Worksheets(1).Cells(m + 2, n + 1).Value = rs(n)
       
       
    Next n
    rs.MoveNext
    m = m + 1
Loop
Label1.Caption = "保存文件..."
Label1.Refresh
XL.SaveAs "c:\test.xls"
Label1.Caption = "退出Excel"
Label1.Refresh
XL.Application.Quit
Else
End If
Label1.Caption = "清除对象"
Label1.Refresh
Set XL = Nothing
Set rs = Nothing
Screen.MousePointer = 0
Label1.Caption = "Read"
Label1.RefreshEnd SubPrivate Sub Form_Load()Dim strcn As String
Dim strSql As String
strcn = "Provider=SQLOLEDB.1;Password=symade;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=DATACENTER"
strSql = "SELECT * From employee WHERE (job_id > 10)"Set cn = New ADODB.Connection
With cn
    If cn.State = adStateOpen Then
        cn.Close
    End If
    .ConnectionString = strcn
    .CursorLocation = adUseClient
    .Open
End With
   
Set rs = New ADODB.Recordset
With rs
    .ActiveConnection = cn
   .CursorLocation = adUseClient
   .CursorType = adOpenDynamic
   .LockType = adLockPessimistic
   .Open strSql
End With
End Sub
以上代码已经可以实现把查询到的值导入到EXCEL中,但有一个问题是日期型的数值变成了其它的数字,比如在数据库中的数值是1992-08-27,但是导入到EXCEL中的数值变成了33843这样类似的数。怎样才能纠正这个问题。另外想实现将查询到的值导入到EXCEL中,字段名在EXCEL中要将其居中并将背景改为其它颜色,同时要在VB程序中实现将导入到EXCEL中的数据打印出来以及能过EMAIL发送。各位请各位高手帮忙,解决了上述问题一定给分,分不够再加

解决方案 »

  1.   

    怎么没有人回复呀,高手在哪里,发送邮件时调用OUTLOOK也可以呀
      

  2.   

    在你的 XL.Worksheets(1).Cells(m + 2, n + 1).Value = rs(n) 这句下面判断如果是日期类型就加下面这句XL.Worksheets(1).Cells(m + 2, n + 1).NumberFormatLocal = "[DBNum1]yyyy""年""m""月""d""日"""
      

  3.   

    你要对时间放入的列进行变化,如下:
        XL.Worksheets(1).Cells(m+2,n+1).NumberFormatLocal = "yyyy-m-d"
    另外,字段居中是:
        XL.Worksheets(1).Cells(m+2,n+1).HorizontalAlignment = xlCenter
    颜色的。。
        .ColorIndex=数字
    你的OUTLOOK配好了没,没呢?就:
        Application.Dialogs(xlDialogSendMail).Show
    这是打开发邮件的。上面的你还要改改才能用。