打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA数据库解决方案第48讲:从数据库中导出数据到工作表后,工作表格式的设置

大家好,今日我们讲VBA解数据库解决方案的第48讲内容:从数据库中导出数据到工作表后,工作表格式的设置。为什么要讲这讲内容呢?因为我们在操作数据库的时候,需要的是数据处理,往往从数据表中导出数据后,格式会发生变化,我们需要程序来处理。避免手工的操作。如下面截图为导出数据的信息:
                     

  很显然,这份表格中我们需要的是出生日期应该是年月日格式的日期,同时我们的第一行最好是把字体换成粗体。这需要程序的自动实现。

我们可否能让程序自动实现呢?当我们深入的学习应用VBA后,需要这类问题的解决很多,为什么呢?因为我越来越不想手工处理了,最好程序给我一份最终的报表。好了,实现是没问题的,下面看我给出的代码:

Sub mynzRecords_48() '48 从数据库中导出数据到工作表后,工作表格式的设置

    Dim cnADO, rsADO As Object

    Dim strPath,strSQL, strTable As String

   Set cnADO = CreateObject("ADODB.Connection")

   Set rsADO = CreateObject("ADODB.Recordset")

   strPath = ThisWorkbook.Path & "\mydata2.accdb"

   strTable = "员工信息"

   cnADO.Open "Provider=Microsoft.Ace.OLEDB.12.0;Data Source="& strPath

   strSQL = "SELECT * FROM " & strTable

   rsADO.Open strSQL, cnADO, 1, 3

   Worksheets("48").Select

   Cells.ClearContents

   For i = 0 To rsADO.Fields.Count - 1

       ActiveSheet.Cells(1, i + 1) = rsADO.Fields(i).Name

   Next i

  GoTo 200

  For i = 1 To rsADO.RecordCount

   For j = 0 To rsADO.Fields.Count - 1

    ActiveSheet.Cells(i + 1, j + 1) = rsADO.Fields(j)

  Next j

   rsADO.MoveNext

  Next i

  GoTo 100

200:

   '设置工作表格式

   With Range(Cells(1, 1), Cells(1, rsADO.Fields.Count))

       .Font.Bold = True

       .HorizontalAlignment = xlCenter

   End With

   '复制全部数据

  Range("A2").CopyFromRecordset rsADO

  ActiveSheet.Columns(rsADO.Fields.Count).NumberFormat = "yyyy-mm-dd"

  ActiveSheet.Columns.AutoFit

100:

   rsADO.Close

   cnADO.Close

   Set cnADO = Nothing

   Set rsADO = Nothing

End Sub

代码截图: 

代码讲解:上述代码在执行过程中如果不执行GOTO 200,那么就是我在本文开始时讲到的那种结果了,当执行后GOTO 200 那么就有了格式的设置,下面我们看看都设置了哪些格式呢?

1  WithRange(Cells(1, 1), Cells(1, rsADO.Fields.Count))

       .Font.Bold = True

       .HorizontalAlignment = xlCenter

End With

这段代码的执行,设置了表头要按粗体来显示。这样的报表会美观些,当然这只是我个人的观点,每个人和每个人不一样。读者也可以自己设置成自己喜欢的格式。

2 ActiveSheet.Columns(rsADO.Fields.Count).NumberFormat= "yyyy-mm-dd"

 ActiveSheet.Columns.AutoFit

上面的代码就将日期列变成了类似于"yyyy-mm-dd" 这种年月日的格式了,并且自动调整。

下面看我们代码的运行结果了:

好了,非常的完美。 

今日内容回向:

1  如何设置工作表的格式呢?

2  上述代码中如果设置其他的列该如何设置呢?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
VBA与数据库解决方案:Recordset记录集合的动态查询,并显示结果
利用VBA向一个已有的数据表中添加数据记录的方法
VBA表格取消自动筛选状态
如何在Excel中使用SQL语言?
用VBA得到EXCEL表格中的行数和列数 - 远方的日志 - 网易博客
VBA编程过程中常用的单元格引用方式总结
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服