- Local time
- Yesterday, 20:53
- Joined
- Oct 29, 2018
- Messages
- 22,113
Good morning. Looks like @isladogs already beat me to it. Good luck!Who is that someone you think you know?
Good morning. Looks like @isladogs already beat me to it. Good luck!Who is that someone you think you know?
Thank you, I'll see what I can get done with that converter. Back to work.The links I gave should provide the 64-bit version of each API declaration & type statement.
The author of the Windows API Viewer / Converter tool has kindly allowed me to host his utility - it is now available for free via my website:
32 to 64-bit Conversion
This article provides links to various web pages & utilities to assist with converting VBA code for use in 64-bit applications.www.isladogs.co.uk
If the conversion is that important to you, I suggest you pay Peter Cole to do the conversion for you - his website is https://thememydatabase.co.uk.
However, although Stephen Lebans' website contains lots of very clever code, I would also check whether the functionality in his PictureBox utility is now available in Access itself or in other 64-bit compatible code
Some stuff you cannot, some you can. But what I'm running into crashes either way, although of course, I cannot tell if it might be crashing differently when I step it. When I step it, the crash comes at the point of calling the timer routine, and it crashes the same way regardless of whether I actually call the routine or not - Access just shuts down.I haven't looked at the Leban's code, but it uses proper subclassing (e.g. GetWindowProc() ) then you can not have the VBA editor open while the code runs. It will always crash Access.
1. Okay, I didn't realize that had been changed, but it's still not many for my purposes in this app. There are 679 squares in the grid that can potentially contain a symbol, and some instances will have most or maybe even all of them filled. And that is even before the lines to form the grid, the numbers around the grid, and some other miscellaneous graphic clutter. I could not even create two such images before hitting the limit.For what its worth:
1. The quoted limit of 754 controls has long since been out of date - depending on your version & bitness it is now well over 1000. See my article:
Access Specification issues
Microsoft publishes a list of Access specifications and limits. Most of the information is correct. This article discusses some specification items that are misleading, out-of-date or inaccuratewww.isladogs.co.uk
2. Compact & repair does not reset the lifetime limit of controls on a form / report
Hi @xavier.batlle Would you happen to have a 64-bit version of Leban's API calendar? Thanks!Here it's the vba7/64 bit version of the PictureBox database by Lebans. I hope it would be useful/helpful.
Jesus - WHERE did you get this? I'm going to try this right away. If it works, I am forever in your debt. Thank you.Here it's the vba7/64 bit version of the PictureBox database by Lebans. I hope it would be useful/helpful.
Well, I tried the complete package and it works perfectly on my machine, so now I need to get to work porting the code into my app. Maybe I'll even figure out along the way exactly what the problem is with my current setup.Here it's the vba7/64 bit version of the PictureBox database by Lebans. I hope it would be useful/helpful.
I can tell you that Xavier (Xevi) did the conversion himself using Peter Cole's conversion utility from my link as a guide.Jesus - WHERE did you get this? I'm going to try this right away. If it works, I am forever in your debt. Thank you.
Just tested this statement. It works perfectly with the VBE openI haven't looked at the Leban's code, but it uses proper subclassing (e.g. GetWindowProc() ) then you can not have the VBA editor open while the code runs. It will always crash Access.
Hi @theDBguy,Hi @xavier.batlle Would you happen to have a 64-bit version of Leban's API calendar? Thanks!
Well, then he's better at this than I am. I looked at all those things, and tried all sorts of things, and failed. It's hard to make much progress when you don't really understand what the calls do, what the exact problem is, and every failed attempt crashes the app.I can tell you that Xavier (Xevi) did the conversion himself using Peter Cole's conversion utility from my link as a guide.
I am aware of at least one big issue that he needed to overcome in doing the conversion.
As there are so many APIs in the code, I expect it took him a long time to do
However, you could have done this yourself from the links I provided last summer.
Thanks for checking. Please keep me in mind if you ever convert it in the future. Cheers!Hi @theDBguy,
No unfortunately I don't have a 64-bit version of Leban's API calendar.
Ok, perhaps I'll try to convert it, but as you know it's not a piece of cake! ;-)Thanks for checking. Please keep me in mind if you ever convert it in the future. Cheers!
My statement was missing an 'if'Just tested this statement. It works perfectly with the VBE open
but if it uses proper subclassing (e.g. GetWindowProc() ) then you can not have the VBA editor open while the code runs. It will always crash Access.
I got everything working, tested it all on every machine I have available, decompiling and recompiling on every machine, and testing that freshly compiled version on every other machine. All worked perfectly everywhere, so I installed it on the customer's machine and returned it to him. Customer is stoked and so am I. One more database in the field at another customer that uses this code, and I will now convert that one as well.This is a new version of the PictureBox converted to x64.
In the first version there were two buttons that didn't work because they depend on a call (VarPtrArray) used in VB5 (msvbvm50.dll), now I've changed that reference for another one than comes with VBA7. (VBE7.dll)
Now, I think the sample is fully functional.
You are welcome!In any case, I remain in your debt. Once again, many, many thanks.
I don't think we see it! ;-)I wonder if this will repeat down the road, when processors and operating systems start switching from that archaic 64-bit d
esign to the stylish new 128-bit versions. Will there be a LongLongPtr, or a QuadLongPtr data type to make everyone's life miserable all over again?