Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Панург
упрости
GenerateBMPToClipboard "Hello world!", 3, 5, 0&
так будет работать если использовать ansi-версию процедуры - GenerateBMPToClipboardA
21 ноя 21, 20:53    [22398785]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Панург,

Ругается на всю строчку
21 ноя 21, 21:14    [22398790]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Панург,

Ругается на оба варианта
21 ноя 21, 21:17    [22398791]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS, Панург
Не знаю, что я сделал, просто тупо перенёс ещё раз, и всё заработало-))))
Пример Eugene-LS рабочий на всё 100 % для 64-х битной системы,

а мой для 32-х битной
+
Private Const sLibPath$ = "c:\Temp\quricol32.dll"
Private Enum TErrorCorretion
    QualityLow
    QualityMedium
    QualityStandard
    QualityHigh
End Enum
 
Private Declare Sub GenerateBMP _
                Lib "c:\Temp\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:\Temp\quricol32.dll" _
                Alias "GenerateBMPToClipboardW" ( _
                ByVal Text As Long, _
                ByVal Margin As Long, _
                ByVal Size As Long, _
                ByVal Level As TErrorCorretion)
Private Sub cmdIncetrQRCod_Click()
    If Len(Me.txtQRCodTexт) = 0 Then
        MsgBox "Нет текста !!!", vbExclamation, "Внимание!"
        Exit Sub
    End If
                
    GenerateBMPToClipboard StrPtr(Me.П_Уважаем1), 3, 5, QualityLow
    Me.objQRCod.Action = acOLEPaste
                
End Sub
22 ноя 21, 00:07    [22398842]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
а мой для 32-х битной

Вот универсальное объявление:
Option Explicit

Private Enum TErrorCorretion
    QualityLow
    QualityMedium
    QualityStandard
    QualityHigh
End Enum

#If VBA7 Then 'For 64-bit office
    Private Declare PtrSafe Sub GenerateBMP _
                Lib "d:\Temp\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 "d:\Temp\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 "D:\Temp\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 "D:\Temp\quricol32.dll" _
                Alias "GenerateBMPToClipboardW" (ByVal Text As Long, ByVal Margin As Long, _
                ByVal Size As Long, ByVal Level As TErrorCorretion)
#End If
22 ноя 21, 05:35    [22398869]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Eugene-LS
Wawan2005
а мой для 32-х битной

Вот универсальное объявление:
...
нет
22 ноя 21, 07:43    [22398876]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Wawan2005
Ругается на всю строчку
Код это что, жена на кухне? На техническом форуме следует публиковать сообщение об ошибке или хотя бы номер.
22 ноя 21, 07:47    [22398877]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Wawan2005
Панург,

Ругается на оба варианта
Исправив вызов процедуры, ты, скорее всего, не изменил декларацию.
        Private Declare PtrSafe Sub GenerateBMPToClipboard _
            Lib "C:\Downloads\quricol64.dll" _
            Alias "GenerateBMPToClipboardW" ( _
            ByVal Text As String, _
            ByVal Margin As Long, _
            ByVal Size As Long, _
            ByVal Level As Long)


Сообщение было отредактировано: 22 ноя 21, 08:01
22 ноя 21, 07:58    [22398878]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Wawan2005
Пример Eugene-LS рабочий на всё 100 % для 64-х битной системы,
а мой для 32-х битной


Алилуя... я в самом начале тебе об этом говорил...

vmag
код и сами dll (судя по LongPtr и названиям dll) исключительно для 64 разряда,
LongPtr 32 разряда не понимает, там просто Long


Ну наверное же quricol64.dll и quricol32.dll не просто так обозваны по разному...
22 ноя 21, 13:10    [22399044]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

У меня VBA - 6.5-)))
22 ноя 21, 17:35    [22399240]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Панург,

Да я ничего не менял в декларации
22 ноя 21, 17:35    [22399242]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
vmag,

, ну может по этому и исправил (типа сам), то что читал ранее в башке отложилось вот и давай менять-)))
22 ноя 21, 17:37    [22399243]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
Eugene-LS, У меня VBA - 6.5-)))

Это я уже понял :)
Значит всё что ниже строки:
#Else 'For 32-bit office

это для вас.
22 ноя 21, 17:42    [22399247]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

не получается
ругается на " 'For 64-bit office" вероятно из за " ' " он зелёным выделил это, а всё остальное пометил красным,

