แสดงกระทู้

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 [2] 3 4 5 ... 26
18
ออกแบบสวยงามน่าใช้มากครับ
 :love: :love:

19
ห้อง MS Access / : รวมตัวเลขไม่ได้
« เมื่อ: 24 ก.ค. 63 , 09:48:43 »

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

เช่น Sum(Field1+Field2) เป็นต้น

ผมทำตัวอย่างให้ดูไปเช็คความถูกต้องของเงื่อนไขเองเน้อ


20
ใช้สองจอได้ครับผม แต่ต้องลากไปทางขวาเอาครับผม  :cry:
โค้ดนี้ผมได้นำไปใช้กับโปรแกรมของเพื่อน ก็ใช้ได้ปกตินะครับ
สะดวก รีโมทไปเช็คไหมครับเรื่องการตั้งค่าฟอร์ม และการตั้งค่าแสดงผลการ์ดจอ
ใช้ Anydesk ครับ

21
อ้างถึง
มีวิธีแก้อย่างอื่นอีกไหมครับ ถ้าเกิดผมไม่ต้องการแสดงข้อมูลทั้งหมดตอนเปิดฟอร์มอะครับ
วิธีง่ายที่จะไม่แสดงข้อมูลก็คือ การให้มันค้นหาค่าที่ Null ครับ เช่นหาค่าว่างของ ID เลย ข้อมูลต้องมี ID อยู่แล้วจริงไหม
พอเราค้นหา ID = Null ข้อมูลก็จะไม่แสดงแล้วครับ แล้วเอาไปไว้ที่ อีเว้น Form_Load เพื่อให้มันทำงานตอนเปิดฟอร์มขึ้นมา :cool:
แนวทางเช่น

Private Sub Form_Load()
Dim strSQL As String
strSQL = "SELECT * FROM [ชื่อตาราง] WHERE ID=null;"
Me.RecordSource = strSQL
End Sub

22
น่าจะแบบนี้นะครับงั้น
จากตาราง



ในคิวรี่


23
ใน 1JobNo
 truckNo1 กับ TruckOwner1 คือชุดเดียวกันไหมครับ
เช่น TruckNo1 คู่กับ Truckowner1
TruckNo2 คู่กับ Truckowner2

แบบนี่ไหมถ้าใช้ต้องปรับใหม่

24
สร้างแบบเดียวกันครับ แต่สร้าง Union Query อีกตารางหนึ่ง เพราะข้อมูลที่ได้ต้องแยกกัน แต่สามารถรวมกันแสดงภายหลังได้จาก JobNo ครับ

โดยต้องปรับเปลี่ยน เอา IS NOT Null ออกทั้ง 2 คิวรี่เลยนะครับ เพราะเราต้องเก็บ JobNo ทั้งหมดของทั้ง TruckNo และ TruckOwn ไว้สร้างความสัมพันธ์กัน
โดยตัวรายงานต้องปรับเปลี่ยนเล็กน้อย โดยกำหนดแหล่งระเบียนสำหรับรายงานนี้ใหม่ครับตามตัวอย่าง

25
Truck Owner 1-10 คือฟิลล์ที่อยู่ใน tblTruck_Imp เหมือนกับ truck no 1 หรือเปล่าครับ
หรือ อยู่ในตารางอื่นๆ อธิบายเพิ่มหน่อยหรือมีภาพด้วยก็ดี

26
อ้างถึง
ขอEmailหน่อยครับ ผมส่งโปรแกรมให้ดู ขอคำแนะนำครับ
ได้ครับรบกวนอธิบายขั้นตอนเป็นข้อๆนะครับถึงขั้นตอนที่อยากได้ว่าเป็นแบบไหน

