Страницы: 1
RSS
Неполный импорт данные через MS Query
 
Добрый день!  
 
MS Query создает проблемы, если данные какого-то из полей могут быть похожи на определенные, но разные форматы. Мне необходимо получать данные из журнала регистрации входящей корреспонденции, в котором исходящие номера писем различных организаций имеют, разумеется, самый разный формат - от простого числа до сложной комбинации букв и символов. Query выбирает какое-то одно значение, которое ему больше понравилось)), и экспортирует в Excel только значения, которые, по его мнению, имеют аналогичный формат. В данном случае он выводит только числа, игнорируя все остальное. При этом формат ячеек в исходном файле и реципиенте - текстовый.  
Пробовал начинать выборку с даты, в которой первое значение - явно текстовое. Пустой номер(((.  
Интересней всего, что в окне запроса он также выводит не все, но все совсем другое!!!  
Как быть, чтобы запрос выдавал все, что находится в диапазоне? Сталкивался кто-нибудь.  
 
P.S. Прошлогодняя комбинация работала. Вероятно потому, что первые письма имели сложный формат номера, но были другие траблы - с полями дат. Если в ячейку вводились две даты, Query их также игнорировал. Так что это общая проблема квери, но я нигде не нашел упоминания о ней и способе решения.
 
Негусто ;(
 
Не понятно, что является источником данных.  
Если внешняя база, то тогда такого не должно случаться, так как редко используются композитные данные в одном поле/столбце.  
Если источником данных является лист Excel, то все работает, как и положено для запроса - обрабатывается лишь ОДИН тип данных, а данные остальных типов заменяются на NUL, другими словами - игнорируются.  
 
Тип данных автоматически определяется по 8-ми первым значениям поля/столбца - (это по умолчанию, конкретное значение строк прописано в реестре. И выбирается тип, который в этих 8-строчках встречается чаще. У Вас из 8-ми первых значений 6 - числовых и 2 текстовых, запрос выбрал числовые, так как их больше, и проигнорировал данные всех других типов (текстовые)
 
Спасибо.  
 
Т.е., отключить автоматическое определение формата и застать Query выдавать все, как текст, не получится?  
Источник - тоже Excel
 
{quote}{login=Priam}{date=28.01.2010 10:23}{thema=Re: }{post}Т.е., отключить автоматическое определение формата и застать Query выдавать все, как текст, не получится?{/post}{/quote}  
Если в исходных данных добавлять апостроф в начале ячеек, тогда всё считается как текст.
 
Благодарю еще раз.  
Если способов настроить Query не существует, и можно работать только с источником, придется действовать таким образом.  
тема закрыта
 
Ставить апострофы в моем случае невозможно, т.к. база данных набивается не мной, а приходит готовая в Экселе. А ее надо импортировать с помощью MS Query в другой Эксель, естественно применив кое-какие фильтры в запросе.  
1. Как запретить этой программке определять тип данных?  
2. Или как сказать ей, что все, что она подтягивает из источника - это текст?
 
{quote}{login=Steel}{date=07.12.2010 07:17}{thema=Актуально!}{post}Ставить апострофы в моем случае невозможно, т.к. база данных набивается не мной, а приходит готовая в Экселе. А ее надо импортировать с помощью MS Query в другой Эксель, естественно применив кое-какие фильтры в запросе.  
1. Как запретить этой программке определять тип данных?  
2. Или как сказать ей, что все, что она подтягивает из источника - это текст?{/post}{/quote}  
Сам убил кучу времени на это - кончилось тем что сохраняю данные как текст и тяну их в Access - там в спецификации загрузки указываю необходимый формат данных (ну и фильтры и преобразования дальнейшие проще). Есть вариант объявить RECORDSET необходимой структуры и затянуть туда данные, но уж больно сложно это....
 
Ребята, надеюсь поможет вам. Мы обнаружили, что MS Query распознает столбец из Excel, как текст, если у столбца формат "Текст". Поэтому перед работой надо все перевести в текст. Можно руками (Ctrl+A, Ctrl+1, TAB, Т в русской раскладке, Enter), а можно вот таким макросом:  
 
Sub Все_данные_текст()  
   Cells.Select  
   Selection.NumberFormat = "@"  
End Sub  
 
Макрос рекомендую сохранить в личной книге макросов (чтобы он был доступен в любом файле Эксель), присвоить ему кнопку и вывести куда-то на панель. Таким образом, надо нажать только 1 кнопку.  
 
Что потом делать с данными в формате текста, если это числа? Надо в первой же формуле, где число используется, умножить его на единицу.
Страницы: 1
Читают тему
Наверх