Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Очень, очень, трудная задача, осилит не каждый, я не смог, помогите. / 25 сообщений из 53, страница 1 из 3
02.12.2021, 21:03
    #40116844
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Здравствуйте!
В очередной раз столкнулся с не решимой, для меня, задачей.
Есть две формы, одна печатает единичные документы (с ней всё хорошо её трогать не обязательно), другую нужно сделать для массовой печати.
И тут то возникает веселуха!!!
1. Нужно чтобы в ней обновлялась картинка QR-Codа;
2. Платёжки сохранялись по одной в файл *.pdf
3. Каждая платёжка сохранялась в папку "КвитанцииPDF"
4. Имя файла состояло из [Код] & "_" & [ФИО] & ".pdf" (такие поля есть).
5. ВООБЩЕ ЭТО РЕАЛЬНО????
Заранее спасибо за конструктивные советы и решения, даже частичные.

Обрубок базы прилагаю https://disk.yandex.ru/d/kbbyPhKoYonDng
...
Рейтинг: 0 / 0
02.12.2021, 21:08
    #40116847
vmag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005,

прям как в сказке... так есть хочется, что аж переночевать негде...
...
Рейтинг: 0 / 0
03.12.2021, 05:30
    #40116902
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005
В очередной раз столкнулся с не решимой нерешаемой (неразрешимой), для меня, задачей.
...
Рейтинг: 0 / 0
03.12.2021, 05:31
    #40116903
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
...
Рейтинг: 0 / 0
03.12.2021, 08:24
    #40116916
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Панург,

Спасибо, вроде всё сохраняет, делает, единственное, как я понял у Вас ветка 32-бит не используется -)))
Было -

Код: vbnet
1.
2.
3.
4.
#Else
    Private Const LIBRARY_NAME$ = "quricol32.dll"
    
    Private Declare PtrSafe Function GetBitmapImage Lib "quricol32.dll" Alias "GetHBitmapW" ( _



Стало -
Код: vbnet
1.
2.
3.
4.
#Else
    Private Const LIBRARY_NAME$ = "quricol32.dll"
    
    Private Declare Function GetBitmapImage Lib "quricol32.dll" Alias "GetHBitmapW" ( _



Там надо убрать PtrSafe иначе фиаско -)))

Ещё раз большое спасибо, буду в свою перетаскивать.
...
Рейтинг: 0 / 0
03.12.2021, 08:29
    #40116918
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Панург,

И ещё маленькая просьба, а можно сделать кнопку вызова настроек принтера (простых, штатных), а то у меня при запуске основной базы (у этой эта функция обрезана) окно самого акцесса скрыто, а иной раз нужно выбрать другой принтер или поставит, двустороннюю печать или наоборот одностороннюю (программно, из VBA, настроить двухстороннюю печать я так и не смог. выбирать принтер научился, а вот с дуплексом так и не заладилось, думаю проще будет окно печати вызвать да настроить, как надо и не заморачиваться (хотя так хотелось-))) )
...
Рейтинг: 0 / 0
03.12.2021, 09:41
    #40116942
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005
как я понял у Вас ветка 32-бит не используется -)))
ты не правильно понял. я раньше ещё писал какое у меня сочетание.
...
Рейтинг: 0 / 0
03.12.2021, 09:42
    #40116944
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005
И ещё маленькая просьба
поиск по форуму работает
...
Рейтинг: 0 / 0
03.12.2021, 09:44
    #40116947
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005
вроде всё сохраняет,
в примере есть ещё небольшие огрехи, но ты уж сам решай их..
...
Рейтинг: 0 / 0
03.12.2021, 15:03
    #40117056
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Панург,

Фмык, понятно, итак фактически готовый результат предоставили, правда мне теперь ещё и таблицы надо будет перестроить (так как Ваш вариант более удобный, практичный и не ёмкий), но это мелочи, это только улучшит её.
Спасибо ещё раз за помощь!
...
Рейтинг: 0 / 0
03.12.2021, 18:05
    #40117134
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005
так как Ваш вариант
он не весь мой, он сделан на основе примера 22402408
...
Рейтинг: 0 / 0
05.12.2021, 19:50
    #40117540
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Панург,

