ComboBox.ColumnOrder プロパティ (Access)
データシート ビューで列の順序を指定するには、 ColumnOrder プロパティを使用します。 値の取得および設定が可能です。整数型 (Integer) の値を使用します。
構文
式。ColumnOrder
式ComboBox オブジェクトを表す変数。
注釈
Visual Basic を使って、テーブルまたはクエリに対してこのプロパティを設定または変更するには、列の Properties コレクションを使う必要があります。 Properties コレクションの使用方法の詳細については、「プロパティ」を参照してください。
[!メモ] ColumnOrder プロパティは、デザイン ビューでは使うことができません。
ColumnOrder プロパティは、データシート ビューのすべてのフィールドに適用されます。フォームがデータシート ビューで開かれている場合はフォーム コントロールに適用されます。
データシート ビューでは、フィールドの ColumnOrder プロパティの設定値は、フィールドの位置によって決定されます。 たとえば、データシート ビューの左端の列にあるフィールドは、 ColumnOrder プロパティの設定値が 1 で、次のフィールドは、設定値が 2 というように決定されます。 あるフィールドの ColumnOrder プロパティを変更すると、データシート ビューで対応するフィールド、およびそのフィールドの元の位置より左にある各フィールドのプロパティの設定値はリセットされます。
その他のビューでは、データシート ビューの 1 つ、または複数のフィールドの順序を明示して変更すると、つまり、フィールドを新しい位置にドラッグするか、または、 ColumnOrder プロパティの設定値を変更すると、このプロパティの設定値が 0 でなくなります。 新しい位置に移されたフィールドの右にあるフィールドは、データシート ビュー以外のビューで、プロパティの設定値が 0 になります。
データシート ビューのフィールドの順序を変更しても、テーブルのデザイン ビューやフォーム ビューでのフィールドの順序は変わりません。
例
次の例では、 Product フォーム のデータシート ビューの最初の 2 つの列に ProductName フィールドと QuantityPerUnitフィールドを表示 します。
Forms!Products!ProductName.ColumnOrder = 1
Forms!Products!QuantityPerUnit.ColumnOrder = 2
次の例では、データシート ビューの Products テーブルの最初の 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 のサポートおよびフィードバックを参照してください。