Private Declare PtrSafe Sub GenerateBMP _
Lib "d:\Temp\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 "d:\Temp\quricol64.dll" _
Alias "GenerateBMPToClipboardW" (ByVal Text As LongPtr, ByVal Margin As Long, _
ByVal Size As Long, ByVal Level As TErrorCorretion)

до "#Else"
и получается он у меня сразу заругался на ветку 64 бита, а офис 32 бита
22 ноя 21, 17:45    [22399249]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Eugene-LS,

Убрал "PtrSafe" работает, но нет 64 офиса для проверки
22 ноя 21, 17:56    [22399255]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Wawan2005
Панург,

Да я ничего не менял в декларации
это писец...
22 ноя 21, 17:58    [22399258]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Панург
это писец...

полный...
был бы он электриком, наверное уже бы и погиб...
22 ноя 21, 19:46    [22399337]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
ругается на " 'For 64-bit office" вероятно из за " ' " он зелёным выделил это, а всё остальное пометил красным,
и получается он у меня сразу заругался на ветку 64 бита, а офис 32 бита

Так и должно быть!
У меня например точно наоборот и работает, вы просто код пока не читаете ...

К сообщению приложен файл. Размер - 34Kb


Сообщение было отредактировано: 22 ноя 21, 20:07
22 ноя 21, 20:06    [22399351]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
vmag
полный...
был бы он электриком, наверное уже бы и погиб...

Я радио инженер -))
22 ноя 21, 20:28    [22399377]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Eugene-LS
...Так и должно быть!...
вопрос из зала - там больше никакой константы условной компиляции не нужно? для какого-нибудь другого варианта сочетания...
22 ноя 21, 20:37    [22399388]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Панург
вопрос из зала - там больше никакой константы условной компиляции не нужно?

Да адаптация краткая и НЕ ПОЛНАЯ (вы уже намекали выше), но суровая практика показывает что уже и этого достаточно (в большинстве случаев).

Если не лень - сделайте пожалуйста полную, я знаю - вы точно умеете.
22 ноя 21, 20:59    [22399412]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Панург
вопрос из зала - там больше никакой константы условной компиляции не нужно? для какого-нибудь другого варианта сочетания...


а там сочетаний мало... ноги растут отсюда:
- dll для ОС 64 ни под каким соусом не взлетит на 32 ОС
- dll для ОС 32 на ОС 64 взлетит с вероятностью 50/50...

По этому вытекает следствие - дабы не париться с выходной коробкой приложения, компилируем этот общий код на двух акцессах 32 и 64 отдельно и делаем две инсталляхи 32 и 64...
В дистрибутив для офиса 32 включаем dll 32
В дистрибутив для офиса 64 включаем dll 64
100 % всё будет работать если:
- коробка 32 ставится на ОС 32 и офис 32
- коробка 64 ставится на ОС 64 и офис 64
При установке офиса 32 на ОС 64, могут быть нюансы (зависит от того, кто делал dll)
У меня например есть пару dll 32 для вывода в PDF, но они ни в какой конфигурации не работают под ОС 64...
Слава Богу в А2010 эта проблема уже не существует (есть штатный вывод в PDF)
22 ноя 21, 21:08    [22399419]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
vmag
а там сочетаний мало... ноги растут отсюда:
не нужно теорий. В данном случае есть 2 библиотеки 32 и 64
Точно библиотека 64 не будет работать на Access 201x 32.
сочетание
#If VBA7 Then 'For 64-bit office
пустит компиляцию именно по этой ветке в озвученном выше сочетании. И скопировав код ТС через некоторое время придёт с заявлением
Wawan2005
Ругается на всю строчку
ведь он не
Панург
это писец...
а
Wawan2005
Я радио инженер -))
22 ноя 21, 21:47    [22399444]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Wawan2005
Я радио инженер -))

Вот вам ещё примерчик ...
Библиотечки подхватываются из папки приложения автоматом!
+ добавлено немного адаптации ... (но не сполна)
Проверено:
- Win10x86 MSO 2010x86
- Win10x64 MSO 2021x64
Работает ...

Сообщение было отредактировано: 22 ноя 21, 21:57
22 ноя 21, 21:55    [22399449]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Панург
не нужно теорий.

Это практика...
Однажды я уперся в то, что у клиента стоял офис 64 (очень удаленный) и мой acde 32 там не стартовал...
Исходник под акцесс 64 открывался но не компилился из-за кучи кернелов 32 и вот когда я его переделал описанным выше образом, то смог закомпилить acde на 64 разряда...
Ну и естественно после этого acdb и под 32 и под 64 работает без проблем
22 ноя 21, 22:21    [22399461]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить