Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2013, 02:12   #11
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Вообщем заменил я эту функцию на replace и всё заработало. Что конкретно не работает? Вот выкладываю результат загрузки:
P.s. и где схема.ini?
Вложения
Тип файла: rar Сегодня.rar (27.3 Кб, 5 просмотров)
alvk вне форума Ответить с цитированием
Старый 20.03.2013, 03:40   #12
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Новая версия, вся беда ваша в пробелах в тексте, и в двойных кавычках
Вложения
Тип файла: rar Сегодня.rar (28.4 Кб, 8 просмотров)
alvk вне форума Ответить с цитированием
Старый 20.03.2013, 09:19   #13
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

правда работает! только данные со смещением в таблице, начинаются они после столбца CREDIT_ACCOUNT. Я так понимаю, что вы убрали лишние пробелы и двойные кавычки в текстовом файле? Эх, в принципе это решение для данного файла, но не для выгрузки в 100 записей xD (или даже больше, этот файл я просто уменьшил с 7 до 2 записей).

По идее код верен,ведь так? Получается,что проблема в файле изначально? Или надо другой метод программного импорта искать..
Emmelman вне форума Ответить с цитированием
Старый 20.03.2013, 09:26   #14
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Проблема в файле, изначально. К нему кстати можно запросом напрямую подключится, где-то было описание, как делать с текстовыми файлами.. вот же оно. Можете попробовать запросом подцепиться и обрабатывать поля сразу (split, left, mid)
Вложения
Тип файла: rar Work_text_file.rar (40.2 Кб, 8 просмотров)
alvk вне форума Ответить с цитированием
Старый 20.03.2013, 09:32   #15
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

хах, как раз свой код я отсюда и вытащил) поэтому да, придется смотреть другой способ. Или общаться с нашими айтишниками, хотя они такие лентяи - "а зачем вам это надо? а куда это? а почему так?"

