ListBox.ColumnOrder プロパティ (Access)

ColumnOrder プロパティ を使用 して、データシート ビューの列の順序を指定できます。 値の取得および設定が可能です。整数型 (Integer) の値を使用します。

構文

.ColumnOrder

ListBox オブジェクトを表 す変数

注釈

Visual Basic を使って、テーブルまたはクエリに対してこのプロパティを設定または変更するには、列の Properties コレクションを使う必要があります。 Properties コレクションの使用の詳細については 、「Properties」参照してください

[!メモ] ColumnOrder プロパティは、デザイン ビューでは使うことができません。

ColumnOrder プロパティは、データシート ビューのすべてのフィールドに適用されます。フォームがデータシート ビューで開かれている場合はフォーム コントロールに適用されます。

データシート ビューでは、フィールドの ColumnOrder プロパティの設定値は、フィールドの位置によって決定されます。 たとえば、データシート ビューの左端の列にあるフィールドは、 ColumnOrder プロパティの設定値が 1 で、次のフィールドは、設定値が 2 というように決定されます。 あるフィールドの ColumnOrder プロパティを変更すると、データシート ビューで対応するフィールド、およびそのフィールドの元の位置より左にある各フィールドのプロパティの設定値はリセットされます。

その他のビューでは、データシート ビューの 1 つ、または複数のフィールドの順序を明示して変更すると、つまり、フィールドを新しい位置にドラッグするか、または、 ColumnOrder プロパティの設定値を変更すると、このプロパティの設定値が 0 でなくなります。 新しい位置に移されたフィールドの右にあるフィールドは、データシート ビュー以外のビューで、プロパティの設定値が 0 になります。

データシート ビューのフィールドの順序を変更しても、テーブルのデザイン ビューやフォーム ビューでのフィールドの順序は変わりません。

リスト ボックスはフォーム コントロールで、フォームはデータシート ビューに表示できます。 このプロパティは、フォームがデータシートとして表示される際にフォームの要素が表示される列の順序を制御します。

次の使用例は、[ 製品] フォームのデータシート ビューの最初の 2 列に ProductName フィールドと QuantityPerUnit フィールド を表示 します。

Forms!Products!ProductName.ColumnOrder = 1 
Forms!Products!QuantityPerUnit.ColumnOrder = 2

次の使用例は、[データシート] ビューの [製品] テーブルの最初の 2 列に [ProductName] フィールドと [QuantityPerUnit] フィールドを表示します。 ColumnOrder プロパティを設定 するには 、SetFieldProperty プロシージャを使用 します。 テーブルが開かれているときにこのプロシージャが実行されると、テーブルが閉じられて、再び開かれるまで、変更内容は表示されません。

Public Sub SetColumnOrder() 
 
 Dim dbs As DAO.Database 
 Dim tdf As DAO.TableDef 
 
 Set dbs = CurrentDb 
 Set tdf = dbs!Products 
 
 ' Call the procedure to set the ColumnOrder property. 
 SetFieldProperty tdf!ProductName, "ColumnOrder", dbLong, 2 
 SetFieldProperty tdf!QuantityPerUnit, "ColumnOrder", dbLong, 3 
 
 Set tdf = Nothing 
 Set dbs = Nothing 
 
End Sub 
 
Private Sub SetFieldProperty(ByRef fld As DAO.Field, _ 
 ByVal strPropertyName As String, _ 
 ByVal intPropertyType As Integer, _ 
 ByVal varPropertyValue As Variant) 
 ' Set field property without producing nonrecoverable run-time error. 
 
 Const conErrPropertyNotFound = 3270 
 Dim prp As Property 
 
 ' Turn off error handling. 
 On Error Resume Next 
 
 fld.Properties(strPropertyName) = varPropertyValue 
 
 ' Check for errors in setting the property. 
 If Err <> 0 Then 
 If Err <> conErrPropertyNotFound Then 
 On Error GoTo 0 
 MsgBox "Couldn't set property '" & strPropertyName & _ 
 "' on field '" & fld.Name & "'", vbCritical 
 Else 
 On Error GoTo 0 
 Set prp = fld.CreateProperty(strPropertyName, intPropertyType, _ 
 varPropertyValue) 
 fld.Properties.Append prp 
 End If 
 End If 
 
 Set prp = Nothing 
 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。