次の方法で共有


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 のサポートおよびフィードバックを参照してください。