Ето нещо за вас, момчета:
Искам да прочета информация от затворена работна книга с помощта на ADODB във VBA EXCEL. Случва се понякога низовете в клетките на excel да са с дължина над 255.
И тогава ето това ограничение: http://support.microsoft.com/kb/189897
„Вашите данни може да бъдат съкратени до 255 знака, ако първите 8 записа за съкращаваното(ите) поле(я) съдържат 255 или по-малко знака. Microsoft Excel ODBC драйверът по подразбиране ще сканира първите 8 реда от вашите данни, за да определи типа данни във всяка колона."
Има "решение" за това: задаване на стойността TypeGuessRows на нула (0) в системния регистър, но:
"От съображения за производителност, задаването на стойността TypeGuessRows на нула (0) не се препоръчва, ако вашата таблица в Excel е много голяма. Когато тази стойност е зададена на нула, Microsoft Excel ще сканира всички записи във вашата таблица, за да определи типа на данните във всеки колона. "
И така, ето моят въпрос:
Има ли начин, по който мога да кажа (излъжа) на драйвера да прочете повече от 255 знака (с изключение на поставянето на фиктивен низ в първия ред на всяка колона или задаване на стойността TypeGuessRows на нула (0)).
И ако не мога; има ли начин да пиша в затворени работни книги на Excel и да запазя промените, за да мога да вмъкна фиктивен първи ред в горната част на всяка колона, преди да прочета информацията от затворената работна книга.
TypeGuessRows = 0
? Би било логично първо да видим колко голямо е влиянието върху представянето... - person   schedule 12.09.2014cn.Execute("INSERT INTO [namedRange] Values ('" & String(255, "i") & "'))"
, но той няма да приеме низ, по-дълъг от 255 знака, затова не разчитайте на това като решение. - person   schedule 12.09.2014