แสดงกระทู้

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 ... 40 41 42 [43] 44 45 46
757
ใส่เป็นแบบนี้ดูครับ


ตัวอย่าง filter
โค๊ด: [Select]
DoCmd.ApplyFilter , "[แผนก] Like '*" & [Forms]![Manpower]![TxtSearch] & "*'"
หรือ
โค๊ด: [Select]
Me.Filter = "[แผนก] Like '*" & [Forms]![Manpower]![TxtSearch] & "*'"
 Me.FilterOn = True


ถ้าไม่เอาแบบ like ค้นหาตรงตัวไปเลย
โค๊ด: [Select]
DoCmd.ApplyFilter , "[แผนก] =" & [Forms]![Manpower]![TxtSearch]
หรือ
โค๊ด: [Select]
Me.Filter = "[แผนก] =" & [Forms]![Manpower]![TxtSearch]
 Me.FilterOn = True

758
ตรง filter ใส่แบบนี้ดูครับว่าได้ไหม

Not [sum_t_debt]= 0

759
ProductID ของสินค้าดูจากตาราง Product ของคุณนะครับ
เช่น If IsNull(Me.ProductID) Then
Me.ProductID = "1KA1"
Me.Product_name = Me.ProductID.Column(1)
Me.UnitPriceD = Me.ProductID.Column(2)


 "1KA1" คือรหัสของ กพ. / หมูสับ / 35 บาท เป็นต้นครับ
PrimaryKey ของคุณคือช่อง Barcode ครับ เวลาจะอ้าง ProductID ก็เอามาจาก Field นี้ได้เลย


760
ใช้การกำหนด Events ช่วยด้วยก็ได้คับ
สมมุติ textbox สุดท้ายที่กรอกข้อมูลชื่อ Text4 เสร็จ Cursor จะ Focus ที่ ปุ่ม Cmb_Save ทันทีครับ
และ พอครบ 5 วินาที มันจำเรียกใช้ คำสั่งบันทึกจาก  Cmb_Save_Click() ครับ ซึ่งปุ่มเซฟถ้ากดเองก็เซฟได้เหมือนกัน
หรือจะตั้ง 5 วินาทีแล้วบันทึกได้เหมือนกันคับ ตัวอย่างโค้ดด้านล่าง

Private Sub Cmb_Save_Click() 'คำสั่งจากปุ่มบันทึกที่มีอยู่แล้วถ้าเรากดบันทึกก็ได้เหมือนกัน
DoCmd.RunCommand acCmdSaveRecord
End Sub

Private Sub Text4_Exit(Cancel As Integer) เมื่อเสร็จการกรอกการทำงานบน textbox สุดท้าย
IF not isnull(Me.text1) And not isnull(Me.text2) And  not isnull(Me.text3) And  not isnull(Me.text4) Then 'เช็คว่ากรอกครบทุก textbox แล้วหรือไม่
Me.Cmb_Save.SetFocus
Dim OnTime As Date
OnTime = Now()
While DateDiff("s", OnTime, Now) < 6 'น้อยกว่า 6 อันสุดท้ายสุดคือ 5 วินั้นเอง
Wend

Call Cmb_Save_Click 'พอครบเงื่อนไขด้านบนจะเรียกคำสั่งบันทึกมาใช้งานคับ
End if
End Sub

761
Error นี้เกิดจาก datatype ของคุณกำหนดเป็น Text ครับ แต่โค้ดที่ผมให้ไปนั้นเป็น Number

เพิ่ม เครื่องหมาย ' อีกนิด Error นี้จะหายไปครับเช่น CusID ของคุณ คือ C01 เป็นสตริง ไม่ใช่ตัวเลข
แก้เป็นแบบนี้
If IsNull(DLookup("deal_price", "tblDeal", "[cus_id]= '" & CusID & "' And [pord_id]= " & [ProD] & "")) Then

Me.Price = DLookup("pord_price", "tblProduct", "product_id= " & ProD)
Else
Me.Price = DLookup("deal_price", "tblDeal", "[cus_id]= '" & CusID & "' And [pord_id]= " & [ProD] & "")
End If



