2009-04-24 11 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

列挙型はロングですが、完全に互換性があります:) – Oorang

関連する問題