กระทู้เก่าบอร์ด อ.Yeadram
1,495 11
URL.หัวข้อ /
URL
คีย์จำนวนขาย คุณ รหัสสินค้า
PId PName Qty
1 โค้ก ขายไป 3 กระป๋อง
2 แฟนต้า ขายไป 5 กระป๋อง
เวลาคีย์ข้อมูลต้องการให้กดเลข 3 * 1 หมายถึง Qty = 3 PId = 1(โค้ก) และ
5 * 2 Qty = 5 PId = 2 (แฟนต้า)
แล้วให้เข้าไปเก็บใน table ขายครับ
ขอบคุณมากครับผม
1 โค้ก ขายไป 3 กระป๋อง
2 แฟนต้า ขายไป 5 กระป๋อง
เวลาคีย์ข้อมูลต้องการให้กดเลข 3 * 1 หมายถึง Qty = 3 PId = 1(โค้ก) และ
5 * 2 Qty = 5 PId = 2 (แฟนต้า)
แล้วให้เข้าไปเก็บใน table ขายครับ
ขอบคุณมากครับผม
11 Reply in this Topic. Dispaly 1 pages and you are on page number 1
1 @R22932
สร้าง word processing ก่อน
2 @R22933
แนวทาง
สแกนหาตำแหน่ง *
เก็บตำแหน่ง * ไว้
เลือกข้อความตำแหน่งแรกแต่ไม่ถึง * แล้วเก็บไว้ในตัวแปร 1
เลือกข้อความตำแหน่งถัดจากตำแหน่ง * ไปจนสุดเก็บในตัวแปร2
ถึงตรงนี้อยากทำอะไรก็ตามใจนะที่รัก
* บางครั้งอาจต้องแปลงชนิดข้อมูลก่อนนะเพราะที่เก็บไว้ในตัวแปร 1,2 เป็น string
สแกนหาตำแหน่ง *
เก็บตำแหน่ง * ไว้
เลือกข้อความตำแหน่งแรกแต่ไม่ถึง * แล้วเก็บไว้ในตัวแปร 1
เลือกข้อความตำแหน่งถัดจากตำแหน่ง * ไปจนสุดเก็บในตัวแปร2
ถึงตรงนี้อยากทำอะไรก็ตามใจนะที่รัก
* บางครั้งอาจต้องแปลงชนิดข้อมูลก่อนนะเพราะที่เก็บไว้ในตัวแปร 1,2 เป็น string
3 @R22934
สร้าง word processing ก่อน // อันนี้ทำแบบไหนครับผมงง อิอิ
ขอบคุณมากครับ
ขอบคุณมากครับ
4 @R22935
Word processing ก็คือหน่วยประมวลผล string หรือข้อความ เช่น 5*2 นั่นแหละ แต่จะทำอย่างไรให้ระบบรู้ว่า 5 คือจำนวนสินค้า และ 2 คือรหัสสินค้า จึงทำให้ต้องมี word processing ส่วนจะทำเป็นโมดูลหรือ form procedure ก็ตามใจ แต่ทั้งสองอย่างนั้นก็มีข้อดีข้อเสีย
รอท่าน อ. สันติสุข มาเสริมให้อีกหน่อยละกันนะ
รอท่าน อ. สันติสุข มาเสริมให้อีกหน่อยละกันนะ
5 @R22936
คุณจะใช้เครื่องหมายดอกจัน (star) เป็นตัวคั่นระหว่างข้อมูลสองค่า
A.ค่าแรกเป็น number เอามาใช้คำนวน บวกลบคูณหาร คือตัวที่อยู่ข้างหน้า star ทั้งหมด
B.ค่าหลังเป็น string เพื่อให้มันคงที่ห้ามแปลงค่าเปลี่ยนรูป แม้จะมีเลข 0 นำ ก็ต้องปล่อยไว้ ห้ามเอาเลข 0 ข้างหน้าออก เพราะคุณต้องการให้มันเป็นรหัสสินค้า เพื่อไว้อ้างอิงกับสินค้าที่อยู่ในตาราง
คำถามครับ
- ถ้าคนที่คีย์ข้อมูล ดื้อ มือบอน
- ถ้าคนที่คีย์ข้อมูล ไม่ทราบเจตนาไม่ทราบสัญลักษณ์ สงสัยและอยากลอง
- ถ้าคนที่คีย์ข้อมูล ไม่ได้เจตนา
-อักขระที่คีย์เข้าไป ก่อนเครื่องหมาย ถ้ามันไม่ใช่ตัวเลขล้วน จะให้โค้ด ทำงานอย่างไร
-เครื่องหมาย star หากมีสองตัว(อาจกดเกิน หรือคีย์บอร์ดเสีย หรืออยากลอง) อาจติดกันหรือไม่ติดกัน จะให้โค้ดตัดสินใจอย่างไร
-ถ้าในสายอักขระทั้งหมดนั้น ไม่มี star อยู่เลย จะให้โค้ดตัดสินใจอย่างไร
-ถ้า star มันปรากฎอยู่ต้น หรืออยู่ท้าย แสดงว่า ข้อมูลแรก หรือข้อมูลหลัง อาจไม่ได้คีย์มา ใช่หรือไม่ จะให้โค้ดตัดสินใจอย่างไร
ไม่ได้ถามให้ตอบ แต่ถามเป็นแนวทาง
บางทีผมว่า การที่เราอยากได้อะไรที่มันง่ายๆ อาจต้องคิดให้มันยากๆ เหมือนกันนะ
ถ้าตีซะว่า การคิดให้มันยากๆ เพื่อวางแผนให้รัดกุม คือการลงทุน
แล้วการที่จะได้คีย์ข้อมูลง่ายๆ คือผลกำไร
แล้วลองเปรียบเทียบ ต้นทุน กับกำไร ในมุมมองของผม "มันไม่คุ้มกันเลยครับ"
A.ค่าแรกเป็น number เอามาใช้คำนวน บวกลบคูณหาร คือตัวที่อยู่ข้างหน้า star ทั้งหมด
B.ค่าหลังเป็น string เพื่อให้มันคงที่ห้ามแปลงค่าเปลี่ยนรูป แม้จะมีเลข 0 นำ ก็ต้องปล่อยไว้ ห้ามเอาเลข 0 ข้างหน้าออก เพราะคุณต้องการให้มันเป็นรหัสสินค้า เพื่อไว้อ้างอิงกับสินค้าที่อยู่ในตาราง
คำถามครับ
- ถ้าคนที่คีย์ข้อมูล ดื้อ มือบอน
- ถ้าคนที่คีย์ข้อมูล ไม่ทราบเจตนาไม่ทราบสัญลักษณ์ สงสัยและอยากลอง
- ถ้าคนที่คีย์ข้อมูล ไม่ได้เจตนา
-อักขระที่คีย์เข้าไป ก่อนเครื่องหมาย ถ้ามันไม่ใช่ตัวเลขล้วน จะให้โค้ด ทำงานอย่างไร
-เครื่องหมาย star หากมีสองตัว(อาจกดเกิน หรือคีย์บอร์ดเสีย หรืออยากลอง) อาจติดกันหรือไม่ติดกัน จะให้โค้ดตัดสินใจอย่างไร
-ถ้าในสายอักขระทั้งหมดนั้น ไม่มี star อยู่เลย จะให้โค้ดตัดสินใจอย่างไร
-ถ้า star มันปรากฎอยู่ต้น หรืออยู่ท้าย แสดงว่า ข้อมูลแรก หรือข้อมูลหลัง อาจไม่ได้คีย์มา ใช่หรือไม่ จะให้โค้ดตัดสินใจอย่างไร
ไม่ได้ถามให้ตอบ แต่ถามเป็นแนวทาง
บางทีผมว่า การที่เราอยากได้อะไรที่มันง่ายๆ อาจต้องคิดให้มันยากๆ เหมือนกันนะ
ถ้าตีซะว่า การคิดให้มันยากๆ เพื่อวางแผนให้รัดกุม คือการลงทุน
แล้วการที่จะได้คีย์ข้อมูลง่ายๆ คือผลกำไร
แล้วลองเปรียบเทียบ ต้นทุน กับกำไร ในมุมมองของผม "มันไม่คุ้มกันเลยครับ"


