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

Откуда: РФ
Сообщений: 63
Eugene-LS
Вот вам ещё примерчик ...

Что-то с ходу не ушло ... Повторил

...
Библиотечки ложить в папку где приложение ...
Подхватывает.

К сообщению приложен файл (Generate QR-code v05.rar - 32Kb) cкачать

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

Откуда: MP
Сообщений: 4229
vmag
Это практика...


мля...
#If Win64 Then

Естественно... какой нахрен #If VBA7

Панург, я тебя понимаю...
Лучшие программисты среди паяльников...
Лучшие паяльники среди программистов...
22 ноя 21, 22:31    [22399465]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
vmag,
Не прокатит надо именно знать какой офис, у мня что на работе что дома винда 64 а офисы 32
22 ноя 21, 23:19    [22399472]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Wawan2005
vmag,
Не прокатит надо именно знать какой офис, у мня что на работе что дома винда 64 а офисы 32
не прокатит это когда не читают
https://docs.microsoft.com/ru-ru/office/vba/language/concepts/getting-started/64-bit-visual-basic-for-applications-overview
Условная константа компиляции Win64 применяется, чтобы определить, какая версия (32-разрядная или 64-разрядная) Office функционирует на компьютере.
23 ноя 21, 04:29    [22399491]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

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

Библиотечки ложить класть в папку где приложение ...
Подхватывает.

как вариант...
+
Option Compare Database
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPtr
    Private Declare PtrSafe Function FreeLibrary Lib "kernel32" (ByVal hLibModule As LongPtr) As Long
    Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
    Private Declare PtrSafe Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As LongPtr, ByVal hWnd As LongPtr, ByVal Msg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr
#Else
    Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
    Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
    Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
#End If

#If Win64 Then
    Private Const LIBRARY_NAME$ = "quricol64.dll"
#Else
    Private Const LIBRARY_NAME$ = "quricol32.dll"
#End If
                
Private Sub cmdIncetrQRCod_Click()
#If VBA7 Then
Dim hLibrary As LongPtr, ProcAddress As LongPtr
Dim retValue As LongPtr
#Else
Dim hLibrary As Long, ProcAddress As Long
Dim retValue As Long
#End If

    If Len(Nz(Me.txtQRCodTexт, vbNullString)) = 0 Then Exit Sub

hLibrary = LoadLibrary(CurrentProject.Path & "\" & LIBRARY_NAME)

ProcAddress = GetProcAddress(hLibrary, "GenerateBMPToClipboardW")
    If ProcAddress = 0 Then
        MsgBox "Oooppss!"
    Else
        retValue = CallWindowProc(ProcAddress, StrPtr(Me.txtQRCodTexт), ByVal 3&, ByVal 5&, ByVal 0&)
        Me.objQRCod.Action = acOLEPaste
    End If
FreeLibrary hLibrary
End Sub
23 ноя 21, 05:39    [22399495]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Панург
как вариант...

Лихо!
Красиво!

Поначалу, и я пошел по пути "LoadLibrary" ...
Случайно наткнулся на "буржуинский" пример с "SetEnvironmentVariable" ... потестил ...
И принял "на вооружение" :)
23 ноя 21, 07:35    [22399500]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Eugene-LS
Библиотечки ложить класть в папку где приложение ..

... :)
Что может лежать - то ЛОЖИТЬ (положить)
Что может складываться - то КЛАСТЬ (покласть)
... файл может "лежать" в папке приложения ...
23 ноя 21, 07:56    [22399504]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

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

Лихо!
Красиво!
можно упростить (не пользуюсь я всем этим, да и VBA практически не пользуюсь)
+
Option Compare Database
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As LongPtr
    Private Declare PtrSafe Function FreeLibrary Lib "kernel32" (ByVal hLibModule As LongPtr) As Long
#Else
    Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
    Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
#End If

#If Win64 Then
    Private Const LIBRARY_NAME$ = "quricol64.dll"
    
    Private Declare PtrSafe Sub GenerateBMPToClipboard _
        Lib "quricol64.dll" _
        Alias "GenerateBMPToClipboardW" ( _
        ByVal Text As String, _
        ByVal Margin As Long, _
        ByVal Size As Long, _
        ByVal Level As Long)
#Else
    Private Const LIBRARY_NAME$ = "quricol32.dll"
    
    Private Declare Sub GenerateBMPToClipboard _
        Lib "quricol32.dll" _
        Alias "GenerateBMPToClipboardW" ( _
        ByVal Text As String, _
        ByVal Margin As Long, _
        ByVal Size As Long, _
        ByVal Level As Long)
#End If
          
Private Sub cmdIncetrQRCod_Click()
#If VBA7 Then
Dim hLibrary As LongPtr
#Else
Dim hLibrary As Long
#End If

    If Len(Nz(Me.txtQRCodTexт, vbNullString)) = 0 Then Me.objQRCod.Value = Null: Exit Sub

hLibrary = LoadLibrary(CurrentProject.Path & "\" & LIBRARY_NAME)
    If hLibrary = 0 Then
        MsgBox "Oooppss!"
    Else
        GenerateBMPToClipboard StrConv(Me.txtQRCodTexт, vbUnicode), 3, 5, 0&
        Me.objQRCod.Action = acOLEPaste
    End If
FreeLibrary hLibrary
End Sub


Сообщение было отредактировано: 23 ноя 21, 08:18
23 ноя 21, 08:09    [22399505]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Eugene-LS
Eugene-LS
Библиотечки ложить класть в папку где приложение ..

... :)
Что может лежать - то ЛОЖИТЬ (положить)
Что может складываться - то КЛАСТЬ (покласть)
... файл может "лежать" в папке приложения ...
и тем не менее...
23 ноя 21, 08:09    [22399506]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Панург
и тем не менее...

