Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1110 / 9994 ←次へ | 前へ→

【12183】Re:テーブル項目の自動取得の並びについて
回答  小僧  - 12/10/24(水) 16:09 -

引用なし
パスワード
   ▼しはん さん:
こんにちは。

>参照中に並び位置が変わってしまいます。

列の並び順を常に意図通りに並べたいのであれば
列を固定する必要があると思います。

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メソッドを
利用してエクスポートするのが良さような気がします。
707 hits

【12177】テーブル項目の自動取得の並びについて しはん 12/10/22(月) 1:30 質問[未読]
【12183】Re:テーブル項目の自動取得の並びについて 小僧 12/10/24(水) 16:09 回答[未読]
【12205】Re:テーブル項目の自動取得の並びについて しはん 12/11/2(金) 16:15 質問[未読]

1110 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078193
(SS)C-BOARD v3.8 is Free