2009-04-24 6 views
1

Access 2007 용 코드에서 ENUMS를 사용하려고했습니다.하지만 매우 불편합니다. 컬렉션을 사용하는 것이 더 좋을 수 있습니까?VBA에서 ENUM을 사용할 이유가 있습니까?

내 코드가 작동하지 않는다면 유용 할 것이라고 생각했습니다.

Public Function 

    GetEnumId(Name As String, ReferenceTable As String) As Long 
     Dim rs As DAO.RecordSet 

     Set rs = CurrentDb.OpenRecordset("Select * From " & ReferenceTable & _ 
        " Where Name= '" & Name & "'") 
     GetEnumId = rs("ID") 

     rs.Close 

    End Function 

    ' Doesn't work because of wrong type params 
    Public Function GetEnumName(ID As Long, ReferenceTable As String) As String 
     Dim rs As DAO.RecordSet 

     Set rs = CurrentDb.OpenRecordset("Select * From " & ReferenceTable & _ 
        " Where ID= '" & ID & "'") 
     GetEnumName = rs("Name") 

     rs.Close 

    End Function 

답변

1

ID가 아닌 번호입니까? 그런 다음 따옴표로 묶지 마십시오.

Set rs = CurrentDb.OpenRecordset("Select * From " & ReferenceTable & _ 
      " Where ID= " & ID) 
+0

고맙습니다. 나는 ID가 단지 열거 형에 의해서만 전달 될 수 있다고 생각했다. –

+0

열거 형은 Longs이며, 완전히 상호 교환 가능합니다. :) – Oorang

관련 문제