注册 登录
编程论坛 VB6论坛

access数据导出到excel代码求助

m446781380 发布于 2023-03-28 11:04, 888 次点击
刚开始学习VB6.0+access,代码基础不劳,现在遇到一个功能不知道怎么写,总是报错。
要求:将form8中mshflexgird的内容导出到excel,且要求导出的数据符合领用日期介于dtpicker1和dtpicker2之间(可等于)。
求大神帮忙完善代码。跪谢!!!
只有本站会员才能查看附件,请 登录
2 回复
#2
wds12023-03-28 16:07
1、form8的command1的事件直接用MSHFlexGrid1内容判断后直接输出到execl。
command1的具体代码修改如下:

Private Sub Command1_Click()
  Dim i, j, t
  
  CommonDialog1.ShowSave
  t = CommonDialog1.FileName
  
  Dim xlApp As Excel.Application '定义EXCEL类
  Dim xlBook As Excel.Workbook '定义工件簿类
  Dim xlsheet As Excel.Worksheet '定义工作表类
  
  Set xlApp = CreateObject("Excel.Application") '创建EXCEL应用类
  xlApp.Visible = False
  Set xlBook = xlApp.Workbooks.Add
  Set xlsheet = xlBook.Worksheets(1) '打开EXCEL工作表
 
  Dim Date1, Date2, Date3
  Dim Cols, Rows
  Dim count1
  Date1 = CDate(DTPicker1.Value)
  Date3 = CDate(DTPicker2.Value)
  Rows = MSHFlexGrid1.Rows
  Cols = MSHFlexGrid1.Cols
  count1 = 2
   
  For i = 0 To Cols - 1: xlsheet.Cells(1, i + 1) = MSHFlexGrid1.TextMatrix(0, i): Next '表头
  For i = 1 To Rows - 1
    Date2 = CDate(Format(MSHFlexGrid1.TextMatrix(i, 7), "yyyy/mm/dd"))
    If Date1 <= Date2 And Date2 <= Date3 Then '符合条件
      For j = 0 To Cols - 1: xlsheet.Cells(count1, j + 1) = MSHFlexGrid1.TextMatrix(i, j): Next '符合条件记录
      count1 = count1 + 1
    End If
  Next
  
  xlBook.SaveAs (t)
  xlBook.Close (True) '关闭EXCEL工作簿
  xlApp.Quit '关闭EXCEL
  Set xlApp = Nothing '释放EXCEL对象
  MsgBox "完成导出"
End Sub
2、如果用数据库,要么是查询全部记录,在匹配;或者直接构造符合条件sql语句(日期型的比较有难度,日期型数据必须格式一致才行)。
   不过以上数据已经加载完毕,没有必要在去数据库中查询了。
#3
m4467813802023-03-28 17:03
回复 2楼 wds1
非常感谢,还是需要加强学习。
1