2012-03-06 3 views
0

DAO 레코드 집합에서 데이터 형식을 가져 오려고합니다. 아래 코드 :DAO의 Enum에는 일반적인 시스템 메서드가 없습니다.

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 

나는 이것을 실행하려고 할 때 MSGBOX에 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로 정의됩니다. 필드 유형을 정수로 정의하려고합니다. –

관련 문제