Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: VB

Программирование VB

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите, кто знает. Пользовательский тип- как вытащить название переменной
 
 автор: akkorn   (12.11.2012 в 09:51)   личное сообщение
 
 

Всем дня

Есть некий код . Что-то вроде:
Private Enum MyType
    Type1 = 10
    Type2 = 20
End Enum

Private Function GetTypeByName(GetNameType As MyType) As String
GetTypeByName = TypeName(GetNameType)
End Function

Private Sub Command1_Click()
MsgBox GetTypeByName(Type1)
End Sub


Функция отдает текст "Long", а мне НУЖНО получить "Type1" (текстом Type1).
Предполагаю, что TypeName() является не той функцией, что мне надо. А что надо- нинаю..

Скажите, где я промахнулся? Изрыл инет, ответа нет....

Пасибки :)

  Ответить  
 
 автор: Дядя Федор   (13.11.2012 в 13:19)   личное сообщение
 
 

Попробуй вставить
Debug.Print "" & Type1
Debug.Print "" & Type2
получишь
10
20
т.е. твоя функция возвращает значения правильно.

  Ответить  
 
 автор: akkorn   (13.11.2012 в 13:25)   личное сообщение
 
 

Это то понятно. Мне надо как-то получить вместо 10(20) "Type1" ("Type2")

  Ответить  
 
 автор: snipe   (13.11.2012 в 13:39)   личное сообщение
 
 

табличку сделай типа справочника (ну или массив)
в зависимости от того что юзаешь (DAO или ADO) в ней и посмотришь

или вот например

Function GetDataTypeEnum(lngDataTypeEnum As Long) As String
'Given ADO data-type constant, returns readable constant name.
Dim strReturn As String
Select Case lngDataTypeEnum
Case 0: strReturn = "adEmpty"
Case 16: strReturn = "adTinyInt"
Case 2: strReturn = "adSmallInt"
Case 3: strReturn = "adInteger"
Case 20: strReturn = "adBigInt"
Case 17: strReturn = "adUnsignedTinyInt"
Case 18: strReturn = "adUnsignedSmallInt"
Case 19: strReturn = "adUnsignedInt"
Case 21: strReturn = "adUnsignedBigInt"
Case 4: strReturn = "adSingle"
Case 5: strReturn = "adDouble"
Case 6: strReturn = "adCurrency"
Case 14: strReturn = "adDecimal"
Case 131: strReturn = "adNumeric"
Case 11: strReturn = "adBoolean"
Case 10: strReturn = "adError"
Case 132: strReturn = "adUserDefined"
Case 12: strReturn = "adVariant"
Case 9: strReturn = "adIDispatch"
Case 13: strReturn = "adIUnknown"
Case 72: strReturn = "adGUID"
Case 7: strReturn = "adDate"
Case 133: strReturn = "adDBDate"
Case 134: strReturn = "adDBTime"
Case 135: strReturn = "adDBTimeStamp"
Case 8: strReturn = "adBSTR"
Case 129: strReturn = "adChar"
Case 200: strReturn = "adVarChar"
Case 201: strReturn = "adLongVarChar"
Case 130: strReturn = "adWChar"
Case 202: strReturn = "adVarWChar"
Case 203: strReturn = "adLongVarWChar"
Case 128: strReturn = "adBinary"
Case 204: strReturn = "adVarBinary"
Case 205: strReturn = "adLongVarBinary"
Case Else:
strReturn = "Unknown DataTypeEnum of " & lngDataTypeEnum _
& " found."
End Select
GetDataTypeEnum = strReturn
End Function

  Ответить  
 
 автор: akkorn   (13.11.2012 в 13:48)   личное сообщение
 
 

Спасип :)
Хочется выдернуть название именно из пользовательского определения...

К слову: функция уже есть. Но это реальное дублирование информации. И меняя пользовательский тип, ф-ция изменения не подхватит... Вот что плохо.

  Ответить  
 
 автор: Мюллер   (13.11.2012 в 16:51)   личное сообщение
 
 

Замени Enum на что-нить другое. Класс,например.
Enum - ы и предназначены для того, чтобы оперировать не с числовыми данными, а с текстовыми определениями.
Так наглядлней в коде.

  Ответить  
 
 автор: akkorn   (16.11.2012 в 11:04)   личное сообщение
 
 

Ок, спасипп за идею :)

  Ответить  
 
 автор: Жора   (10.10.2013 в 17:17)   личное сообщение
 
 

Я кстате тоже както натолкнулся на факт что мне потребовалось название переменной
и понял так что образ хранится гдето в памяти исполняемого файла
уже и не припомню ...есть какая-то функция API считывающая байтовый участок
только надо точно указывать параметры, и принимающее значение

  Ответить  
 
 автор: akkorn   (13.10.2013 в 22:31)   личное сообщение
 
 

Хм, спасибо за-на-водочку

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList