แสดงกระทู้

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] 5 6 7 ... 9
49
มันเป็นลักษณะคำสงวนของ 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:

พอดีเดิม Database เป็น MS Access นะคะ จากนั้นย้าย Database ไปเป็น SQL Server โดยทำการ Export จาก MS Access เป็นไฟล์ Excel แล้วนำไป Import เข้า SQL Server นะคะ Type เป็น Nvarchar ให้เลย พอจะมีวิธีแก้ไหมคะ พอดีระบบมีการใช้งานไปแล้ว มีข้อมูลพนักงานประมาณ 15,000 กว่าคนแล้ว

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

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

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

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

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

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


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

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

52
ขอบคุณสำหรับข้อมูลนะคะ
ถ้าข้อมูลที่อ่านจากบัตรประชาชน เช่น ตำบล อำเภอ จังหวัด มาจากจังหวัดหรือตำบล อำเภอ เดียวกันแต่รูปแบบที่อ่านได้จากบัตรประชาชนจริงไม่เหมือนกัน เช่น จ.ขอนแก่น, ขอนแก่น, จังหวัดขอนแก่น ตามรูปนี้ ทำยังไงคะ รบกวนแนะนำด้วยค่ะ


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

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

เพราะลองค้นหาแล้วไม่ได้ค่ะ ถ้าไม่มี N'สม' เป็นแค่ภาษาไทยนะคะ ภาษาอังกฤษค้นหาได้ตามปรกติ







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

55
ไม่แน่ใจนะครับ  ลองสร้าง 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'สม' แบบนี้เจอ

56
ค้นหาข้อมูลที่เป็นภาษาไทยไม่ได้ค่ะ เขียนโปรแกรมด้วย MS Access DB ย้ายจาก Access เป็น SQL Server เลยเจอปัญหาการค้นหาคำที่เป็นไทย

ลอง Select ใน SQL where Name=N'สม' หาเจอค่ะถ้าใส่ N นำหน้า

แต่เวลาเขียนโค้ดใน MS Access แบบนี้ ไม่เจอ รบกวนแนะนำด้วยค่ะ
โค๊ด: [Select]
SQL = "SELECT Title, Name, Surname " _
        & "FROM Employee " _
        & "WHERE Name = N'" & Me.txtSearchName & "' "

57
ห้อง MS Access / : Import Excel file to SQL Server
« เมื่อ: 17 มิ.ย. 63 , 13:07:55 »


แก้ปัญหาได้แล้วค่ะ ไปแก้ตอน Export file Excel ไฟล์ที่มีปัญหาเพราะว่าไปติ๊กช่องให้ format มาด้วย เลย error



58
ห้อง MS Access / Import Excel file to SQL Server
« เมื่อ: 17 มิ.ย. 63 , 12:51:59 »
Import Excel file to SQL Server เนื่องจาก Database เดิมเป็น Access ค่ะ แล้วข้อมูลประมาณ 15,000 record เลย export จาก Access ไป SQL โดยตรงไม่ได้ เลยทำการ Export เป็น Excel file แล้ว Import เข้า SQL ปรากฏว่า error ตามรูปนี้ค่ะ สามารถเอาข้อมูลเข้าได้แค่ 4000 กว่า Record เองค่ะ ส่วนที่เหลือไม่เข้า รบกวนแนะนำด้วยค่ะ

59
ห้อง MS Access / : Export ข้อมูลจาก MS Access
« เมื่อ: 10 มิ.ย. 63 , 10:13:36 »
ทำได้แล้วค่ะ เกิดจากคำสั่ง Query ที่มีการ select ฟิลด์ แล้วดันตั้งชื่อ as Expt ชื่อเลยไม่ตรงกัน พอดีย้ายจาก database access ไปเป็น SQL แล้วไปแก้ไขคำสั่ง

ขอบคุณมากๆนะคะ สำหรับทุกๆคำแนะนำ

60
ห้อง MS Access / : Export ข้อมูลจาก MS Access
« เมื่อ: 10 มิ.ย. 63 , 09:49:11 »
หลังตำแหน่ง 8  ในช่อง Text Qualifier ให้เลือกเป็น {none}   เสร็จแล้วบันทึกเป็น Specification ตัวใหม่  พอเวลาจะ export  ก็ให้อ้าง Specification ตัวใหม่นี้ครับ

คลิกขวาที่ Query แล้วเลือก Export text file แล้วแสดง error นี้ค่ะ ไม่สามารถเข้าหน้าไป set specification ได้เลยค่ะ

