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

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

прям как в сказке... так есть хочется, что аж переночевать негде...
...
Рейтинг: 0 / 0
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #40116902
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
В очередной раз столкнулся с не решимой нерешаемой (неразрешимой), для меня, задачей.
...
Рейтинг: 0 / 0
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #40116903
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #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
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #40116918
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

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

Фмык, понятно, итак фактически готовый результат предоставили, правда мне теперь ещё и таблицы надо будет перестроить (так как Ваш вариант более удобный, практичный и не ёмкий), но это мелочи, это только улучшит её.
Спасибо ещё раз за помощь!
...
Рейтинг: 0 / 0
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #40117134
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
так как Ваш вариант
он не весь мой, он сделан на основе примера 22402408
...
Рейтинг: 0 / 0
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #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
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #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
Очень, очень, трудная задача, осилит не каждый, я не смог, помогите.
    #40117641
Serg197311
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005

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


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

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

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

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


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

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

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


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