Êàê ïðîâåðèòü ïðîãðàììíî â VBA èìååò ëè ïîëå òèï "Âëîæåíèå"?
|
|
Ñðåäà, 04 Èþíÿ 2014 ã. 21:30
+ â öèòàòíèê
Äîáðûé äåíü, êîëëåãè!
Ñîáñíî, ñàáæ.
Åñòü êîëëåêöèÿ ADODB.Recordset.Fields, ïî íåé èä¸ò öèêë. Íåêîòîðûå ïîëÿ èìåþò òèï "Âëîæåíèå" (Attachment). Íà ýòàïå ïðîãðàììèðîâàíèÿ çàêëàäûâàòü ïðåäîïðåäåë¸ííûé íàáîð ïîëåé íåò æåëàíèÿ.
Ñîîòâåòñòâåííî, íàäî êàê-òî ïðîãðàììíî îòëè÷èòü ïîëÿ òèïà "Âëîæåíèå" îò âñåõ îñòàëüíûõ.
È âîò òóò ÿ çàñòðÿë. Ñâîéñòâî Type ó òàêèõ ïîëåé èìååò òèï Variant/Object. Íî ýòî âåäü åù¸ íå ÿâëÿåòñÿ îäíîçíà÷íûì ïðèçíàêîì òèïà "Âëîæåíèå".
Ìîæíî ïîéòè äåðåâåíñêèì ïóò¸ì è ïðîñòî ïðèñâàèâàòü êàê-òî òàê:
Dim att As ADODB.Recordset
Set att = fld.Value
ïîñëå ÷åãî ïåðåõâàòûâàòü îøèáêó.
Åñëè îøèáêè íåò, òî ïîëå ÿâëÿåòñÿ multivalued, ÷òî, êàê ÿ ïîíÿë, ÿâëÿåòñÿ ïðàêòè÷åñêèì ñèíîíèìîì òèïà "Âëîæåíèå". Åñëè îøèáêà åñòü, òî ïîëå èìååò äðóãîé òèï.
Òàêîé âàðèàíò ðàáîòàåò, íî êàê-òî îíî òóïî. Óâåðåí, åñòü áîëåå ðàçóìíûå è íà䏿íûå ïóòè.
http://www.sql.ru/forum/1098634/kak-proverit-programmno-v-vba-imeet-li-pole-tip-vlozhenie
-
Çàïèñü ïîíðàâèëàñü
-
0
Ïðîöèòèðîâàëè
-
0
Ñîõðàíèëè
-