Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล
Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม
Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล
Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย

น้อมรำลึกในพระมหากรุณาธิคุณอันหาที่สุดมิได้ พระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดชฯ พระผู้เสด็จสู่สวรรคาลัย

Back to Board : Thai Access Webboard New Topic    Reply
access2010 : ตื่นเต้น

Topic by Message Posted : on : 9/8/2553 20:24:02
yeadram  วันนี้ได้ลองของใหม่ครับ ได้เวอร์ชั่นทดลองใช้มา
ติดตั้ง แล้วครับ ทดสอบทันที
ลองรันไฟล์ที่สร้างจากเวอร์ชั่นเก่าครับ

ไฟล์ตัวเก่า
-สร้างจากเวอร์ชั่น 2002
-มีการประกาศ Function api ด้วยครับ


พอเอามารันใน win7 64bit ลง access 64 bit
ได้เรื่องเลยครับ ทำให้ต้องค้น กูเกิ้ล แล้วก็ได้ความรู้เพิ่มขึ้นอีกแล้วสำหรับวันนี้ อิอิ (ถ้าวันไหนไม่มีความรู้ใหม่ๆ เข้าหัว มันจะนอนไม่ค่อยหลับ และมีความรู้สึกว่า กำลังใช้ชีวิตแบบไร้ค่า)

ความแตกต่างเบื้องต้นเท่าที่สังเกตได้
- VBA แต่ก่อนไม่รู้ว่าใช้อยู่ประจำเป็นเวอร์ชั่นอะไร แต่ ในนี้ (office2010 64bit) เขาเรียกว่า VBA7
- เคย references
: Microsorft office 10 ก็เปลี่ยนเป็น 14
: MDAC 2.8 ก็เปลี่ยนเป็น 6.0 (โว้ววว เราตกยุคไปหลายเวอร์ชั่นนะเนี่ย อิอิ)

การประกาศฟังก์ชั่น API ในยุค 32bit เช่น
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
   ByVal LCType As Long, _
   ByVal lpLCData As String, _
   ByVal cchData As Long) As Long

ก็ต้องปรับตัวให้เข้ากับยุค 64bits ดังนี้
Public Declare PtrSaft Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
   ByVal LCType As Long, _
   ByVal lpLCData As String, _
   ByVal cchData As Long) As Long

* มีการแทรกคีย์เวอร์ดเพื่อแบ่งชั้นวรรณะกันนิดนึงนะเนี่ย อิอิ จะได้รู้ว่ายุคไหนเป็นยุคไหน ( 55555 เขาก็ช่างคิดกันได้เน๊าะ)

หรือบางที การที่เราจะเขียน Access2010 ขึ้นมาแล้วแบ่งให้คนอื่นใช้ หรือขายให้คนอื่นใช้ เราต้องระวังเรื่องพวกนี้ด้วย เราไม่รู้ว่าผู้ใช้จะเอาไปรันที่ ระบบ 64bits หรือ 32bits กันแน่ ดังนั้น เราอาจต้องเขียนดัก อย่างนี้

#If Win64 Then
Public Declare PtrSafe Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
   ByVal LCType As Long, _
   ByVal lpLCData As String, _
   ByVal cchData As Long) As Long
#Else
Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" _
(ByVal Locale As Long, _
   ByVal LCType As Long, _
   ByVal lpLCData As String, _
   ByVal cchData As Long) As Long

#End If


โค้ดตัวไหนที่มันไม่เข้ากับระบบ มันก็จะเป็นตัวแดงๆ อยู่อย่างนั้นแหละครับ คล้ายๆ การเตือน แต่มันก็ทำงานได้

วันนี้ จบแค่นี้ก่อนครับ ตื่นเต้นเลยเอามาเล่า ให้คนที่ยังไม่ลอง ได้ฟังเบื้องต้นครับ





5 Reply in this Topic. Dispaly 1 pages and you are on page number 1

Reply by Message on : 9/8/2553 20:51:24
Un
(R06322)
อิจฉาคนเก่ง
ผมไม่เข้าใจที่อาจารย์เล่าเท่าไหร่ 5555
แต่ผมลองใช้แล้ว มันสวยดี มีอะไรเปลี่ยนหลายอย่าง Project หน้า ผมใช้ 2010 แน่ครับ
Back to Top
Reply by Message on : 28/8/2557 10:45:56
32 to 64
(R19397)
ขอบคุณครับ สำหรับความรู้ใหม่ที่ได้นำมาแบ่งปันกัน
Back to Top
Reply by Message on : 28/8/2557 13:30:06
TTT
(R19398)
อื่ม! มาจนถึงวันนี้เท่าที่ใช้งานมา หากคุณต้องใช้การเรียก API ร่วมกับการเขียน MS Access อยู่บ่อยๆ แนะนำว่ายังไงก็ยังคงต้องใช้ MS Access 32bit อยู่ครับ เพราะ MS Access 64bit มีปัญหาในการเรียก API เยอะมากๆ เพราะ API แบบเดิมๆส่วนใหญ่ที่เราใช้กันก็เป็น 32bit แทบจะทั้งหมด ส่วน Windows 64bit ก็ยังรองรับคำสั่งได้ไม่หมด แม้แต่่ทาง Microsoft เองยังแนะนำว่าให้ใช้ MS Access 32bit บน Windows 64bit จะดีกว่า

ปล. ไม่ใช่ว่าทุกการเรียก API จะใช้แค่การแทรก PtrSafe เข้าไปแล้วจะใช้ได้เหมือนเดิมทุกประการ์กับ MS Access 64bit นะครับ หลายคำสั่งต้องแก้มากกว่านั้นมาก เช่นการแก้ตัวแปร การแก้ฟังก์ชั่น ที่อ้าง Address ที่มันขยายขึ้นใน Windows 64bit ครับ
Back to Top
Reply by Message on : 27/8/2558 11:29:48
Fat Rabbit
(R21087)
ขอบคุณมากค่ะ
Back to Top
Reply by Message on : 4/8/2560 20:48:56
กิติศักดิ์ จันทรา
(R23866)
อาจารย์yeadram ผมเจอปัญหานี้เลย เราต้องไปเขียนโค้ดดักไว้ตรงไหนครับ
Back to Top

Reply

 *Indicates required fields
Format:
Bold Under Line Italic Add Hyperlink Add Email Link Italic List Indent Add Image Emoticons Insert code Mode:
Message:*
Your Name*:
Normal word*: Please input : ไทยแอ็คเซส
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++