แสดงกระทู้

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 - PNR

หน้า: 1 ... 16 17 18 [19] 20 21 22 ... 32
325
สาเหตุนี้เกิดกับข้อมูลที่เป็น ข้อความหริอ string ไม่ใช่ตัวเลขครับ
สามารถใช้  Val ช่วย แปลง string เป็นตัวเลขเช่น

SELECT *  FROM [ชื่อตารางหรือคิวรี่] Order by Val([ประสบการณ์/ความรับผิดชอบนการทำงาน]);
โพสต์นี้ได้รับคำขอบคุณจาก: buakird

326
น้องไปแก้ 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

327
มันเป็นลักษณะคำสงวนของ 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

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

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

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

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

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

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

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

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

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

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

332
ห้อง MS Access / : แสดงส่วนหัวของ subreport
« เมื่อ: 22 มิ.ย. 63 , 13:48:54 »
@PNR ข้อ 3-5 ยังไม่เข้าใจครับ ลองหาในส่วน subreport แล้ว หา properties ไม่เจอครับ รบกวนรายละเอียดอีกครั้ง หรือรูปประกอบครับ ขอบคุณครับ
ส่วน subreport แล้วกดที่แถบของ หัวของหน้าที่เพิ่งสร้างมาใหม่ กดเลือกคุณสมบัติครับ
ลองทำดูก่อนถ้าไม่ได้ ให้ส่งไฟล์มาทางอินบ๊อกผมทำให้

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

333
ห้อง MS Access / : ไฮไลท์ row ที่โฟกัส
« เมื่อ: 19 มิ.ย. 63 , 16:48:52 »

การสร้าง Highlight ให้กับ Current Record ลองดูตัวอย่างนี้ครับ

1.สร้าง textbox unbound ขึ้นมา 1 อันชื่อ txtHighlight แล้วซ่อนไว้ ไม่ต้องแสดง

2.เลือก textbox ตรง Detail ทั้งหมด แล้วเลือกไปที่ี การจัดรูปแบบตามเงื่อนไข ดังภาพด้านล่าง


3.กำหนดเงื่อนไข นิพจน์ โดยสร้างเงื่อนไขเช็คว่า ถ้าเรคคอร์ดปัจจุบัน = txtHighlight ก็จะแสดง สีตามที่เรากำหนด ดังรูป


4.กำหนดโค้ด Event Form_Current()

Private Sub Form_Current()
Me.txtHighlight = Me.[ID]
End Sub

หมายเหตุ

ถ้าคุณอยากให้ได้แบบการเลือกทีละหลายๆ เรคคอร์ดโดยใช้ In เหมือนตัวอย่างเก่าที่เคยทำ ก็นำมาปรับใช้ได้เลยครับ ใช้วิธีแบบนั้นได้เหมือนกัน
โดยกำหนดเงื่อนไข แบบตัวอย่างข้อ 2
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, thanapol.w, พิชญะ ชัยชนะ, p.choowa, ิboonyarit

334
เปิดใช้งาน Macro หรือยังครับ
ดูจากลิ้งนี้
https://www.thai-access.com/index.php?topic=38.0

เพราะ บางคำสั่งจะไม่ทำงานครับถ้าไม่ได้เปิดใช้งาน
โพสต์นี้ได้รับคำขอบคุณจาก: patipat

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

ขอบคุณค่ะ
ใช้ Dlookup ดึงข้อมูลแต่ละฟิลล์มาแสดงบน control แต่ละตัว วิธีนี้น่าจะดีอยู่ครับ
เช่น การกำหนดให้ค้นหา รหัสใบขอซื้อ ถ้าเจอก็ให้นำข้อมูลที่มีรหัสใบขอซื้อ มาแสดง บนฟอร์มทำใบสั่งซื้อ

สมมุติ textbox ค้นหารหัสใบขอซื้อชื่อ txtSearch
และมีปุ่มที่กดเพื่อค้นหาชื่อ btnSearch
มีtextbox บนฟอร์ม แบบ Unbound คือไม่ต้องเชื่อมฟิลล์ใช้ Dlookup มาแสดงแทน

