2009-04-24 6 views
1

J'ai essayé d'utiliser ENUMS dans mon code pour Access 2007. Mais c'est très inconfortable. Peut-être est-il préférable d'utiliser des collections?Y a-t-il une raison d'utiliser ENUM dans VBA?

Mon code ne fonctionne pas de telle façon que je pensais que ce serait utile.

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 

Répondre

1

L'ID n'est-il pas un numéro? Alors ne l'envelopper pas entre guillemets:

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

Merci. Je pensais que l'ID ne pouvait pas être passé aussi longtemps, seulement par type enum. –

+0

Les Enums sont Longs, ils sont totalement interchangeables :) – Oorang

Questions connexes