2009-04-24 70 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只能通過枚舉類型才能通過。 – 2009-04-26 17:18:11

相關問題