И снова здравствуйте! -(
Опять не прошло всё без проблем.
Форма печати получилась, доработал её печатью на принтер и туда же вставил печать в ПДФ.
А вот с массовой печатью БЕДА, фактически та же форма (только снят фильтр), причём тот фильтр который был в исходнике я не использовал, так как база работает с одной строкой и во всех всплывающих и открывающихся формах используется один собственник.


Вот что было:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
Option Compare Database
Option Explicit

Private m_colForms As New VBA.Collection
Private Function PrintInvoice(lngId As Long, strFileName As String)
Dim frm As New Form_КВ
frm.Filter = "[счетНар]=" & lngId
frm.FilterOn = True
DoEvents
frm.ForQRCode
DoCmd.OutputTo acOutputForm, frm.Name, acFormatPDF, strFileName, False
DoEvents
End Function

Private Sub cmdPrintAllInvoices_Click()
Dim strPath As String, strFileName As String
Const msoFileDialogFolderPicker& = 4

    If Me.Dirty Then Me.Dirty = False

    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Title = "Выберите каталог для сохранения файлов PDF"
        .InitialFileName = CurDir
        If .Show Then
            strPath = .SelectedItems(1)
        End If
    End With
    If Len(Dir$(strPath, vbDirectory)) > 0 Then
        With Me.RecordsetClone
            Do Until .EOF
                strFileName = strPath & "\" & CStr(.Fields("счетНар")) & _
                .Fields("НарФ") & Left(Trim(Nz(.Fields("НарИ"), "")), 1) & Left(Trim(Nz(.Fields("НарО"), "")), 1) & _
                Format(Now(), "\_yyyymmddhhnnss\.\p\d\f")
                
                Call PrintInvoice(.Fields("счетНар"), strFileName)

                .MoveNext
            Loop
        End With
    End If
End Sub

Private Sub cmdPrintCurrInvoice_Click()
Dim strFileName As String
Const msoFileDialogSaveAs& = 2
    If Me.NewRecord Then Exit Sub
    If Me.Dirty Then Me.Dirty = False
    
strFileName = CurDir & "\" & CStr(Me.счетНар) & _
                Me.НарФ & Left(Trim(Nz(Me.НарИ, "")), 1) & Left(Trim(Nz(Me.НарО, "")), 1) & _
                Format(Now(), "\_yyyymmddhhnnss\.\p\d\f")
    With Application.FileDialog(msoFileDialogSaveAs)
        .AllowMultiSelect = False
        .InitialFileName = strFileName
        If .Show Then
            strFileName = .SelectedItems(1)
        End If
    End With
Call PrintInvoice(Me.счетНар, strFileName)
End Sub

Private Sub кнКвит_Click()
Dim frm As Form

Set frm = New Form_КВ
 
frm.Filter = "[счетНар]=" & Me.счетНар
frm.FilterOn = True
frm.ForQRCode
m_colForms.Add frm
frm.Visible = True
End Sub



Двойной клик я не использовал (баловство всё это -)))

А вот что я пробовал:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
Option Compare Database
Option Explicit

Private m_colForms As New VBA.Collection
Private Function PrintInvoice(lngId As Long, strFileName As String)
Dim frm As New Form_Ф_QR_Платёжка_МАСС
DoEvents
frm.ForQRCode
DoCmd.OutputTo acOutputForm, frm.Name, acFormatPDF, strFileName, False
DoEvents
End Function
Private Sub cmdPrintAllInvoices_Click()
Dim strPath As String, strFileName As String
Const msoFileDialogFolderPicker& = 4
    If Me.Dirty Then Me.Dirty = False
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Title = "Выберите каталог для сохранения файлов PDF"
        .InitialFileName = CurDir
        If .Show Then
            strPath = .SelectedItems(1)
        End If
    End With
    If Len(Dir$(strPath, vbDirectory)) > 0 Then
        With Me.RecordsetClone
            Do Until .EOF
'               strFileName = strPath & "\" & [Код] & "_" & [ФИО] & ".pdf"

'               strFileName = strPath & "\" & CStr(.Fields([Код] & "_" & [ФИО] & ".pdf"))

'               strFileName = strPath & "\" & CStr(.Fields("Код")) & _
                .Fields("ФИО") & Format(Now(), "\_yyyymmddhhnnss\.\p\d\f")

'               strFileName = strPath & "\" & CStr(.Fields("Код")) & _
                .Fields("Код") & Format(Now(), "\_yyyymmddhhnnss\.\p\d\f")

                Call PrintInvoice(.Fields("Код"), strFileName)
             .MoveNext
            Loop
        End With
    End If
End Sub

' Эта ветка тоже не захотела работать, использовал свою написанную ранее.
'Может это как то связано
Private Sub cmdPrintCurrInvoice_Click()
Dim strFileName As String
Const msoFileDialogSaveAs& = 2
    If Me.NewRecord Then Exit Sub
    If Me.Dirty Then Me.Dirty = False
   
strFileName = CurDir & "\" & [Код] & "_" & [ФИО] & ".pdf"
    With Application.FileDialog(msoFileDialogSaveAs)
        .AllowMultiSelect = False
        .InitialFileName = strFileName
        If .Show Then
           strFileName = .SelectedItems(1)
        End If
    End With
  Call Pri
 
'Ругается когда поменял "счетНар" на "Код", ну принципе она и не должна была работать с этим именем, но 
'"Код" это вообщем-то полный аналог, также ключ, также счётчик, так же число, чего ему надо не пойму. 
'К тому же "счетНар" это не имя поля, а имя столбца таблицы.
'А такой вот вопрос Акцесс 2007 знает оператор  ntInvoice(), потому как выделяет то он всю строчку

ntInvoice(Me.Код, strFileName)
End Sub

Private Sub кнКвит_Click()
Dim frm As Form
Set frm = New Form_Ф_QR_Платёжка
frm.ForQRCode
m_colForms.Add frm
frm.Visible = True
End Sub

