VB 下 将ACCESS数据库的表导出生成EXCEL表时出现的问题

hunansunjianjun 2009-01-15 11:03:36
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 = ""
...全文
166 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hunansunjianjun 2009-01-15
  • 打赏
  • 举报
回复
谢谢了啊 问题解决了
特别 2009-01-15
  • 打赏
  • 举报
回复
对于字符型的数据,写入EXCEL的时候,前面加一个单引号
例如 5-10 ,你写成 '5-10 就可以了
还有象电话号码比较长,如139583482384,写到Excel里会变成科学计数法,只要写成'139583482384就没问题了

7,787

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