762
รบกวนสอบถาม ค่ะ

 ตัวอย่าง ...   มีตัวเลขอยู่ด้วยกัน 2 ชุด ตือ 115406041 และ 216009004  ต้องการให้ ใส่ตัวเลขลงไป

หากชุดตัวเลขนั้นๆขึ้นต้นด้วยเลข 1 ให้แสดง AC หากขึ้นต้นด้วย เลข 2 ให้เแสดง PC

ีรบกวนขอโค้ดด้วยนะคะ 

ขอบคุณคะ

ในคิวรี่ ใช้ Left Function Check และ ใช้การสร้างเงื่อนไขการแสดงครับเช่น

Status: IIf(Left([Field1],1)="1","AC") & IIf(Left([Field1],1)="2","PC")

Field1 คือชื่อฟิลล์ของตัวเลขนะครับ


แต่ถ้าจะใช้แสดงบนForm โดย textbox ชื่อ status ก็ใส่ว่า

If Left([Text1], 1) = "1" Then
Me.status = "AC"
ElseIf Left([Text1], 1) = "2" Then
Me.status = "PC"
End If

Text1 คือ ระบุตัวเลข

763
มันประมาณนี้ครับ
โค๊ด: [Select]
Dim ProD As String
Dim CusID As String
If Not IsNull(Me.Prod_ID) Then
ProD = Me.Prod_ID
CusID = Forms!frmpos.Form.cus_id
If IsNull(DLookup("deal_price", "tblDeal", "[cus_id]= " & CusID & " And [pord_id]= " & [ProD] & "")) Then
Me.Price = DLookup("pord_price", "tblProduct", "product_id= " & ProD)
Else
Me.Price = DLookup("deal_price", "tblDeal", "[cus_id]= " & CusID & " And [pord_id]= " & [ProD] & "")
End If
End If
ตัวอย่าง คร่าวๆ ครับเผื่อเห็นแนวทาง

764
ถ้าจะสร้างปุ่ม ให้แสดงข้อมูลทั้งหมดก็ใช้ การ Call มาได้เลย เช่น
โค๊ด: [Select]
Private Sub Command1_Click()
Call ShowAllRecord
End Sub

765
ถ้า ไอดีสินค้า เป็นค่าว่าง เงื่อนไขจาก  ตารางขาย.ไอดีลูกค้า =  ตารางส่วนลด.ไอดีลูกค้า
ให้ Dlookup("UnitPrice","ตารางสินค้า")
else
   Dlookup("ราคาลด","ตารางส่่วนลด")
ประมาณนี้ครับ


คือถ้าเช็คเงื่อนไขแล้ว ไอดีสินค้าตัวนี้ไม่มี แสดงว่าไม่ได้กำหนดราคาส่วนลด ของไอดีลูกค้าคนนั้นไว้
ก็ให้ไปดึงค่าจากตารางสินค้ามาแทน

766
ลองใส่

ExpireDate:Right("00000000" & [ชื่อฟิลล์ หรือ Control],8)

767
สร้าง Sub เพื่อไว้เรียกใช้หลายๆ ที่ครับ

สังเกตุว่า Event FormLoad ผมใช้
Call ShowAllRecord เลยเพื่อให้ Record ทั้งหมดแสดง


มันแยกกันถูกแล้วคับ

768
ลองปรับโค้ดไม่รู้ถูกไหมลองดูนะครับ

