|
▼しはん さん:
こんにちは。
>参照中に並び位置が変わってしまいます。
列の並び順を常に意図通りに並べたいのであれば
列を固定する必要があると思います。
Access側で保持している列の並び順通りに表示したいのであれば
>Private Function FnGetArrayFldName(argsTblName As String) As String()
>Dim voRs As ADODB.Recordset
>Dim vsArryFldName() As String
>Dim i As Long
Dim cn As ADODB.Connection '←追加
Set cn = CurrentProject.Connection '←追加
cn.CursorLocation = adUseClient '←追加
>Set voRs = CurrentProject.Connection _
>.OpenSchema(Schema:=adSchemaColumns, _
>Restrictions:=Array(Empty, Empty, argsTblName, Empty))
Set voRs = cn.OpenSchema(Schema:=adSchemaColumns, _
Restrictions:=Array(Empty, Empty, argsTblName, Empty)) '←変更
voRs.Sort = "ORDINAL_POSITION" '←追加
>
>i = 0
・
・
・
の様にソートが可能です。
ですが、あくまでも「Accessが保持している順番」ですので
ある日突然違った並び順になっても文句が言えませんね。
列の追加の度にメンテナンスが必要ですが、
Excel出力用のクエリを用意して、
ざっくり出力するのであれば TransferSpredSheetメソッド、
細かな制御をしながら出力するのであれば CopyFromRecordsetメソッドを
利用してエクスポートするのが良さような気がします。
|
|