สอบถามโค้ดจากกระทู้เก่าใช้ไม่ได้กับ Access ปัจจุบัน



0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

18 ส.ค. 64 , 09:32:40
อ่าน 180 ครั้ง

001Jetnipit

https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=3316

นั้นี้เป็นกระทู้เก่าครับ ผมลองก็อปโค้ดของอาจารย์ TTT มาใส่แต่ว่ามันเป็นสีแดง ไม่ทราบว่ามันต้องปรับหน้าตาตรงไหนให้มันใช้ได้กับ Access ปัจจุบันหรอครับ


เบื้องลองแก้เองตามนี้ แต่ก็ติดปัญหาตรงนี้ครับ

 

18 ส.ค. 64 , 11:56:35
ตอบกลับ #1

PNR

ต้องดูว่า MS Office ใช้กี่ Bit

ครับ ถ้า 32bit ไม่น่าจะมีปัญหาอะไร
แต่ถ้า 64 bit ต้องมีคำว่า prtSafe ด้วย เช่น

Private declare prtsafe function ...........................
Time to stop for me  :dizzy:
 

18 ส.ค. 64 , 13:54:12
ตอบกลับ #2

001Jetnipit

ต้องดูว่า MS Office ใช้กี่ Bit

ครับ ถ้า 32bit ไม่น่าจะมีปัญหาอะไร
แต่ถ้า 64 bit ต้องมีคำว่า prtSafe ด้วย เช่น

Private declare prtsafe function ...........................

แดงแบบเดิมเลยครับ





ผม 64 บิทครับ

 

18 ส.ค. 64 , 14:11:14
ตอบกลับ #3

PNR

ต้องดูว่า MS Office ใช้กี่ Bit

ครับ ถ้า 32bit ไม่น่าจะมีปัญหาอะไร
แต่ถ้า 64 bit ต้องมีคำว่า prtSafe ด้วย เช่น

Private declare prtsafe function ...........................

แดงแบบเดิมเลยครับ





ผม 64 บิทครับ
Copy codeมาหน่อยครับ
เอาเป็นตัวอักษรไม่เอาเป็นรูปนะครับ
ผมจะได้ copy มาแก้ให้ได้
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: 001Jetnipit

18 ส.ค. 64 , 14:23:07
ตอบกลับ #4

001Jetnipit

'----------------Declarations Section----------------
โค๊ด: [Select]
Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long



Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOMOVE = &H2

Private Const SWP_NOSIZE = &H1

 

Public Sub On_Top(ByVal lhWnd As Long)

  SetWindowPos lhWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

End Sub

 

Public Sub NotOn_Top(ByVal lhWnd As Long)

  SetWindowPos lhWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

End Sub

อันนี้เห็นอาจารย์ TTT บอกเอาไว้ในโมลดูลครับ

 

18 ส.ค. 64 , 22:51:13
ตอบกลับ #5

PNR

ลองแบบนี้ครับ

โค๊ด: [Select]
Option Explicit

Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long



Private Const HWND_TOPMOST = -1

Private Const HWND_NOTOPMOST = -2

Private Const SWP_NOMOVE = &H2

Private Const SWP_NOSIZE = &H1

 

Public Sub On_Top(ByVal lhWnd As Long)

  SetWindowPos lhWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

End Sub

 

Public Sub NotOn_Top(ByVal lhWnd As Long)

  SetWindowPos lhWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

End Sub
Time to stop for me  :dizzy:
 

19 ส.ค. 64 , 12:33:21
ตอบกลับ #6

nonc31

#If Win64 Or VBA7 Then
   Private Declare PtrSafe Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
#Else
   Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
#End if

ทำโค๊ดแบบนี้  เอาไว้ไปรันกับเวอร์ชั่นเก่า และใหม่ได้เลย

 
โพสต์นี้ได้รับคำขอบคุณจาก: PNR

19 ส.ค. 64 , 13:34:18
ตอบกลับ #7

001Jetnipit

ขอบคุณทุกท่านมากครับ โค้ดไม่ Error แล้วครับ แต่มันยังไม่ตรงจุดประสงค์ครับ ผมก็ไม่ทราบว่าทำไม อาจจะเป็นเพราะคำสั่งเก่าใช้งานไม่ได้

 


บอร์ดเรียนรู้ Access สำหรับคนไทย