MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Windows, Linux, настройка компьютера, программы и внутренности железного ящика, интернет и электронная коммерция.

Модератор: Valery

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 772
На борту с: 29.10.2008
Награды: 2

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Akwa » 16.12.2013 08:48

смотри на своей форме самую большую кнопку. Ща перезалью. там код такой:
Private Sub Êíîïêà36_Click()
On Error GoTo Err_Êíîïêà36_Click

Dim sFilename As String
Dim fsT As Object
Dim rst As DAO.Recordset
Dim sqlstr As String
Dim key As String

key = Me.keyword
sqlstr = "SELECT ppgallery!file_name AS file_name, "
sqlstr = sqlstr & "IIf(" & key & " Is Not Null," & key & " & ,) & & ppgallery!alt AS alt, "
sqlstr = sqlstr & "IIf(" & key & " Is Not Null," & key & " & ,) & & ppgallery!alt AS title "
sqlstr = sqlstr & " FROM ppgallery "
sqlstr = sqlstr & " WHERE ((ppgallery.id_article=" & CStr(Me.id) & "))"

If Nz(Me.Filename, "") = "" Then
    MsgBox "âåäèòå èìÿ ôàéëà"
    Exit Sub
Else
    sFilename = Me.Filename
    Set fsT = CreateObject("ADODB.Stream")
    fsT.Type = 2 Specify stream type - we want To save text/string data.
    fsT.Charset = "utf-8" Specify charset For the source text data.
    fsT.Open Open the stream And write binary data To the object
   
    Set rst = Me.Recordset.Clone
    Set rst = CurrentDb.OpenRecordset(sqlstr)
    If rst.RecordCount > 0 Then
        rst.MoveFirst
        fsT.WriteText vbNewLine ýòî ïóñòàÿ ñòðîêà â íà÷àëå ôàéëà, åñëè íå íàäî - çàêîìåíòèðóé
        Do While rst.EOF <> True
            fsT.WriteText Chr(34) & rst.Fields("File_name") & Chr(34) & "," & Chr(34) & rst.Fields("title") & Chr(34) & "," & Chr(34) & rst.Fields("alt") & Chr(34) & vbNewLine
            rst.MoveNext
        Loop
    End If
   
    fsT.Position = 3 ýòî äîëæíî óáðàòü Áóì
   
    Dim BinaryStream As Object
    Set BinaryStream = CreateObject("adodb.stream") ñîçäàåì áèíàðíûé ñòðèì
    BinaryStream.Type = adTypeBinary áèíàðíûé
    BinaryStream.Mode = adModeReadWrite äëÿ ÷òåíèÿ è çàïèñè
    BinaryStream.Open jnrhsdftv

    Strips BOM (first 3 bytes)
    fsT.CopyTo BinaryStream êîïèðóåì â áèíàðíûé ñòðèì ñ òðåòüåé ïîçèöèè (âûøå åå óñòàíîâèëè)
    fsT.Flush
    fsT.Close

    BinaryStream.SaveToFile sFilename, adSaveCreateOverWrite çàïèñûâàåì áèíàðíûé ñòðèì â ôàéë
    BinaryStream.Flush
    BinaryStream.Close
    fsT.SaveToFile sFilename, 2 ýòî óæå íå íàäî
    rst.Close
End If



Exit_Êíîïêà36_Click:
    Exit Sub

Err_Êíîïêà36_Click:
    MsgBox Err.Description
    Resume Exit_Êíîïêà36_Click
   
End Sub

[time]1387183914[/time] добавил:
вот:
[time]1387184420[/time] добавил:
смотри свою форму, а не мою, там на основе твоего запроса  файл пишет
Последний раз редактировалось Akwa 16.12.2013 09:00, всего редактировалось 1 раз.

Аватара пользователя
Спонсор раздела
Бизнес
Сообщения: 2017
На бору: 03.10.2005
Контакты:

Re: Важное сообщение

Сообщение Спонсор раздела » Пт дек 09, 2011 6:53 am

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20422
На борту с: 07.02.2005
Награды: 5
Из: Тридевятое царство

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Valery » 16.12.2013 10:56