Просто имеется несколько файлов с разными именами, а структура одинаковая и вот попадаются такие строчки, в некоторых из них, что одна полностью импортируется, а другая нет( но надо решать проблему
Emmelman вне форума Ответить с цитированием
Старый 20.03.2013, 10:14   #16
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

а такой вопрос - а почему в экселе нормально выгружается все, а программно через аксесс некорректно?
Emmelman вне форума Ответить с цитированием
Старый 20.03.2013, 17:11   #17
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Начал искать в инете еще способы и нашел вот такой, как бы его приспособить? уже начал разбираться
Код:
Function filetxtGet(katalog As String)
    Dim Path, fr, flf, TextLine, rst As DAO.Recordset, db As DAO.Database
    Dim spl, i, mspl(6), k, n, j
    Set db = CurrentDb
    Set rst = db.OpenRecordset("select * from Operations")
    Path = katalog ' не пойму,что за строчки,эти две
    flf = Dir(Path)' <-
    Do While Not flf = "" ' дальше этого функция у меня не идет, я так понимаю должен открыться файловый диалог, но он не открывается, пихнуть сюда свой? из моего кода
        Open Path & flf For Input As #Copy ' тут по идее имя файла, в примере было #1
        k = 0
        Do While Not EOF(1) 
            k = k + 1
            Line Input #1, TextLine 
            TextLine = "TextLine, 866, 28595" 'тут кодировка ставится, на этой строчке была функция, но мне не нужно дос в win1251 переводить
            If k > 1 Then '
                spl = Split(TextLine, " ", 19) ' тут ставится разделитель и количество полей в файле
                rst.AddNew
                For i = 0 To 18
                    rst(i) = spl(i)
                Next
                n = UBound(spl)
                If (n > 18) Then 
                    For j = 19 To (n - 1)
                        rst(j) = spl(j)
                    Next
                End If
                rst.Update
            End If
        Loop
        flf = Dir
        Close #Copy  ' закрывается файл
    Loop
End Function
Emmelman вне форума Ответить с цитированием
Старый 20.03.2013, 23:03   #18
Андрэич
Форумчанин
 
Аватар для Андрэич
 
Регистрация: 20.05.2012
Сообщений: 311
По умолчанию

Цитата:
Сообщение от Emmelman Посмотреть сообщение
правда работает! только данные со смещением в таблице, начинаются они после столбца CREDIT_ACCOUNT. Я так понимаю, что вы убрали лишние пробелы и двойные кавычки в текстовом файле? Эх, в принципе это решение для данного файла, но не для выгрузки в 100 записей xD (или даже больше, этот файл я просто уменьшил с 7 до 2 записей).

По идее код верен,ведь так? Получается,что проблема в файле изначально? Или надо другой метод программного импорта искать..
Беда, во-первых, в вашей невнимательности (28 примеров только из этих текстов, других не знаю) в кач диагноза (не в обиду, но как-то вас надо стимулировать: например, отдыхать, переключаться на другое, утром проверять свои тексты).

Причём здесь колич записей? Ошибка в одном - в алгоритме
Андрэич вне форума Ответить с цитированием
Старый 21.03.2013, 06:23   #19
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Цитата:
Сообщение от Emmelman Посмотреть сообщение
Начал искать в инете еще способы и нашел вот такой, как бы его приспособить? уже начал разбираться
он вам не подходит, я же посоветовал вам через запрос, в приложенном файле всё описано.
alvk вне форума Ответить с цитированием
Старый 21.03.2013, 16:02   #20
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Как я понял, то, что сделал я - это запрос со стандартной строкой подключения, данный способ описан в файле, сейчас я смотрю вариант подключения с помощью спецификаций аксесса

Но вот,что у меня получилось
Код:
 
Dim scnn2 As String

  spec = "[Text;DSN=Import_spec;IMEX=2;HDR=No]"
    CurrentDb.Execute "INSERT Into Operations(OPERATIONDATE, OPERATION_TIME, BRANCH_NAME,BRANCH_CODE, " _
 & " AMOUNT_OPERATION,[CURRENCY], DEBIT_ACCOUNT, DEBIT_ACCOUNT_OWNER_NAME, DEBIT_ACCOUNT_OWNER_ID, DEBIT_ACCOUNT_OWNER_STATUS, " _
 & " CREDIT_ACCOUNT, CREDIT_ACCOUNT_OWNER_NAME, CREDIT_ACCOUNT_OWNER_ID, " _
 & " CREDIT_ACCOUNT_OWNER_STATUS, EXPLANATION, BANK, ENTER_USER, APPROVE_USER, PRODUCT_NAME) " _
 & " SELECT (DateValue(Format([OPERATIONDATE],'0000\.00\.00'))), OPERATION_TIME, BRANCH_NAME,BRANCH_CODE, " _
 & " AMOUNT_OPERATION,[CURRENCY], DEBIT_ACCOUNT, DEBIT_ACCOUNT_OWNER_NAME, DEBIT_ACCOUNT_OWNER_ID, " _
 & " DEBIT_ACCOUNT_OWNER_STATUS, CREDIT_ACCOUNT, CREDIT_ACCOUNT_OWNER_NAME, CREDIT_ACCOUNT_OWNER_ID, " _
 & " CREDIT_ACCOUNT_OWNER_STATUS, EXPLANATION, BANK, ENTER_USER, APPROVE_USER, " _
 & " PRODUCT_NAME FROM " & MyG & " IN '" & FilePath & "'" & spec

заработало, все файлы норм грузятся, но есть одно маленькое исключение, я теряю данные в поле OPERATIONDATE, в файле они выглядят как 20120313. С помощью Андрэича мне удалось привести их к необходимому формату 13.03.2012 - но это было для моего старого кода, тут же я использую спецификацию аксесса, как исправить? Подскажите пожалуйста,заранее благодарен! Пока оставил тут строчку с (DateValue(Format([OPERATIONDATE],'0000\.00\.00'))), но она,по-видимому, не работает

UPDATE: только что пришла в голову такая мысль - я делаю в таблице поле OPERATIONDATE текстовым, а не как сейчас дата\время, следовательно при выгрузке все ячейки заполнятся данными такого типа 20120312 итп, и вот тут написать код,который будет менять эту строчку на дату. Блин..наверно не получится,ведь поле-то текстовое, а я хочу дату сделать..

Последний раз редактировалось Emmelman; 21.03.2013 в 16:07.
Emmelman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Некорректная кодировка asale HTML и CSS 0 05.10.2010 10:46
Некорректная загрузка формы из файла Serega123 Общие вопросы Delphi 6 14.04.2010 16:10
Загрузка - Выгрузка структуры из dat файла delphinewerklin Общие вопросы Delphi 4 07.02.2010 20:00
Выгрузка doc файла в комбокс и листбокс Артур Иваныч Microsoft Office Excel 6 27.11.2009 19:58
Некорректная печать Natalie Microsoft Office Word 5 29.08.2008 11:08