Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kod koji radi i u 32-bitnom i 64-bitnom Office-u

[es] :: Access :: Kod koji radi i u 32-bitnom i 64-bitnom Office-u

[ Pregleda: 1827 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

babayaro961
nezaposlen

Član broj: 202119
Poruke: 21
*.dynamic.sbb.rs.



+2 Profil

icon Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 09:13 - pre 61 meseci
Imam bazu koja je rađena u 32-bitnom MS Office-u 2010 a sada koristim 64-bitni MS Office 2016. Prilikom otvaranja pojedinih formi javlja mi se sledeći problem:
"Compile error:
The code in this project must be updated for use in 64-bit systems. Please review and update Declare statements and then mark them with the PtrSafe atribut."

Deklaracija je sledeća:

Option Compare Database
Option Explicit

'Option Compare Database
'Option Explicit

Declare Function wu_FindWindow Lib "User32" Alias "FindWindowA" (ByVal sImeKlase As String, ByVal hImeProzora As Long) As Integer
Declare Sub wu_setWindowText Lib "User32" Alias "SetWindowTextA" (ByVal hWin As Integer, ByVal sTekst As String)
Dim naziv, Naslov, poruka As String
Dim DgDef As Integer
Dim Odgovor As Variant
Global PathPodataka, NazivAplikacije, NazivBazePodataka, IsServer, SifraKorisnika As Variant
Global NaslovnaPoruka As String

Šta je potrebno izmeniti u njoj da bi baza radila i u 32-bitnom i u 64-bitnom sistemu?
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 10:46 - pre 61 meseci
Mislim da ce ti to proci samo treba da uradis sto ti kaze... fazon je sto koristis C f-je pa tako moras i to da uradis.
 
Odgovor na temu

Brodoplovac
Beograd

Član broj: 171299
Poruke: 838
*.beorol.rs.



+166 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 11:44 - pre 61 meseci
Ovo
Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Izmeni u ovo:
Private Declare PtrSafe Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr

To ti je rešenje za prvu deklaraciju.
Za drugu deklaraciju ne mogu da nađem gotovo rešenje na netu.

Probaj malo da izvrtiš tu drugu deklaraciju dok ne dobiješ pravi oblik koristeći ova pravila:
https://docs.microsoft.com/en-...asic-for-applications-overview
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
109.72.51.23



+1064 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 12:22 - pre 61 meseci
Ako mu je Integer 64 bitan onda samo da doda PtrSafe i nista vise.
 
Odgovor na temu

bokinet

Član broj: 29844
Poruke: 574



+50 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 13:32 - pre 61 meseci
Code:


#if Vba7 then 
'  Code is running in the new VBA7 editor 
     #if Win64 then 
     '  Code is running in 64-bit version of Microsoft Office 
     #else 
     '  Code is running in 32-bit version of Microsoft Office 
     #end if 
#else 
' Code is running in VBA version 6 or earlier 
#end if 
 
#If Vba7 Then 
Declare PtrSafe Sub... 
#Else 
Declare Sub... 
#EndIf 



More about can be found on:
64-bit Visual Basic for Applications overview

[Ovu poruku je menjao bokinet dana 24.02.2019. u 14:52 GMT+1]
 
Odgovor na temu

babayaro961
nezaposlen

Član broj: 202119
Poruke: 21
*.dynamic.sbb.rs.



+2 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 15:24 - pre 61 meseci
Drugari,

Hvala na brzim odgovorima.

Ovo sam već probao da izmenim na ovaj način a u skladu sa uputstvima koja ste mi i vi poslali ali opet ne funkcioniše:

Declare PtrFunction wu_FindWindow Lib "User32" Alias "FindWindowA" (ByVal sImeKlase As String, ByVal hImeProzora As LongPtr) As Integer
Declare Sub wu_setWindowText Lib "User32" Alias "SetWindowTextA" (ByVal hWin As Integer, ByVal sTekst As String).

Mislim, već sam ja to bio proguglao, ne bih se obraćao ovako da to nisam prethodno uradio, ali moja pamet i znanje dosežu samo do ovoga što sam predstavio. Evo, probao sam sad i da stavim samo "PtrFunction i ništa više", ali opet nema zadovoljavajućeg rezultata.

E, sad, Bokinet, video sam i ovo ponuđeno rešenje, ali kad mi ovo gore nije uspelo tek ne znam šta tek sa ovim da radim, posebno što ovde prva deklaracija počinje sa "Declare PtrSafe Sub." a kod mene nema tog "Sub", pa ako bio mogao da budeš malo "precizniji" bio bih ti zahvalan

#if Vba7 then
' Code is running in the new VBA7 editor
#if Win64 then
' Code is running in 64-bit version of Microsoft Office
#else
' Code is running in 32-bit version of Microsoft Office
#end if
#else
' Code is running in VBA version 6 or earlier
#end if

#If Vba7 Then
Declare PtrSafe Sub...
#Else
Declare Sub...
#EndIf
 
Odgovor na temu

bokinet

Član broj: 29844
Poruke: 574



+50 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u24.02.2019. u 17:42 - pre 61 meseci
something like

Code:

#if Vba7 then 
' Code is running in the new VBA7 editor 
    #if Win64 then 
        ' Code is running in 64-bit version of Microsoft Office 
        Declare PtrSafe Function wu_FindWindow Lib "User32" Alias "FindWindowA" (ByVal sImeKlase As String, ByVal hImeProzora As Long) As Integer
        Declare PtrSafe Sub wu_setWindowText Lib "User32" Alias "SetWindowTextA" (ByVal hWin As Integer, ByVal sTekst As String)

    #else 
        ' Code is running in 32-bit version of Microsoft Office 
        Declare Function wu_FindWindow Lib "User32" Alias "FindWindowA" (ByVal sImeKlase As String, ByVal hImeProzora As Long) As Integer
        Declare Sub wu_setWindowText Lib "User32" Alias "SetWindowTextA" (ByVal hWin As Integer, ByVal sTekst As String)

    #end if 
#else 

    ' Code is running in VBA version 6 or earlier 
    Declare Function wu_FindWindow Lib "User32" Alias "FindWindowA" (ByVal sImeKlase As String, ByVal hImeProzora As Long) As Integer
    Declare Sub wu_setWindowText Lib "User32" Alias "SetWindowTextA" (ByVal hWin As Integer, ByVal sTekst As String)

#end if 

 
Odgovor na temu

babayaro961
nezaposlen

Član broj: 202119
Poruke: 21
*.dynamic.sbb.rs.



+2 Profil

icon Re: Kod koji radi i u 32-bitnom i 64-bitnom Office-u25.02.2019. u 21:07 - pre 61 meseci
Hvala svima na pomoći.
Ovaj poslednji primer koji je postavio Bokinet funkcionše (barem sam ga isprobao na 64-bitnom sistemu).
Jedini problem koji se javio je poruka prilikom komande „Compact and repair“: "Selected collating sequence not supported with the specified file format."
To sam rešio tako što sam Options-General- New database sort order promenio iz General u General legacy
 
Odgovor na temu

[es] :: Access :: Kod koji radi i u 32-bitnom i 64-bitnom Office-u

[ Pregleda: 1827 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.