НА Столе:
- Воробей - Сидит
- Стакан - Стоит
- Ложка - Лежит (не "покладена")

В ящике:
- Воробей - Лежит (дохлый)
- Стакан - Лежит
- Ложка - Лежит (не "покладена")

Я в ящик КЛАДУ воробья, стакан и ложку, пусть там ЛЕЖАТ ...
...
И не пудрите мне мозг пожалуйста! :)
23 ноя 21, 09:28    [22399521]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Eugene-LS, Ложить – просторечие. В русском литературном языке есть только глагол класть.
Верно: класть, но положить.
Eugene-LS
Я в ящик КЛАДУ
я указал тоже самое

Сообщение было отредактировано: 23 ноя 21, 10:12
23 ноя 21, 10:04    [22399537]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Панург
Eugene-LS, Ложить – просторечие.

Или устоявшееся норма ...

Говорят и пишут:
"уЛОЖИТЬ ребёнка спать" но не "уКласть ..."

Не доводите придуманные немцами и датчанами (в 18-м веке) правила "русского" языка до абсурда ....
23 ноя 21, 10:20    [22399542]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Eugene-LS
Говорят и пишут:
"уЛОЖИТЬ ребёнка спать" но не "уКласть ..."
т.е. не видишь разницы между "уложить" и "ложить"?
мда...
на этом, думаю, тема исчерпана.
23 ноя 21, 11:59    [22399585]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Eugene-LS
Member

Откуда: РФ
Сообщений: 63
Панург
на этом, думаю, тема исчерпана.

Очень на это надеюсь! ... :)
...
[url=Великий и могучий Русский язык./Joke.TV]https://www.youtube.com/watch?v=UYG92CxlhVg[/url]

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

Откуда: MP
Сообщений: 4229
Eugene-LS,

Народ...
- когда вставляете ссылку, то её нужно вставлять после url=... а не пихать в url текст...
- текст нужно вставлять между скобками ]тут текст[/url]
- так нужно делать для всего, кроме ютуба ибо для ютуба так иногда может не сработать
Для ютуба:
- Набрать текст, нажать Enter
- Вставить ссылку из буфера как есть и нажать Enter
- Отправить сообщение
Потренироваться всегда можно в ветке Test и не только по этому поводу...
23 ноя 21, 14:49    [22399694]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
vmag
Member

Откуда: MP
Сообщений: 4229
Великий и могучий Русский язык./Joke.TV

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

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
vmag
Для ютуба:
есть специальный тэг

К сообщению приложен файл. Размер - 16Kb
23 ноя 21, 15:09    [22399712]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
vmag
Member

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

Лет 5 назад кто-то из модераторов сообщил, что sql адаптировали под ютуб типа голая ссылка + enter, так мне больше ничего и не нужно...
Стек уже переполнен, всунешь в башку новую хрень, с другой стороны выпадет кака я то функция...
наверно уже и выпала с твоей подачи, пока не знаю какая...
:)
23 ноя 21, 16:07    [22399750]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
vmag
...Стек уже переполнен, всунешь в башку новую хрень, с другой стороны выпадет кака я то функция...
это очередь - FIFO
Пробочку?
23 ноя 21, 16:54    [22399781]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
Обращение в продолжении темы облагораживания квитанции
Есть код:

+
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


Вроде взял рабочий вариант, а опять одни проблемы (походу просто с аргументами)
Ругается на "ExportFormToPDF"
И ещё один момент, если папка КвитанцииPDF не существует, при первом создании файла она создастся???
Подредактируйте пожалуйста, я уже закипаю-((

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

Откуда: Волгоград
Сообщений: 466
И второй момент.

+
Public Function OfficeBitness()
    Dim Excel
    Set Excel = CreateObject("Excel.Application")
    Excel.Visible = False
    If InStr(Excel.OperatingSystem, "64") > 0 Then
        OfficeBitness = 64
    Else
        OfficeBitness = 32
    End If
    Excel.Quit
    Set Excel = Nothing
End Function


Проверяет какая битность Екселя, всё работает, проверил, а такая же хрень для Акцесса есть?
23 ноя 21, 17:09    [22399792]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

Откуда: настоящему индейцу завсегда везде ништяк
Сообщений: 5361
Wawan2005
...Проверяет какая битность Екселя...
Зачем?
23 ноя 21, 17:12    [22399795]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Wawan2005
Member

Откуда: Волгоград
Сообщений: 466
[quote Eugene-LS#22399680]
Панург
на этом, думаю, тема исчерпана.

Очень на это надеюсь! ... :)
...

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

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

так я и прошу адаптировать под Акцесс, а то Ваш код ППц объёмный
23 ноя 21, 17:15    [22399798]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, адаптировать код из VBA Excel в VBA Access  [new]
Панург
Member

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

так я и прошу адаптировать под Акцесс, а то Ваш код ППц объёмный
ты не пробовал всё же почитать? хотя бы по ссылке.
23 ноя 21, 17:18    [22399800]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
Все форумы / Microsoft Access Ответить