powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите, адаптировать код из VBA Excel в VBA Access
25 сообщений из 126, страница 4 из 6
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114257
uum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
uum
Гость
Wawan2005
...Подредактируйте пожалуйста, я уже закипаю-((

;) предохранительный клапан найдете в той теме, где Вы начинали - https://www.cyberforum.ru/post15871276.html
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114260
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
uum,

У меня офис 2007, выше боюсь наши (бюджетные) компы не потянут.
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114345
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uum, можно и так
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114346
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
одним, к сожалению, не влезло
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114349
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
uum, можно и так
за основу взята БД по ссылке выше 22399813
можно открыть несколько форм квитанций (для каждой записи) - у каждой свой код. Не делал ограничения на количество квитанций (они естественно одинаковые) для одной записи.

Не тестировалось на разных версиях. Делалось на Access 2010 32
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114353
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ таскать ничего не нужно, всё внутри, библиотека какая нужна та и выгрузится.
Не используется ни буфер, ни внешние растры.
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114379
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

База QRкодКвит_2.1 вообще не открывается 2007, пишет - "нераспознанный формат базы данных", хотя та по ссылке хотя бы открывалась, не работала правда, ругалась на несовместимость, но распознавалась-)))
А можно её сохранить как для 2007 ????
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114385
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
+ таскать ничего не нужно, всё внутри, библиотека какая нужна та и выгрузится.
Не используется ни буфер, ни внешние растры.


Пример офигительный, всем примерам - пример!
На А2010(32) + W10(64) полет нормальный
На А2010(64) + W10(64) всё работает, ошибок нет, но QR кода нет, пустота, по двойному клику тоже
и там и там выковыривается нужная библиотека...
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114398
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут упрощенная версия , которая работает от 2002-2003 и выше, с пофиг какой разрядностью...
прописываем пути 4 раза или допиливаем сами как у Панурга...
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114405
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
На А2010(64) + W10(64) всё работает, ошибок нет, но QR кода нет, пустота
это самое главное и было. Но у меня нет А2010(64), потому увы...
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114522
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.
Option Compare Database
Option Explicit
Public ZB1 As String, ZB9 As String, ZU1 As String, ZU9 As String, ZBU1 As String, ZBU9 As String, ZI1 As String, ZI9 As String, _
       ZUI1 As String, ZUI9 As String, B1 As String, qwer1, qwer2, B2 As String, Summ_pr As String, _
       stCriteria As String
Private Const sLibPath$ = "c:\Windows\quricol32.dll"
Private Enum TErrorCorretion
    QualityLow
    QualityMedium
    QualityStandard
    QualityHigh
End Enum

#If VBA7 Then
    Private Declare PtrSafe Sub GenerateBMP _
                Lib "c:\Windows\quricol64.dll" _
                Alias "GenerateBMPW" (ByVal FileName As LongPtr, ByVal Text As LongPtr, _
                ByVal Margin As Long, ByVal Size As Long, ByVal Level As TErrorCorretion)

    Private Declare PtrSafe Sub GenerateBMPToClipboard _
                Lib "c:\Windows\quricol64.dll" _
                Alias "GenerateBMPToClipboardW" (ByVal Text As LongPtr, ByVal Margin As Long, _
                ByVal Size As Long, ByVal Level As TErrorCorretion)
#Else 'For 32-bit office
    Private Declare Sub GenerateBMP _
                Lib "c:\Windows\quricol32.dll" _
                Alias "GenerateBMPW" (ByVal FileName As Long, ByVal Text As Long, _
                ByVal Margin As Long, ByVal Size As Long, ByVal Level As TErrorCorretion)
                
    Private Declare Sub GenerateBMPToClipboard _
                Lib "c:\Windows\quricol32.dll" _
                Alias "GenerateBMPToClipboardW" (ByVal Text As Long, ByVal Margin As Long, _
                ByVal Size As Long, ByVal Level As TErrorCorretion)
#End If
Private Sub cmdIncetrQRCod_Click()
    GenerateBMPToClipboard StrPtr(Me.П_Уважаем1), 3, 5, QualityLow
    Me.objQRCod.Action = acOLEPaste
End Sub
Private Sub Кн_ПечатьPDF_Click()
Dim stDocName As String, path
On Error GoTo Err_
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 'Не знаю, что делает эта команда
    stCriteria = [Код] & "_" & [ФИО]
    DoCmd.OpenForm "Ф_QR_Платёжка", acViewPreview, , stCriteria 'Вывод в отчет закомментарен
    path = CurrentProject.path & "КвитанцииPDF\" & stCriteria & ".pdf"   'Путь к папке размещения
    ExportFormToPDF path & stCriteria & ".pdf"           'Выполнить экспорт в пдф
    DoCmd.OutputTo acOutputForm, acFormatPDF, path  ' acFormatPDF   "Ф_QR_Платёжка"
Exit_:
    Exit Sub
Err_:
    MsgBox Err.Description
    Resume Exit_
End Sub



Ветка 64 бит выделяется красным, хотя всё работает, но я не об этом проблема с созданием файла пдф, помогите исправить, где я накосячил.
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40114988
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.
Option Compare Database
Option Explicit
Public ZB1 As String, ZB9 As String, ZU1 As String, ZU9 As String, ZBU1 As String, ZBU9 As String, ZI1 As String, ZI9 As String, _
       ZUI1 As String, ZUI9 As String, B1 As String, qwer1, qwer2, B2 As String, Summ_pr As String, _
       stCriteria As String
Private Enum TErrorCorretion
    QualityLow
    QualityMedium
    QualityStandard
    QualityHigh
End Enum
#If VBA7 Then
    Private Declare PtrSafe Sub GenerateBMP _
                Lib "c:\Windows\quricol64.dll" _
                Alias "GenerateBMPW" (ByVal FileName As LongPtr, ByVal Text As LongPtr, _
                ByVal Margin As Long, ByVal Size As Long, ByVal Level As TErrorCorretion)

    Private Declare PtrSafe Sub GenerateBMPToClipboard _
                Lib "c:\Windows\quricol64.dll" _
                Alias "GenerateBMPToClipboardW" (ByVal Text As LongPtr, ByVal Margin As Long, _
                ByVal Size As Long, ByVal Level As TErrorCorretion)
#Else 'For 32-bit office
    Private Declare Sub GenerateBMP _
                Lib "c:\Windows\quricol32.dll" _
                Alias "GenerateBMPW" (ByVal FileName As Long, ByVal Text As Long, _
                ByVal Margin As Long, ByVal Size As Long, ByVal Level As TErrorCorretion)
                
    Private Declare Sub GenerateBMPToClipboard _
                Lib "c:\Windows\quricol32.dll" _
                Alias "GenerateBMPToClipboardW" (ByVal Text As Long, ByVal Margin As Long, _
                ByVal Size As Long, ByVal Level As TErrorCorretion)
#End If
Private Sub cmdIncetrQRCod_Click()
    GenerateBMPToClipboard StrPtr(Me.П_Уважаем1), 3, 5, QualityStandard
    Me.objQRCod.Action = acOLEPaste
End Sub
Private Sub Кн_ПечатьPDF_Click()
Dim stDocName As String, path
On Error GoTo Err_
    DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 'Не знаю, что делает эта команда
    DoCmd.OutputTo acOutputForm, "Ф_QR_Платёжка", acFormatPDF, _
    CurrentProject.path & "\КвитанцииPDF\" & [Код] & "_" & [ФИО] & ".pdf", False
Exit_:
    Exit Sub
Err_:
    MsgBox Err.Description
    Resume Exit_
End Sub

...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115001
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005
Вот конечный результат для единичной распечатки квитанциии
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115021
Wawan2005
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

пока да, для массовой печати надо думать, и просить, гуру, о помощи -)
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115053
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wawan2005,

Код: vbnet
1.
#If VBA7 Then 


вообще-то определяет версию VBA...
VBA7 появилось начиная с версии акцесса 2010
Код: vbnet
1.
#If Win64 Then 


