2015-02-24 1 views
0

Я пытаюсь указать условие фильтра в наборе записей ADO, где одно из имен полей содержит как левое, так и правое квадратное скобки как часть имени. Полученная строка условия присваивается свойству Recordset Filter, чтобы подмножество данных, возвращаемых из набора записей.Как скопировать квадратные скобки в имени поля для свойства фильтра ADO Recordset

Если имя поля «Имя», то простое закрытие имени поля в квадратных скобках отлично работает. Например:

recSet.Filter = "[First Name] = 'Tony'"; 

Однако для имени поля, такие как «Высота [см]» Я не был в состоянии определить, как процитировать квадратные скобки в имени поля. После поиска в Интернете, что я пробовал:

recSet.Filter = "[Height [[]cm[]]] > 156"; 
recSet.Filter = "[Height [cm[]]] > 156"; 
recSet.Filter = "[Height [cm]]] > 156"; 

Но ни одна из этих работ не работает.

Любые предложения по правильному обращению с такими именами?

Спасибо, Дэвид.

BTW, я не контролирую имена в таблицах данных, к которым обращаются.

+0

Насколько я помню, вам нужно только избежать первой квадратной скобки: '[Height [[] cm]]' Лучше всего переименовать такие столбцы/поля, прежде чем они заберут всех орехов. – Fionnuala

+0

Спасибо за предложение. Я только что попробовал процитировать первую квадратную скобку, но она тоже терпит неудачу. Я согласен с переименованием названий полей, но когда подобные поставщики служб OLE DB Microsoft Analysis Services возвращают имена полей, такие как '[$ Customer]. [Почтовый код]' У меня мало альтернативы. – HexTheKiwi

+0

Дорогая мне. Надеюсь, вы получите ответ. – Fionnuala

ответ

0

Я связался с Microsoft и сказал, что вы не можете использовать имена полей, которые содержат квадратные скобки в свойстве Filter. (Нет никакого способа их процитировать.)

Их единственным предложением было переименование столбцов, а затем использование переименованных столбцов.

Смежные вопросы