6 @R22937
Great!
7 @R22938
ผมทำแบบนี้ครับ อ.yeadram รบกวนช่วย comment หน่อยครับ
Dim arr, sq2 As String
arr = Split(Me.txtInput, "*")
If IsNull(Me.txtBill) Or Me.txtBill = "" Then
Me.txtInput.Locked = True
Else
If UBound(arr) < 1 Then
sq2 = "Insert into tblOrderTmp(ITEM_CD,QTY,BILL_NO) values(" & Me.txtInput & "," & 1 & "," & Me.txtBill & ");"
On Error Resume Next
CurrentProject.Connection.Execute sq2
Me.txtInput = ""
Me.txtBill.SetFocus
Me.txtInput.SetFocus
Else
sq2 = "Insert into tblOrderTmp(ITEM_CD,QTY,BILL_NO) values(" & arr(1) & "," & arr(0) & "," & Me.txtBill & ");"
On Error Resume Next
CurrentProject.Connection.Execute sq2
Me.txtInput = ""
Me.txtBill.SetFocus
Me.txtInput.SetFocus
End If
End If
ขอบคุณมากครับผม

Dim arr, sq2 As String
arr = Split(Me.txtInput, "*")
If IsNull(Me.txtBill) Or Me.txtBill = "" Then
Me.txtInput.Locked = True
Else
If UBound(arr) < 1 Then
sq2 = "Insert into tblOrderTmp(ITEM_CD,QTY,BILL_NO) values(" & Me.txtInput & "," & 1 & "," & Me.txtBill & ");"
On Error Resume Next
CurrentProject.Connection.Execute sq2
Me.txtInput = ""
Me.txtBill.SetFocus
Me.txtInput.SetFocus
Else
sq2 = "Insert into tblOrderTmp(ITEM_CD,QTY,BILL_NO) values(" & arr(1) & "," & arr(0) & "," & Me.txtBill & ");"
On Error Resume Next
CurrentProject.Connection.Execute sq2
Me.txtInput = ""
Me.txtBill.SetFocus
Me.txtInput.SetFocus
End If
End If
ขอบคุณมากครับผม
8 @R22940
ขอถามด้วยความสงสัย : ที่ไหนๆก็ทำให้ป้อนแยกกันคนละช่องทั้งนั้น ช่องสินค้าก็ใช้คอมโบบ็อกซ์เพื่อให้ป้อนชื่อสินค้า/รหัสสินค้า ช่องจำนวนก็เท็กซ์บ็อกซ์ ก็ไม่ได้ยุ่งยากตรงไหน แล้วทำไมต้องออกแบบให้ป้อนจำนวนคูณรหัสสินค้าครับ แล้วผู้ใช้จะจำรหัสสินค้าได้หรือ ?
9 @R22941
ถูกต้องตามท่าน สันติสุข นั่นแหละค๊า แต่เดี๊ยนก็มีหน้าที่ตอบสนองความต้องการของผู้ใช้งาน และคนที่จะทำแบบนั้นก็เป็นพวกชำนาญเฉพาะด้าน ทำงานคนเดียว เช่นพวกรวมยอดหวยใต้ดิน
10 @R22942
เรียน ท่านอ.สันติสุข
ตามที่คุณWEEพูดน่าจะหมายถึงเหมือนโปรแกรมขายสินค้าชื่อE-Business Plus Posครับ เพราะโปรแกรมนี้เมื่อก่อนผมเคยใช้ครับ เวลาต้องการใส่จำนวนที่มากกว่า1 ให้กดตัวเลขที่ต้องการแล้วตามด้วยเครื่องหมายดอกจัน เช่น 3* จะเท่ากับจำนวน3ชิ้น จากนั้นให้สแกนบาร์โค้ด โปรแกรมจะรวมยอดเงินเป็นการคูณ3ชิ้นทันทีครับ
คุณWEEครับ ผมไปค้นหาเจอวิธีอื่นมา ใช้แล้วได้ผลดีครับ วิธีการก็ไม่ยุ่งยากเลย แค่กดปุ่มF12 แล้วใส่จำนวน ลองดูตามลิ้่งค์นี้นะครับ
http://www.thai-access.com/yeadram_view.php?topic_id=5124
ตามที่คุณWEEพูดน่าจะหมายถึงเหมือนโปรแกรมขายสินค้าชื่อE-Business Plus Posครับ เพราะโปรแกรมนี้เมื่อก่อนผมเคยใช้ครับ เวลาต้องการใส่จำนวนที่มากกว่า1 ให้กดตัวเลขที่ต้องการแล้วตามด้วยเครื่องหมายดอกจัน เช่น 3* จะเท่ากับจำนวน3ชิ้น จากนั้นให้สแกนบาร์โค้ด โปรแกรมจะรวมยอดเงินเป็นการคูณ3ชิ้นทันทีครับ
คุณWEEครับ ผมไปค้นหาเจอวิธีอื่นมา ใช้แล้วได้ผลดีครับ วิธีการก็ไม่ยุ่งยากเลย แค่กดปุ่มF12 แล้วใส่จำนวน ลองดูตามลิ้่งค์นี้นะครับ
http://www.thai-access.com/yeadram_view.php?topic_id=5124
11 @R22943
เรียน อ.สันติสุข แต่เดิมเคยใช้เป็นเครื่อง Cash register ครับ เวลาใส่ข้อมูล เขาก็จะใส่ จำนวน * รหัส เลยครับ ถ้าในกรณี สินค้าจำนวนแค่ 1 เขาก็จะพิมพ์รหัสลงไปเลยครับผม 3*1 Qty=3 ID=1 (Coke) /// ถ้าพิมพ์ตัวเลขอย่างเดียว เช่น 1 QTY=1 ID=1 ประมาณนี้ครับผม ผมก็เลยอยากนำมาประยุกต์ใช้ ร่วมกับทำปุ่มให้เขาคลิกเลือกสินค้าด้วย
- ส่วนรหัสสินค้า แต่ละคนจำได้ขึ้นใจแล้วครับผม
ขอบคุณ คุณU&ME อ.yeadram อ.หนุ่ม(สันติสุข) คุณekkaphon(มนตการ) มากครับผม
- ส่วนรหัสสินค้า แต่ละคนจำได้ขึ้นใจแล้วครับผม
ขอบคุณ คุณU&ME อ.yeadram อ.หนุ่ม(สันติสุข) คุณekkaphon(มนตการ) มากครับผม

Time: 0.5128s