在几个form中都有mshflesgrid,也都有另存的按键,我做了一个子程序来做另存这个动作,但是在传递参数的时候出了问题,
(MSHFlexGrid1的DateSource都是绑定的)
调用
call excelsave(me.MSHFlexGrid1)
子程序
Public Sub excelsave(Flex as MSHFlexGrid)
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Add
Set xlsheet = xlbook.Worksheets(1) For k = 1 To Flex.Cols - 1
xlsheet.Cells(1, k) = Flex.TextMatrix(0, k) '设置标题
Next k
xlsheet.range("a2").CopyFromRecordset Flex.DateSource '批量导入
xlapp.Visible = True
xlapp.Workbooks.Close
xlapp.Quit
Set xlapp = Nothing
End Sub
设置标题时没有问题,为什么批量导入时报错:无效的过程调用或参数。
(MSHFlexGrid1的DateSource都是绑定的)
调用
call excelsave(me.MSHFlexGrid1)
子程序
Public Sub excelsave(Flex as MSHFlexGrid)
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Add
Set xlsheet = xlbook.Worksheets(1) For k = 1 To Flex.Cols - 1
xlsheet.Cells(1, k) = Flex.TextMatrix(0, k) '设置标题
Next k
xlsheet.range("a2").CopyFromRecordset Flex.DateSource '批量导入
xlapp.Visible = True
xlapp.Workbooks.Close
xlapp.Quit
Set xlapp = Nothing
End Sub
设置标题时没有问题,为什么批量导入时报错:无效的过程调用或参数。
试一下
设成绑定的记录集不就可以了
set MSHFlexGrid1.DateSource=rs
然后就已经
rs.close
之所以要释放rs,是因为不同的几个form中都需要用rs,不想打开太多,就及时关闭了