Private Sub BtnSearch_Click()
Me.textboxA = dlookup("FieldA","Tableใบขอซื้อ","รหัสใบขอซื้อ ='" & Me.txtSearch & "'"
Me.textboxB = dlookup("FieldB","Tableใบขอซื้อ","รหัสใบขอซื้อ ='" & Me.txtSearch & "'"
Me.textboxC = dlookup("FieldC","Tableใบขอซื้อ","รหัสใบขอซื้อ ='" & Me.txtSearch & "'"
Me.textboxD = dlookup("FieldD","Tableใบขอซื้อ","รหัสใบขอซื้อ ='" & Me.txtSearch & "'"
End sub

วิธีการนี้จะทำให้เราสามารถดึงฟิลล์ A,B,C,D มาแสดงบน textboxชื่อ A,B,C,D ได้แล้วครับ

ส่วนขั้นตอนการจัดเก็บไปยัง ตารางใบสั่งซื้อ สามารถทำได้ทั้งใช้ sql แบบAppend หรือใช้แบบตัวอย่างด้านล่างก็ได้ครับ
    Private Sub BtnSave_Click()
    Dim rs As DAO.Recordset
    Set rs = CurrentDb.OpenRecordset("ตารางใบสั่งซื้อ", dbOpenDynaset)
            RS.AddNew
            RS![Fieldก] = textboxA
            RS![Fieldข] = textboxB
            RS![Fieldค] = textboxC
            RS![Fieldง] = textboxD
            RS.Update
    RS.Close
    Set RS = Nothing

จากตัวอย่างนี้คุณจะสามารถบันทึกข้อมูลที่กรอกไว้ใน textbox A,b,C,D ไปยังฟิลล์ ก ข ค ง ของตารางใบสั่งซื้อแล้วครับ

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

336
มันมีใน active x นะครับลองไปเล่นดู

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

337
ลองนำไปทดสอบดูนะครับ

ขั้นตอนแรกสร้าง Module ขึ้นมา แล้วเอาโค้ดนี้ไปวาง
โค๊ด: [Select]
Function InsertSpace(strInput As String, n As Long) As String
Dim strTemp As String
Dim lngIndex As Long

For lngIndex = 1 To Len(strInput) Step n
strTemp = strTemp & " " & Mid$(strInput, lngIndex, n) 'ตรง " "   อยากให้กว้างกว่านี้อีกก็กด spacebar เพิ่มอีกได้
Next lngIndex
InsertSpace = Mid$(strTemp, 2)
End Function

ขั้นที่ 2 เวลาจะเรียกใช้กับ Field ไหน ยกตัวอย่าง ฟิวส์ POSID มีสตริงคือ 123456
         ให้ใส่ ประโยคนี้เข้าไปใน ControlSource ของ textbox ในรายงานได้เลย
         เช่น
       
โค๊ด: [Select]
=InsertSpace([POSID],1) '1 คือให้เว้นช่องทุก 1 ตัวอักษรนะครับ ถ้าอยากให้ แบ่งทุก 3 ตัวอักษรใส่เลข 3 แทนได้
       ที่รายงาน textbox ดังกล่างจะแสดงเป็น 1 2 3 4 5 6
       ไม่รู้ว่าอยากได้แบบนี้หรือไม่ ? ถ้าไม่ใช่อธิบายเพิ่มเติมมาอีกหน่อยนะครับผมยังไม่ค่อยเข้าใจโจทย์  :sweat: :sweat:
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa, sakurahui

338
ขอบคุณท่านอาจารย์มากๆ ครับ พอดีผมไปค้นเจอ อีกหนึ่่งวิธีครับ ใช้ได้กับ IN ครับ

วิธีนี้ต่อยอดได้อีกเยอะเลยครับ
 ใช้วิธีกำหนดให้เก็บ สตริงหลังจากติ๊กเลือกแล้ว
 ใช้ replace เป็น ID,ID ไปเรื่อยๆ แล้วนำไปใส่กับ IN เยี่ยมครับ

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

339
เป็น 1 ถูกแล้วครับ
เวลาจะค้นหาถ้าผ่านฟอร์มก็ใช้การตัดคำให้เหลือเฉพาะตัวเลขเหมือนกับที่จัดเก็บในตารางเช่น

Private Sub Command25_Click()
Dim getID As String
getID = Me.txtSearch  'รับค่าการค้นหาเข้ามาโดยพิมพ์ค้นหา ISP-001 ได้ตามปกติ
getID = Val(Right(getID, Len(getID) - InStrRev(getID, "-"))) 'ตัดคำให้เหลือเฉพาะ ค่าตัวเลข 3 หลักสุดท้ายคือ "000" แล้วใช้ Val แปลงเป็นตัวเลข
Forms![frmtest].Form.Filter = "[INSP_ID] =" & getID  'กำหนดให้ตัวเลขที่ได้นั้น ไปใช้ค้นหาข้อมูลจริง
Forms![frmtest].Form.FilterOn = True
End Sub

ลองทดสอบดูนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

340
ห้อง MS Access / : เพิ่มขนาด font ใน subform
« เมื่อ: 08 มิ.ย. 63 , 16:05:34 »
จะเพิ่มหรือปรับขนาด font ใน subform ที่แสดงเป็นตารางยังไงครับ
ขอบคุณครับ

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

341
รบกวนขอไฟล์ตัวอย่างไว้ศึกษาเพื่อเป็นความรู้ค่ะ
ไฟล์ตัวอย่างที่คุณ Maki โพสไว้นั้น โหลดไปแล้วเปิดไม่ได้ค่ะ(ไฟล์เสีย)
ใช้ โปรแกรม 7-Zip แตกไฟล์ครับ

https://www.7-zip.org/
โพสต์นี้ได้รับคำขอบคุณจาก: มาลี, MAKI

342
แก้โค้ดตรงนี้ครับ จะบันทึกได้ปกติ

โค๊ด: [Select]
Private Sub BtnSave_Enter() 'ปกติเมื่อแสกน Barcode แล้วเครื่องจะมีระบบ Enter อัตโนมัติ คำสั่งนี้จะทำงานเองทันที คือบันทึกลงตาราง
Dim strBarcode As String
On Error Resume Next
strBarcode = Forms!FrmStart_Working!Barcode
strBarcode = Replace(strBarcode, " ", "")
Barcode = strBarcode
If IsNull(DLookup("EmpName", "tblEmployee", "EmpID='" & Forms!FrmStart_Working!Barcode & "'")) Then
Me.Lb_Status.Caption = "ไม่พบข้อมูลพนักงานคนนี้กรุณาลงทะเบียนก่อน"
Me.Barcode.SetFocus
Me.Undo
Else
Me.txtTimeIn = Format(Now(), "HH:mm:ss AM/PM")
Me.txtNameEmployee = DLookup("EmpName", "tblEmployee", "EmpID='" & Forms!FrmStart_Working!Barcode & "'")
Call SaveRecord
Me.Lb_Status.Caption = "บันทึกข้อมูลเสร็จเรียบร้อย"
Me.Barcode.SetFocus
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: มาลี, SakDa

หน้า: 1 ... 16 17 18 [19] 20 21 22 ... 32