Определяет адаптацию VBA к 64 битным системам...
Примеры можно посмотреть тут
Так что не особо доверяй комментариям в чужом коде...
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115101
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Примеры можно посмотреть тут
очень так себе ссылка - херни там понаворочено. Всё это нужно смотреть прямо на сайте-источнике . Кстати, ссылку я уже давал раньше 22399491 .

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
#If Win64 Then
    #If VBA7 Then    ' Windows x64, Office 2010
        Declare PtrSafe Function ...
 'недостижимый код
    #Else    ' Windows x64,Office 2003-2007
        Declare Function...
    #End If
#Else
...

...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115148
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Почему недостижимый код?
Туда будет залетать, например, офис 2007 64 бита:
Win64 - Да (вход в первый If)
VBA7 - Нет (вход в Else второго If)
Я ту ссылку специально привел, чтоб показать откуда растут ноги трабла из этого топика и его причину...
- Игнорирование Win64 и опускание до VBA7 допустимо только для встроенных 32-разрядных API функций...
- В данном топике речь о вызове внешних 64-разрядных dll, а не API, по этому без использования Win64 никак нельзя обойтись...
Игнорирование Win64 и опускание до только VBA7 в данном случае приведет к:
1. 64 разрядная dll будет вызываться в любом офисе старше 2007, даже в 32 разрядном, хотя и не будет в нем работать.
2. 32 разрядная библиотека будет вызываться в любом офисе младше 2010, даже в 64 разрядном и тоже всё туманно...
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115165
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Туда будет залетать, например, офис 2007 64 бита:
глобальные изменения произошли с 2010. Таким образом хватит
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
#IF VBA7 then
    'тут декларация одинаковая для 32-64 начиная с 2010
    #If WIN64 then
        'тут декларация специфичная для 64 начиная с 2010
    #Else
        'тут декларация специфичная для 32 начиная с 2010
    #End If
#Else
    'тут декларация одинаковая для всех с 2000 до 2007 включительно
#End If



читайте документацию и ничего не нужно придумывать
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115166
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
вызове внешних 64-разрядных dll, а не API
а какая разница?
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115168
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
Я ту ссылку специально привел,
а по той ссылке очень "удивится" Access 2007 когда обнаружит тип LongLong
хотя он туда конечно никогда не попадёт

vmag
Туда будет залетать, например, офис 2007 64 бита:
Win64 - Да (вход в первый If)

https://docs.microsoft.com/ru-ru/office/vba/language/concepts/getting-started/64-bit-visual-basic-for-applications-overview Написание кода, который работает как в Office 2010 (32-разрядный или 64-разрядный пакет), так и в предыдущих версиях Office
Чтобы написать код, работающий как в новой, так и в старой версиях Office, можно использовать комбинацию новых условных констант компилятора VBA7 и Win64 ...
Новых, Карл! Access 2007 об этих константах ничего не знает
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115175
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
читайте документацию и ничего не нужно придумывать

хорошо, не будем ничего придумывать...
1. Есть офис 2007 32 бита и есть офис 2007 64 бита и есть внешние dll 32 бита и 64 бита, которые нужно дергать из этих офисов соответственно...
2. Судя по вашему коду мы подаем сразу в любом случае с этими dll в Else первого IF ибо 2007 это не VBA7 и чо?
еще раз лепим #If WIN64 then ?
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115176
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, я даже не помню есть ли Access 2007 х64. Если и есть, то это такая же редкость, как WinXP x64
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115177
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag
еще раз лепим #If WIN64 then ?
нет, читай внимательней 22401148
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115181
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург
vmag
вызове внешних 64-разрядных dll, а не API
а какая разница?


разница в том, что адаптации API под 64 достаточно перед Function поставить PtrSafe, и если есть в конце As Long, то заменить его тупо на As LongPtr и всё взлетит ибо это одна и та же dll...
а внешние dll 32 и 64 это разные файлы и чаще всего по разному обзываются...
...
Рейтинг: 0 / 0
Помогите, адаптировать код из VBA Excel в VBA Access
    #40115185
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург,

Ладно, спор затянулся, мы уже и так почти всех запутали...
- У меня лично с этим вопросом проблем нет, кроме - одной приходится таскать два дистрибутива (под 32 и 64)
- У тебя похоже тоже проблем нет (как и офиса 64)
...
Рейтинг: 0 / 0
25 сообщений из 126, страница 4 из 6
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите, адаптировать код из VBA Excel в VBA Access
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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