Кнопка36 = Invalid use of Null  :(
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 772
На борту с: 29.10.2008
Награды: 2

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Akwa » 16.12.2013 11:24

Поменяй вот эту строку
BinaryStream.Type = adTypeBinary бинарный
на вот такую
BinaryStream.Type = 1 бинарный

чета Акцесс не понял константу adTypeBinary
между тем:
adTypeBinary = 1 - Indicates binary data.
adTypeText = 2  - Default. Indicates text data, which is in the character set specified by Charset.

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20422
На борту с: 07.02.2005
Награды: 5
Из: Тридевятое царство

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Valery » 16.12.2013 12:50

Мне нифига не понятно чего ты написал - одну строчку
BinaryStream.Type = 1 бинарныйя
Я понял, а остальное нифига...
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 772
На борту с: 29.10.2008
Награды: 2

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Akwa » 16.12.2013 01:51

Поменяй вот эту строку

BinaryStream.Type = adTypeBinary

на вот такую

BinaryStream.Type = 1 бинарный

ВОТ

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20422
На борту с: 07.02.2005
Награды: 5
Из: Тридевятое царство

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Valery » 16.12.2013 02:11

Так Invalid use of Null получаем.
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 772
На борту с: 29.10.2008
Награды: 2

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Akwa » 16.12.2013 03:41

ну скачай файл последний
[time]1387208524[/time] добавил:
см пост выше
[time]1387266564[/time] добавил:
вобщем понасоздавал себе папки - проверил, у меня пишет UTF-8 without BOM (проверял в нотепад+)
в коде коечто поправил.
вот последняя версия:
Последний раз редактировалось Akwa 17.12.2013 07:49, всего редактировалось 1 раз.

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20422
На борту с: 07.02.2005
Награды: 5
Из: Тридевятое царство

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Valery » 17.12.2013 09:24

Ну да - сейчас пишет как надо. Позырил код - круто! Т.е. нихрена не понятно  :(
Только я по ходу дела запрос видоизменил добавив туда условий на условие переключателя, опять надо в код лезть.... - посмотрел, а там зашифровано бляха... :o
Это кажется:

Код: Выделить всё

sqlstr = sqlstr & "IIf(" & key & " <>," & key & " &  ,) &  & ppgallery!alt AS alt, "
sqlstr = sqlstr & "IIf(" & key & " <>," & key & " &  ,) &  & ppgallery!alt AS title "
А если файл ppgallery.txt уже есть в папке - как сделать предупреждение о его перезаписи?
Ну и список файлов можно ли получить в форму из папки, т.е. заполнив форму по нажатию другой кнопки?
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Аватара пользователя
Akwa

DVD-video Водномоторный выпуск Великовод форума
Водномоторник
Водномоторник
Сообщения: 772
На борту с: 29.10.2008
Награды: 2

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Akwa » 17.12.2013 10:05

вот как формируется мой запрос:
key = Nz(Me.keyword, "")
sqlstr = "SELECT ppgallery!file_name AS file_name, "
sqlstr = sqlstr & "IIf(" & key & " <>," & key & " & ,) & & ppgallery!alt AS alt, "
sqlstr = sqlstr & "IIf(" & key & " <>," & key & " & ,) & & ppgallery!alt AS title "
sqlstr = sqlstr & " FROM ppgallery "
sqlstr = sqlstr & " WHERE ((ppgallery.id_article=" & CStr(Me.id) & "))"

а вот твой первоначальный запрос:
SELECT ppgallery!file_name AS file_name,
IIf(Forms!ppgallery!keyword Is Not Null,Forms!ppgallery!keyword & ,) & & ppgallery!alt AS alt,
IIf(Forms!ppgallery!keyword Is Not Null,Forms!ppgallery!keyword & ,) & & ppgallery!alt AS title
FROM ppgallery
WHERE (((ppgallery.id_article)=[Forms]![ppgallery]![id]));

Сравни по строкам - все станет понятно...
что ты там в услових поменял- добавь в условиях where


[time]1387278406[/time] добавил:
Добавил проверку на существование файла и подтверждение перезаписи. "Ну и список файлов можно ли получить в форму из папки, т.е. заполнив форму по нажатию другой кнопки? "
наверное существующие файлы из папки уже не надо добавлять?
и какие типы файлов добавлять надо?

[time]1387283883[/time] добавил:
сделал тебе на форме кнобку- добавить картинки из текущей директории.
Повторно существующие не добавляет
вот:
[time]1387287286[/time] добавил:
добавил просмотр картинок
Последний раз редактировалось Akwa 17.12.2013 09:51, всего редактировалось 1 раз.

Аватара пользователя
Valery

DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск DVD-video Водномоторный выпуск Великовод форума Водкомоторный сплав Лава 2016
Без группы
Без группы
Сообщения: 20422
На борту с: 07.02.2005
Награды: 5
Из: Тридевятое царство

Re: MS Access 2003 - экспорт отчета в текстовый файл убрать пустые строки

Сообщение Valery » 18.12.2013 03:40

Вчера перенес на рабочую БД - названия файлов импортируются гуд! Причем добавляются только новые файлы, что вдвойне гуд.
Пока нечего особо подписывать, т.к. нет отчета - а в имеющемся вроде как все очень даже хорошо. По крайней мере намного удобнее стало - не надо лезть копировать имена файлов, потом исходник открывать и пересохранять в без БООМа.
Вот мне кажется сделать бы ссылку на открытие папки, которая задействована - там ссыль вель формируется.
В целом - зачет :cool:

Вот Гугль как-то распознает лица на фотографиях  :o
Слабо такую фичу реализовать чтобы различала и подписывала?
Последний раз редактировалось Valery 18.12.2013 03:46, всего редактировалось 1 раз.
Полусамопал: пластик + фанера = "Adrenaline" 5,6х2,1. По суше: Triumph Tiger 800, велосипед и Land Rover Defender.
Отдохнул – отчитайся, лучшее слово – дело.

Кто сейчас на форуме

Сейчас этот форум просматривают: CommonCrawl [Bot] и 1 гость