...
Рейтинг: 0 / 0
05.12.2021, 20:53
    #40117561
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Немного начинаю понимать, что куда
Вот рабочаа строка
Код: vbnet
1.
               strFileName = strPath & "\" & CStr(.Fields("Код")) & "_" & .Fields("ФИО") & ".pdf"


С ней всё заработало, но......
Во первых весь изначальный геморрой был из за того, что если один раз запустил массовое создание ПДФ, то второй раз оно не запостится, надо перезагружать форму, а я перебирал варианты -(((
Во вторых пока разобрался со строчкой создания файла, подбирал лишнее, сделал оптимальное для меня.
И теперь самое интересное фильтр нельзя было убирать -)))
Код: vbnet
1.
2.
frm.Filter = "[Код]=" & lngId
frm.FilterOn = True


Он и есть счётчик -)))
Но здесь тоже не всё радужно, кто нибудь может объяснить почему она вырубается на пол пути (первый раз на 342 файлах, второй на 873, на третий 822) выдаёт ошибку:
Код: vbnet
1.
2.
Run-time error '3709':
Ключ поиска не найден ни в одной записи.


Хотя записей 1769 всего, помогите понять в чём дело.
...
Рейтинг: 0 / 0
06.12.2021, 07:14
    #40117641
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005

Код: vbnet
1.
2.
Run-time error '3709':
Ключ поиска не найден ни в одной записи.


Хотя записей 1769 всего, помогите понять в чём дело.

А глюкнула база(ну мне так кажется). Появляется в таблице одна (или несколько записей) которые ни удалить - ни изменить невозможно - выпадает такая ошибка. Мне сжать-восстановить базу помогало
...
Рейтинг: 0 / 0
06.12.2021, 08:43
    #40117648
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Serg197311,

Не помогло, сделала 883 квитанции и в ошибку ушла.
Ругается на:
Код: vbnet
1.
frm.Filter = "[Код]=" & lngId
...
Рейтинг: 0 / 0
06.12.2021, 09:08
    #40117656
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Думал , может памяти не хватает, оказалось нормально, пока делает платёжки вырастает на 1.3Гб, у меня 4 Гб мозгов, получается свободно ещё 1.4Гб
Есть ещё какие либо варианты???
...
Рейтинг: 0 / 0
06.12.2021, 10:06
    #40117665
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005

Ругается на:
Код: vbnet
1.
frm.Filter = "[Код]=" & lngId


Ну теперь руками поработать...
lngId - какое значение имеет в момент ошибки?
Запись с таким номером есть в таблице?
Если есть запиcь - можешь в ней что-нибудь прям в таблице руками поменять?
...
Рейтинг: 0 / 0
06.12.2021, 11:55
    #40117701
alecko
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005, попробуйте сделать названия файлов корректными
также может быть названия файлов совпадают (фио одинаковые)
...
Рейтинг: 0 / 0
06.12.2021, 12:01
    #40117702
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
alecko,

Это наврятли, постоянно останавливается в на разных файлах, примерно 865-890 промежуток, и в именах файлов номер договора и фамилия имя отчество полностью, даже если имя отчество совпадёт, то номера договоров уникальны, это счётчик.
...
Рейтинг: 0 / 0
06.12.2021, 12:12
    #40117707
uum
uum
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Wawan2005
С ней всё заработало, но......
Во первых весь изначальный геморрой был из за того, что если один раз запустил массовое создание ПДФ, то второй раз оно не запостится, надо перезагружать форму, а я перебирал варианты -(((
в начале процедуры Private Sub cmdPrintAllInvoices_Click() вставьте строку Me.RecordSource=Me.RecordSource.
А двойной клик по коду был для этого: https://www.cyberforum.ru/post15841129.html и в БД вряд ли конечно нужен. Вообще странно выглядит экспорт в PDF и сохранение каждый раз более 1700 квитанций после добавления 10-100 новых записей в БД.
...
Рейтинг: 0 / 0
06.12.2021, 12:29
    #40117712
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Serg197311,
Вот, что пишет.
...
Рейтинг: 0 / 0
06.12.2021, 12:30
    #40117714
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Сейчас на 883 файле выдало что-то новенькое
...
Рейтинг: 0 / 0
06.12.2021, 12:30
    #40117715
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Хотя памяти
...
Рейтинг: 0 / 0
06.12.2021, 12:32
    #40117716
Wawan2005
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
uum,

Так Вы и там по моей проблеме помогали?! -)))
...
Рейтинг: 0 / 0
06.12.2021, 12:33
    #40117717
Serg197311
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
Запись с таким номером физически в таблице есть?????
Изменить ее руками можешь??
я ж спрашивал уже!
От просмотрел!!
Ты в коде dim frm сделал,хорошо..
а кто set делать будет???
объект frm просмотри через add watch... empty небось
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Очень, очень, трудная задача, осилит не каждый, я не смог, помогите. / 25 сообщений из 53, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]