27
วิธีนี้ใช้ Union Query นะครับ โดยจับกลุ่ม Jobno ตาม Truck No 1 - 10 ที่มี โดยถ้าเป็นช่องว่างๆ ไม่มีข้อมูลก็จะไม่นำมาแสดง
ตัวอย่างโค้ด
โค๊ด: [Select]
select Jobno,[truck no 1] as TruckNo from tbltruck_imp WHERE [truck no 1] IS NOT NULL
Union
Select Jobno,[truck no 2] from tbltruck_imp WHERE [truck no 2] IS NOT NULL
Union
Select Jobno,[truck no 3] from tbltruck_imp WHERE [truck no 3] IS NOT NULL
Union
Select Jobno,[truck no N] from tbltruck_imp WHERE [truck no [N] IS NOT NULL;
์N คือ Field TruckNo N ที่มี ต่อลงมาเรื่อยๆ
เราจะได้ผลลัพธ์ ตามคิวรี่ชื่อ
UnionTruck_Imp


อ้างถึง
TruckNo นี้ใช้ใน JobNo อะไรบ้าง?
ที่ตัวรายงาน เราใช้การจัดกลุ่ม และใช้  TruckNo เป็น HeadGroup
และนำ Jobno มาวางไว้ในส่วน Detail เพื่อแสดง JobNo ตาม TruckNo ครับ

อ้างถึง
Truck นี้ใช้งานกี่งาน??
เมื่อได้คิวรี่ Union แล้วก็ใช้การ Count เพื่อนับจำนวนของ JobNo โดยลำดับตาม TruckNo ที่มี
โค๊ด: [Select]
SELECT UnionTruck_Imp.TruckNo, Count(UnionTruck_Imp.Jobno) AS จำนวนงาน
FROM UnionTruck_Imp
GROUP BY UnionTruck_Imp.TruckNo;
ลองดูการแสดงผลจากตัวอย่างนะครับ ถ้าต้องการแสดงแบบไหนอีกจะทำตัวอย่างให้ดูเน้อ :cool:


28
UNION QUERY เพื่อจับกลุ่ม Truck 1 ถึง 10 ครับ และ JopNo
ตัวอย่างเดี่ยวทำให้ดูเน้อ

29
ขอคำแนะนำวิธีป้องกัน ฟิวด์ ที่เป็นเลขที่ซ้ำกัน
อธิบายเพิ่มหน่อยครับ ป้องกันการซ้ำกันของตัวเลขในฟิลล์ หรือ ป้องกันไม่ให้แก้ไขข้อมูล หรืออะไร ?

30
ใช้การกำหนด  SourceObject เช่น
crosstabquery คือชื่อคิวรี่ที่เป็น crosstabquery
ชื่อฟอร์มหลักชื่อ Main
ชื่อฟอร์มย่อย Subform

Dim QueryName As String
QueryName = "Query." & "crosstabquery"
Forms("Main").Form.Subform.SourceObject = QueryName

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



31
 DoCmd.MoveSize 20000, 0, 0, 0

ลองปรับขนาดของตัวเลขดูครับอาจจะแก้เป็น 30,000 แบบนี้
 DoCmd.MoveSize 30000, 0, 0, 0
อีกอย่างที่คอมพิวเตอร์เครื่องหลักจอได้เช็ตได้แสดง 2 หน้าจอหรือยังครับ

32
เพิ่มเติมโค้ดอีกหน่อยก็ได้เลยครับ
โดยที่ฟอร์ม Fsale ที่เป็น ซัฟฟอร์ม ให้มี textboxที่เป็นฟิลล์ Cust_id และชื่อ Cust_id ด้วยนะครับ

Private Sub good_id_AfterUpdate()
Call CheckS_Price
End Sub
Sub CheckS_Price()
Dim LastDate As String
Dim strPurchase_history As String
If Not IsNull(Me.date_sale) And Not IsNull(Me.good_id) And Not IsNull(Forms!ACC_บันทึกขายสินค้า!Txtcust_id) Then
strPurchase_history = Nz(DLookup("[cust_id]", "[tblF_sale]", "[goods_id] = '" & good_id & "' And [cust_id] =" & Forms!ACC_บันทึกขายสินค้า!Txtcust_id & ""), 0)

LastDate = Nz(DLast("date_sale", "[tblF_sale]", "[goods_id] = '" & good_id & "' And [cust_id] =" & Forms!ACC_บันทึกขายสินค้า!Txtcust_id & ""), 0)
Me.s_price = Nz(DLookup("[s_price]", "[tblF_sale]", "cstr([date_sale]) ='" & LastDate & "' And [goods_id] ='" & good_id & "' And [cust_id] =" & Forms!ACC_บันทึกขายสินค้า!Txtcust_id & ""), 0)
End If
If Not IsNull(Forms!ACC_บันทึกขายสินค้า!Txtcust_id) Then
Me.cust_id = Forms!ACC_บันทึกขายสินค้า!Txtcust_id
End If

End Sub

หน้า: 1 [2] 3 4 5 ... 26