แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - mtaccess

หน้า: [1] 2 3 4
1
ห้อง MS Access / : ทำบัตรพนักงานใน MS Access
« เมื่อ: 14 ก.ค. 63 , 17:59:06 »
เรื่องตั้งหน้ากระดาษเป็น Inch หรือ cm นี่ต้องไปตั้งที่ Windows ครับ กำหนดที่ Regional Settings ให้มีหน่วยเป็น US ก็จะเป็นนิ้วแล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

2
เปิดโปรแกรมที่เขียนจาก Access แล้ว error แบบนี้ แก้ยังไงคะ เครื่องอื่นสามารถใช้งานได้ แต่เครื่องนี้ติดปัญหาตามรูปต่อไปนี้


OFFICE ที่ใช้ Version เดียวกับตัวอื่นๆ ไหมครับ ถ้าไม่ใช่ใช้ Version อะไรอยู่ SP ?
ใช่ตัว Microsoft Office 2010 Service Pack 1 (SP1) หรือเปล่าเพราะถ้าเวอร์ชั่นนี้จะเกิดปัญหา

ลองแจ้ง Windows OS ว่ากี่บิท
ใช้ Microsoft Office Version ไหน
และ Service Pack อะไรนะครับ จะได้แนะนำต่อได้
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

3
ผมไม่ได้ใช้ SQL Server ให้ชัวร์สอบถามอาจารย์สันติสุขตรงส่วนนี้ดีกว่าครับ


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

4
ทำได้แล้วค่ะ ขอบคุณมากๆนะคะ

น้องลองดูก่อน ติดตรงส่วนไหน หรือเสียบบัตรอันไหนแล้วไม่แสดงข้อมูล ส่งมาให้ดูครับเพื่อปรับแก้ไขเพิ่มเติม
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

5
ลองดูตัวอย่างนี้นะครับ
โค๊ด: [Select]
Private Sub txt_district_AfterUpdate()
Dim Strprovince, Stramphur, Strdistrict As String
Strprovince = Replace(Replace(Replace(Me.txt_province, "จังหวัด", ""), "จ.", ""), "กรุงเทพฯ", "กรุงเทพมหานคร")
Stramphur = Replace(Replace(Replace(Me.txt_amphur, "อำเภอ", ""), "เขต", ""), "อ.", "")
Strdistrict = Replace(Replace(Replace(Me.txt_district, "แขวง", ""), "ตำบล", ""), "ต.", "")

    Me.txt_zipcode = DLookup("post_code", "DATA", "district_th= '" & Strdistrict & "' AND amphur_TH = '" & Stramphur & "' and Province_th = '" & Strprovince & "'")
End Sub

ผมใช้การสร้างตัวแปรมา Replace ให้เหมือนกับข้อมูลในฐาน แล้ว Dlookup กับคิวรี่ชื่อ DATA ครับ
ถ้ามีแบบไหนผิดพลาดเพิ่มเติมอีกก็บอกได้นะครับทำกันจนจะสำเร็จละครับ สู้ๆ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

6
ไม่แน่ใจนะครับ  ลองสร้าง Database Instance อีกตัวเพื่อทดลองก่อน ด้วยการ Clone จาก Instance ที่มีอยู่ แล้วแก้ให้ Collation ของ Instance ตัวใหม่ให้รองรับภาษาไทย
https://langisser.wordpress.com/2013/05/28/แก้ปัญหาไม่แสดงลภาษาไท/ link แล้วก็ลิงค์มาเป็น Linked Table ใน Access  จากนั้นทดลองเขียน SQL โดยมีเงื่อนไขหาข้อมูลภาษาไทย ทำทั้งใน SQL Server และใน Access ดู นอกจากนี้ เมื่อเปลี่ยน Collation แล้ว น่าจะทำให้ไม่ต้องใส่ Prefix N แม้จะเขียน SQL ในตัว SQL Server เองก็ตาม

ถ้าทำแล้วยังไม่ได้ ต้องรอผู้รู้ท่านอื่นมาให้คำแนะนำต่อไป


ข้อมูลใน Table แสดงภาษาไทยปรกตินะคะ ไม่ได้แสดง ???? แต่เวลาค้นหาด้วยภาษาไทย ไม่เจอ ถ้าใส่ N'สม' แบบนี้เจอ

อยากรู้ว่าตอนนี้ Server Collation, Database Collation มีค่าเป็นอะไรครับ

Collation ตามนี้ค่ะ


SQL_Latin1_General_CP1_CI_AS เป็น Collation สำหรับ English (United States)  ผมคิดว่าการตั้งไม่ตรงกับภาษาไทย ซึ่งใช้ Collation Thai_CI_AS น่าจะก่อให้เกิดปัญหานะครับ  อยากให้ลองทำตามที่ผมได้แนะนำไปก่อนหน้านี้ (ย้ำว่าทำการทดสอบบนฐานข้อมูลที่โคลนมาแล้วนะครับ ไม่ใช่ทดสอบบนฐานข้อมูลจริง) และตรวจสอบเพิ่มเติมด้วยว่า Windows System Locale ทั้งบนเครื่องที่ติดตั้ง SQL Server และเครื่องที่ใช้ Microsoft Access ได้ตั้งเป็น Thai (Thailand) แล้วหรือยัง เมื่อแก้ไขแล้ว ให้ลองเขียนคิวรี่ทั้งบน SQL Server และบน Microsoft Access โดยไม่ต้องมี prefix N  ดูว่าจะแก้ปัญหาได้หรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

