Ms access 确定要应用于Excel工作表的DAO访问表字段的格式
我正在Access中使用CopyFromRecordset命令将一系列表复制到Excel中。不用担心这个过程。我的问题是让这个例程能够确定应该为工作簿的每个工作表列指定什么格式。我提取了表的字段对象类型值,并将其与Field.Type属性的引用Microsoft reference进行了比较。不幸的是,与MS声明的值相比,返回的值不能准确反映Access中的定义 1日期字段返回与vbString对应的类型值8 2货币字段返回与vbDouble对应的类型值5 3文本字段返回的类型值为10,但未列出 4格式化的vbDouble返回与vbDate对应的类型值7 对于类型值为3的整型字段,唯一似乎提供有效引用的返回值 如何获取有效的表字段格式引用,以便正确设置相应工作表列的格式?我真的不想创建一个引用表,为每个要提取的表中的每个字段提供所需的格式。作为一种解决方案,这很好,但肯定不是很灵活,因为通过一系列交叉表查询提取的表结构是动态的,而我不能轻松地使用Excel模板作为一种解决方案Ms access 确定要应用于Excel工作表的DAO访问表字段的格式,ms-access,excel,vba,Ms Access,Excel,Vba,我正在Access中使用CopyFromRecordset命令将一系列表复制到Excel中。不用担心这个过程。我的问题是让这个例程能够确定应该为工作簿的每个工作表列指定什么格式。我提取了表的字段对象类型值,并将其与Field.Type属性的引用Microsoft reference进行了比较。不幸的是,与MS声明的值相比,返回的值不能准确反映Access中的定义 1日期字段返回与vbString对应的类型值8 2货币字段返回与vbDouble对应的类型值5 3文本字段返回的类型值为10,但未列出
我是不是误解了什么 谢谢你给我的链接和澄清,我的努力方向是错误的。Ted上面引用的链接使我使用函数返回表字段的格式。结果,我能够实现我的目标。以下是具体代码作为参考
'Write the Table Field Names to the Named Worksheet as Column Headers
'and format the columns for the Table.Field format
intRowCount = rst3.RecordCount
intColumnCount = rst3.Fields.Count
For i = 0 To intColumnCount - 1
xlSheet.Cells(1, i + 1).Value = rst3.Fields(i).Name
If i = 0 Then
.Sheets(strTable).Columns(i + 1).EntireColumn.AutoFit
End If
If i < 3 Then
.Sheets(strTable).Columns(i + 1).EntireColumn.HorizontalAlignment = xlCenter
End If
intFormat = CLng(rst3.Fields(i).Type)
.Sheets(strTable).Columns(i + 1).EntireColumn.Select
Select Case intFormat
Case 3
Selection.NumberFormat = "00"
Case 5
Selection.NumberFormat = "$#,##0.00"
Case 7
Selection.NumberFormat = "#,##0"
Case 8
Selection.NumberFormat = "yyyy-mm-dd"
Case 10
Selection.NumberFormat = "@"
End Select
Next i 'Next Column - Table Field to be copied
这可能不是最有效的,因为我仍在开发从Access中最佳使用Excel对象的方法
如果有人有代码改进,我当然愿意接受建议。再次感谢大家 链接中的值列表是针对Exchange Server。。。。