61
ห้อง MS Access / : Export ข้อมูลจาก MS Access
« เมื่อ: 09 มิ.ย. 63 , 15:23:28 »
ถามผมกลับอย่างนี้นี่ผมงงเลย ตกลงคุณไม่ได้เป็นคนสร้าง spec เองเหรอ แล้วคุณไปเอาชื่อ spec จากไหนมาใส่ในคำสั่ง DoCmd.TransferText  ?

เอาอย่างงี้ เปิดคิวรี่แล้วกดตามลำดับ 1 - 6 ที่แสดงครับ สำหรับตำแหน่งที่ 8 ถ้าเลือกเป็น Fixed Width ก่อนกดตำแหน่งที่4 หลังจากเลือก Specification แล้ว ตารางของฟิลด์ (ตำแหน่งที่ 7) จะแสดงตำแหน่งเริ่มต้นและความยาวของฟิลด์ออกมาด้วย ที่นี้ก็ขึ้นกับคุณออกแบบว่าจะให้ export เป็นแบบไหน ออกแบบแบบไหน ในคำสั่ง DoCmd.TransferText ก็ให้ใช้ตัวเลือกเพื่อ export แบบนั้นด้วยนะครับ

ตำแหน่งที่ 4 หมายถึงคลิกที่ปุ่ม Spec... นะครับ

หรือไม่ก็ ลอง export โดยไม่ใช้ spec ด้วยคำสั่ง
DoCmd.TransferText acExportDelim, , qry, myPath, True
ดูว่าได้ผลตามต้องการหรือไม่



ลอง export โดยไม่ใช้ spec ด้วยคำสั่ง
DoCmd.TransferText acExportDelim, , qry, myPath, True

Export ได้ค่ะ แต่ข้อมูล Format ไม่ตรงตามที่ต้องการ ข้อมูลมี "" มาด้วยนะคะ เช่น "010000","มานี","มานะ" พอจะมีวิธีตัด "" ออกไหมคะ แนะนำด้วยค่ะ ขอบคุณค่ะ

62
ห้อง MS Access / : Export ข้อมูลจาก MS Access
« เมื่อ: 09 มิ.ย. 63 , 13:55:34 »
ลองเข้าไปดูใน Specification error ตามนี้ค่ะ

63
ห้อง MS Access / : Export ข้อมูลจาก MS Access
« เมื่อ: 09 มิ.ย. 63 , 12:19:50 »
ถามผมกลับอย่างนี้นี่ผมงงเลย ตกลงคุณไม่ได้เป็นคนสร้าง spec เองเหรอ แล้วคุณไปเอาชื่อ spec จากไหนมาใส่ในคำสั่ง DoCmd.TransferText  ?

เอาอย่างงี้ เปิดคิวรี่แล้วกดตามลำดับ 1 - 6 ที่แสดงครับ สำหรับตำแหน่งที่ 8 ถ้าเลือกเป็น Fixed Width ก่อนกดตำแหน่งที่4 หลังจากเลือก Specification แล้ว ตารางของฟิลด์ (ตำแหน่งที่ 7) จะแสดงตำแหน่งเริ่มต้นและความยาวของฟิลด์ออกมาด้วย ที่นี้ก็ขึ้นกับคุณออกแบบว่าจะให้ export เป็นแบบไหน ออกแบบแบบไหน ในคำสั่ง DoCmd.TransferText ก็ให้ใช้ตัวเลือกเพื่อ export แบบนั้นด้วยนะครับ

ตำแหน่งที่ 4 หมายถึงคลิกที่ปุ่ม Spec... นะครับ

หรือไม่ก็ ลอง export โดยไม่ใช้ spec ด้วยคำสั่ง
DoCmd.TransferText acExportDelim, , qry, myPath, True
ดูว่าได้ผลตามต้องการหรือไม่



พอดีทำไว้นานจนลืมนะคะ ว่าทำอะไรไปบ้าง อิอิ
เราสามารถเข้าไปดูที่ Spec ตัวเก่าที่เราเคยทำ ตรงไหนคะ พอดีลองทำตามแล้ว ไม่เข้าไปหน้า Export Text wizard รบกวนแนะนำด้วยค่ะ ขอบคุณค่ะ

64
ห้อง MS Access / : Export ข้อมูลจาก MS Access
« เมื่อ: 08 มิ.ย. 63 , 11:38:55 »
Short Text กับ nvarchar(255) ไม่น่าจะเป็นปัญหาครับ เพราะ nvarchar(255) จะเก็บตัวอักษรได้**อาจจะ**น้อยกว่า 255  แต่ให้ไปดูว่าใน Specification นั้น เอาฟิลด์นี้ออกมากี่ตัวอักษรมากกว่า

Specification ดูตรงไหนคะ ฟิลด์ตอนที่เรา Query รึเปล่าคะ

หน้า: 1 2 3 [4] 5 6 7 ... 9