VB 下 将ACCESS数据库的表导出生成EXCEL表时出现的问题
VB 下 将ACCESS数据库的表导出生成EXCEL表时出现的问题:
当ACCESS数据表中有 5-10 ,10-15 等这样的字段名时 导出的的EXCEL表会自动将这些字段转化为 5月10日 ,10月15日
如下是我的代码:
'''打开数据库中的内容后,单击数据导出按钮,存成报表格式
If AccessDb_State = False Then '判断数据库是否打开 sun 2008.5.5
MsgBox "请先打开一个数据库"
Exit Sub
End If
Dim currentPath As String
Dim dbDbf As Database
Dim tdDbf As TableDefs
Dim rsDbf As Recordset
Dim tdDbftable As New TableDef
Dim t(100) As field
Dim ex As Excel.Application
Dim exwbook As Excel.Workbook
Dim exsheet As Excel.Worksheet
On Error GoTo errorHandler
With Frm_DataEdit.CommonDialog2
.DialogTitle = "另存为"
.InitDir = workPath
.Filter = "EXCELL文件(*.xls)|*.xls"
.FilterIndex = 1
.ShowSave
' .FileName = tableName
If (Len(.FileName) = 0) Then Exit Sub
End With
currentPath = CurDir
ReDim chooseList(0 To Frm_DataEdit.MSHFlexGrid1.Rows - 1)
'当前表所有的行数
'MsgBox MSHFlexGrid1.Rows
chooseall = MSHFlexGrid1.Rows - 1
'找所选择的行
For i = 0 To Frm_DataEdit.MSHFlexGrid1.Rows - 1
Frm_DataEdit.MSHFlexGrid1.Row = i
If Frm_DataEdit.MSHFlexGrid1.CellBackColor = vbBlue Then
chooseNums = chooseNums + 1
chooseList(chooseNums) = i
End If
Next
'读取选择的记录到excel的sheet1
'测试数据
'MsgBox Frm_DataEdit.CommonDialog2.FilterIndex
Select Case Frm_DataEdit.CommonDialog2.FilterIndex
Case 1
Set ex = CreateObject("Excel.Application")
Set exwbook = Nothing
Set exsheet = Nothing
Set exwbook = ex.Workbooks().Add
Set exsheet = exwbook.Worksheets("sheet1")
'MsgBox Frm_DataEdit.MSHFlexGrid1.Cols
' Worksheets(1).Name = "新工作表名称" '!!!!!!!!!!!!!
'读取表头
For i = 0 To Frm_DataEdit.MSHFlexGrid1.Cols - 1
exsheet.Cells(1, i + 1) = Frm_DataEdit.MSHFlexGrid1.TextMatrix(0, i)
Next
'读取数据
'MsgBox chooseNums
For i = 1 To chooseall
For J = 0 To Frm_DataEdit.MSHFlexGrid1.Cols - 1
exsheet.Cells(i + 1, J + 1) = Frm_DataEdit.MSHFlexGrid1.TextMatrix(i, J)
Next
Next
'保存文件
exwbook.SaveAs Frm_DataEdit.CommonDialog2.FileName
'退出excel
ex.Quit
Frm_DataEdit.MSHFlexGrid1.Refresh
If Frm_DataEdit.MSHFlexGrid1.CellBackColor = vbBlue Then
Frm_DataEdit.MSHFlexGrid1.CellBackColor = vbWindowBackground
Frm_DataEdit.MSHFlexGrid1.CellForeColor = vbWindowText
End If
Frm_DataEdit.CommonDialog2.FileName = ""