2012-03-06 10 views
0

私はDAOレコードセットからデータ型を取得しようとしています。以下のコード:DAOの列挙型には通常のシステムメソッドがありませんか?

Public Function EditFormData(frm As Form) 
    Dim rst As DAO.Recordset 
    Dim fieldType as DAO.DataTypeEnum 

    Set rst = frm.RecordsetClone 
    rst.MoveFirst 

    fieldType = rst.Fields(0).Type 
    MsgBox fieldType.ToString 

私はこれを実行しようとすると、メッセージボックスにFIELDTYPEに無効な修飾子エラーを取得し、これは、列挙型への私の最初の進出であるので、理由を知りません。

+0

Docsは、 'Type'は列挙型ではなく整数型の結果を返すと述べています。参照:http://allenbrowne.com/func-06.html –

+0

@TimWilliams返された整数はDAO.DataTypeEnumのデータ型エントリに対応するので、対応する文字列を取得しようとしました。しかし、あなたがリンクしている関数は、各値をハードコーディングし、整数から文字列に変換するために文字列に対応しています。私はそれを避けることを望んでいましたが、私ができるより簡単な方法がない場合。リンクありがとうございました。 – Crimius

+0

VB [A]の列挙型は便利な "ToString()"メソッドを持っていません。関数内の文字列値を手作業でコーディングするのは楽しいことではありませんが、幸いなことに誰かがすでにあなたのために行っています... –

答えて

0

レコードセットの現在の位置は何ですか。それがEOFにあれば、あなたは困っているでしょう。フィールドタイプを取得する前にrst.MoveFirstを呼び出してみてください。

+0

修正しました。それは私の元のコードにあった、ちょうどコピーでそれを逃した。 – Crimius

+0

rst.MoveFirstで投稿を修正したことを明確にする必要があります。元の問題にまだ問題があります – Crimius

+0

Typeプロパティは実際にはIntegerとして定義されています。 fieldtypeも整数として定義しようとします。 –

関連する問題