7
ไม่แน่ใจนะครับ  ลองสร้าง Database Instance อีกตัวเพื่อทดลองก่อน ด้วยการ Clone จาก Instance ที่มีอยู่ แล้วแก้ให้ Collation ของ Instance ตัวใหม่ให้รองรับภาษาไทย
https://langisser.wordpress.com/2013/05/28/แก้ปัญหาไม่แสดงลภาษาไท/ link แล้วก็ลิงค์มาเป็น Linked Table ใน Access  จากนั้นทดลองเขียน SQL โดยมีเงื่อนไขหาข้อมูลภาษาไทย ทำทั้งใน SQL Server และใน Access ดู นอกจากนี้ เมื่อเปลี่ยน Collation แล้ว น่าจะทำให้ไม่ต้องใส่ Prefix N แม้จะเขียน SQL ในตัว SQL Server เองก็ตาม

ถ้าทำแล้วยังไม่ได้ ต้องรอผู้รู้ท่านอื่นมาให้คำแนะนำต่อไป


ข้อมูลใน Table แสดงภาษาไทยปรกตินะคะ ไม่ได้แสดง ???? แต่เวลาค้นหาด้วยภาษาไทย ไม่เจอ ถ้าใส่ N'สม' แบบนี้เจอ

อยากรู้ว่าตอนนี้ Server Collation, Database Collation มีค่าเป็นอะไรครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

8
น้องไปแก้ Event ของ คอมโบบ๊อก cb_district AfterUpdate  เป็นแบบนี้นะครับ

Private Sub cb_district_AfterUpdate()
    Me.txt_zipcode = DLookup("post_code", "tb_district", "district_th= '" & Replace(Me.cb_district, "แขวง", "") & "' AND amphur_id = " & Me.cb_amphur.Column(0, Me.cb_amphur.ListIndex))
End Sub

โดยเครื่องแสกนถ้าได้คำว่าแขวงติดมา แต่ตอนจะแสดงข้อมูลเราใช้ Replace ตัดแขวงออกให้ก็จะแสดงข้อมูลได้ปกติ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

9
Data type ตระกูล N.... ค่อนข้างมีปัญหากับบ้านเราจริงครับ ผมจึงใช้วิธีสั่งก๊อบข้อมูลทั้งหมดจาก ntext ไปคอลัมน์ที่สร้างใหม่เป็น text แล้วจึงสั่งค้นหาจากคอลัมน์นี่แทน(ถ้าแก้ให้ต่อไปลิ้งมาคอลัมน์ใหม่ผ่าน>ไปลบชุดเก่าก็ได้นะ :cool:)

ตัวอย่างชุดคำสั่งบน SQL Server Management Studio
UPDATE [ชุดดาต้าเบส].[dbo].[ชื่อเทเบิ้ล]
SET [คอลัมน์ใหม่] = [คอลัมน์เก่า]
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

10
มันเป็นลักษณะคำสงวนของ MS Access (Wildcard Characters) ลองเพิ่ม single quote เป็นสองตัวดูครับว่าเจอป่าว
SQL = "SELECT Title, Name, Surname " _
        & "FROM Employee " _
        & "WHERE Name = N''" & Me.txtSearchName & "''"

ลองแล้ว ยังไม่ได้ค่ะ

รบกวนสอบถามนะครับว่าทำไมต้องใช้ datatype แบบ Nvarchar ใช้ Varchar ไม่ได้หรือครับ แบบไม่ใช่ข้อมูล Unicode
เพราะเก็บพวกชื่อ นามสกุลพนักงาน Varchar จะไม่มีปัญหาเรื่องพวกนี้เลย
เพราะถ้าเก็บชื่อพนักงาน Varchar สามารถเก็บ ชื่อภาษาไทย และ อังกฤษได้อยู่แล้ว
ผมสอบถามนะครับพอดีไม่ได้ใช้ SQL SERVER

ปล เปลี่ยนเป็น Varchar ได้ไหม  :cool: :cool:
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

11
สร้างคิวรี่ขึ้นมาใช้ Replace เพื่อ ตัดคำออกเอาเฉพาะชื่อจังหวัดเช่น จ.ขอนแก่น หรือ จังหวัดขอนแก่น จะเหลือ ขอนแก่น ครับ
ส่วนอำเภอกับตำบลใช้วิธีเดี่ยวกันครับ
ในแต่ละฟิลล์ใส่โค้ดตัดคำแบบนี้เข้าไปนะครับ

จังหวัด: Replace(Replace([province],"จ.",""),"จังหวัด","")
อำเภอ: Replace(Replace([district],"อ.",""),"อำเภอ","")
ตำบล: Replace(Replace([Sub-district],"ต.",""),"ตำบล","")