โค๊ด: [Select]
Private Sub cbo_CustomerType_AfterUpdate()
Dim myCustomer As String
If IsNull(Me.cbo_CustomerType) And IsNull(Me.CboDepname) Then
Call ShowAllRecord
Else
myCustomer = "SELECT * FROM Asset_all WHERE (((Asset_all.Status)=[forms]![U_Customer search by combobox].[Form]![cbo_CustomerType]));"
Forms![U_customer search by combobox]![tbl_Customer_Subform1].[Form].RecordSource = myCustomer
End If
End Sub
Private Sub CboDepname_AfterUpdate()
Dim myDepname As String
If IsNull(Me.cbo_CustomerType) And IsNull(Me.CboDepname) Then
Call ShowAllRecord
Else
myDepname = "SELECT * FROM Asset_all WHERE (((Asset_all.Depname)=[forms]![U_customer search by combobox].[Form]![cbodepname]));"
Forms![U_customer search by combobox]![tbl_Customer_Subform1].[Form].RecordSource = myDepname
Me.CboDepname = Null
End If
End Sub
Private Sub Form_Load()
Call ShowAllRecord
End Sub
Sub ShowAllRecord()
Dim myCustomer As String
myCustomer = "SELECT Asset_all.* FROM Asset_all;"
Forms![U_customer search by combobox]![tbl_Customer_Subform1].[Form].RecordSource = myCustomer
End Sub

769
อ้างถึง
ลูกค้าแต่รายจะได้ราคาสินค้าแตกต่างกันในสินค้าเดียวกัน

ผมว่าลูกค้าแต่ละคนต้องมี ออฟชั่นเสริม ที่ไม่เหมือนกัน เช่นได้ Discount ที่ไม่เหมือนกันเป็นต้นคับ
เวลาจะ จะแสดงราคา อาจจะ นำ ออฟชั่นเสริมนี้ ไป หักลบ กับราคาสินค้า แล้วได้ราคาที่แท้จริง หรือ ใช้การสร้างตาราง แล้วดึงส่วนลดนั้นมาแสดง
คุณมี ตารางโปรไฟล์ลูกค้า เก็บ ไอดีลูกค้า ชื่อ ที่อยู่ การติดต่อต่างๆ
ผมคิดว่าอาจจะมีตารางส่วนลด

ถ้าลูกค้า 1 คน ได้รับส่วนลด ของสินค้าทุกชิ้นเหมือนกันหมด
 เก็บ ไอดีลูกค้า / ไอดีสินค้า / ส่วนลด 

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


ที่ฟอร์มขายเราใช้การดึงราคา จากตารางสินค้า แต่ถ้าลูกค้าคนนี้มี ส่วนลดก็ให้ไปดึงราคาจาก ตารางส่วนลด มาแสดงแทนครับ คร่าวๆ ประมาณนี้ครับ









770
ที่ Event FormLoad ของฟอร์มหลัก ลองเพิ่มแบบนี้เข้าไปคับ

Private Sub Form_Load()
Dim myCustomer As String
myCustomer = "SELECT Asset_all.* FROM Asset_all;"
Forms![Customer search by combobox]![tbl_Customer_Subform1].[Form].RecordSource = myCustomer

End Sub

771
ขอดูโค้ดของปุ่มค้นหาทั้งสองหน่อยครับ

ขอดู Sql ของคิวรี่ของ Subform ด้วยครับ

772
ใช่ครับ     ผมแนบ ภาพที่เป็น ไฟล์ pdf ไว้ด้วยนะครับ (พอดีมือใหม่หัดเขียน ไว้ใช้งานที่ร้านนะครับ)
ลองดูตัวอย่างนี้คับ

773
ไม่รู้ผมเข้าใจถูกต้องหรือเปล่านะครับ
ความต้องการของคุณคือ อยากสร้างปุ่มชื่ออาหารที่ต้องการเลือกแบบด่วน
โดยเวลากดปุ่มนี้จะแสดงรายการอาหารใน Combobox ของอาหารชื่อนั้นขึ้นมาทันทีใช่หรือไม่

774
หัดเขียนครับ ช่วยให้โคชที่จะไม่แสดงค่าจำนวนติดลบให้หน่อยครับ
ทำงานบนฟอร์ม หรือ คิวรี่ ครับ

ที่จริงการไม่แสดงจำนวนติดลบ ง่ายๆ เลยคือการสั่ง Criteria  Not <0
เท่านี้ค่าที่น้อยกว่า 0 คือค่าที่ติดลบจะไม่แสดงครับ

หน้า: 1 ... 40 41 42 [43] 44 45 46