เมื่อใช้ Replace แล้วก็นำคิวรี่นี้แหละไป Join Table ให้ได้เลขไปรษณีย์
ถ้าข้อมูล File Address มีคำว่าอำเภอก็ตัดคำที่ไม่ต้องการออกไปให้เหมือนกัน ก็ใช้ได้แล้วครับ

ผมมีตัวอย่าง อีกวิธี

โดยต้องตัดคำว่าแขวง ตัดคำว่าเขต ตัดคำว่าอำเภอ ตัดคำว่าจังหวัดออกไป
โดยการค้นหาคือ ค้นจาก ตำบล อำเภอ จังหวัด เรียงกันแบบนี้ แล้วจะได้รหัสไปรษณีย์นะครับ
เช่น ทุ่งพญาไท ราชเทวี กรุงเทพมหานคร จะได้ 10400
      บางรัก บางรัก กรุงเทพมหานคร จะได้ 10500 เป็นต้น
วิธีนี้ก็ใช้ประยุกต์กับชุดข้อมูลที่อยู่จาก เครื่องแสกนได้ลองไปทดสอบดูครับไม่รู้จะใช้ได้หรือเปล่า
โดยให้ดูการเชื่อมข้อมูลจาก Query DATA
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

12
มันเป็นลักษณะคำสงวนของ MS Access (Wildcard Characters) ลองเพิ่ม single quote เป็นสองตัวดูครับว่าเจอป่าว
SQL = "SELECT Title, Name, Surname " _
        & "FROM Employee " _
        & "WHERE Name = N''" & Me.txtSearchName & "''"
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

13
อ่อ ใช้ N” prefix นิเองเดี่ยวผมหาวิธีแปป
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

14
ขอสอบถามการแสดงรหัสไปรษณีย์ จากการใช้เครื่องอ่านบัตรประชาชนค่ะ ปรกติบัตรประชาชนไม่มีข้อมูลรหัสไปรษณีย์ใช่ไหมคะ เวลาอ่านบัตรไม่พบข้อมูลรหัสไปรษณีย์ ถ้าเราต้องการให้เสียบบัตรประชาชนแล้วให้ขึ้นรหัสไปรษณีย์อัตโนมัติจากบัตร สามารถทำได้ด้วยวิธีไหนได้บ้างคะ รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

โดยปกติเครื่องอ่านบัตรประชาชนจะแสกนได้รายละเอียด ของที่อยู่แยกเป็นฟิลล์ๆไป (แต่บางตัว รายละเอียดจะติดกันเป็น ข้อความยาว เราจะทำวิธีนี้ไม่ได้)
สำหรับเครื่องตัวที่แยกฟิลล์มาให้เราสามารถนำไป Join Table เพื่อหารหัสไปรษณีย์ได้ครับ
โดยไฟล์ access ที่มีรายละเอียด เกี่ยวกับ จังหวัด อำเภอ ตำบล จนถึงรหัสไปรษณีย์ ดูได้จากไฟล์ที่ลิ้งด้านล่างครับ
https://www.thai-access.com/index.php?action=dlattach;topic=571.0;attach=481           
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

15
ขอดูข้อมูลในตารางเบื้องต้นหน่อยครับ

1.ผมไม่เข้าใจ Criteria ว่า  N ด้านหน้านั้นคือต้องการทำอะไร
2.N'สม' คือต้องการหาชื่อพนักงานชื่อ สม ใช่หรือไม่

เพราะโดยปกติ จะใส่แบบนี้

SQL = "SELECT Title, Name, Surname " _
        & "FROM Employee " _
        & "WHERE Name = '" & Me.txtSearchName & "' "
        Me.RecordSource = SQL

หรือแบบนี้
Forms![ชื่อฟอร์ม].Form.Filter = "[name]  = '" & Me.txtSearchName & "'"
Forms![ชื่อฟอร์ม].Form.FilterOn = True
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

16
ไม่แน่ใจนะครับ  ลองสร้าง Database Instance อีกตัวเพื่อทดลองก่อน ด้วยการ Clone จาก Instance ที่มีอยู่ แล้วแก้ให้ Collation ของ Instance ตัวใหม่ให้รองรับภาษาไทย
https://langisser.wordpress.com/2013/05/28/แก้ปัญหาไม่แสดงลภาษาไท/ link แล้วก็ลิงค์มาเป็น Linked Table ใน Access  จากนั้นทดลองเขียน SQL โดยมีเงื่อนไขหาข้อมูลภาษาไทย ทำทั้งใน SQL Server และใน Access ดู นอกจากนี้ เมื่อเปลี่ยน Collation แล้ว น่าจะทำให้ไม่ต้องใส่ Prefix N แม้จะเขียน SQL ในตัว SQL Server เองก็ตาม

ถ้าทำแล้วยังไม่ได้ ต้องรอผู้รู้ท่านอื่นมาให้คำแนะนำต่อไป
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

หน้า: [1] 2 3 4