แสดงกระทู้

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 - thanapol.w

หน้า: 1 [2]
17
แนะนำว่าก่อนอื่นคุณต้องเขียนเงื่อนไขออกมาให้หมดก่อนครับ เพราะการทำสาแหรกตระกูลน่ะ เป็นเรื่องที่ยุ่งมากเคยรับมา 2 งาน ราคาหลักหมื่นยังไม่คุ้มกับงานที่ทำเลยครับ (บ่นเฉยๆ)

เงื่อนไขที่ว่าเช่น

1. ข้อมูลย้อนหลังสายตระกูลไปถึงไหน
2. ความสัมพันธ์ (ต้องไม่มีสระอุ) เป็นแบบ 1:1 หรือ 1:M (สามีมีภรรยาได้หลายคนหรือไม่)
3. ข้อมูลจะมี 2 ส่วนที่เกี่ยวข้องกันคือ สายตระกูล และข้อมูลส่วนบุคคล ดังนั้นให้แยกเรื่องสายตระกูลเป็นหลักก่อน ส่วนที่อยู่น่ะค่อยใส่เข้าไปภายหลังได้
4. เห็นว่ามีใส่เรื่อง "เลขที่บัตร ปชช." แน่ใจหรือเปล่าครับ ว่าจะใส่ข้อมูลส่วนนี้ เพราะปัญหาตรงนี้เยอะมากนะขอบอก ดังนั้นกำหนด ID บุคคลแทนจะดีกว่า
5. เรื่องความย้อนแย้งที่คุณว่าน่ะ จะสร้างปัญหาเมื่อสายตระกูลใหญ่มากๆ ได้ เพราะอาจเกิดกรณี หลานชั้น 3 ของตระกูล มาแต่งงานกับเหลนชั้น 4 ของตระกูลแต่คนละสายได้ ดังนั้นถ้าวางระบบเป็น Layer โดยไม่ต้องสนใจเงื่อนไขพวกนี้จะดีกว่า เพราะเรื่องนี้เป็นการบันทึกความจริง ซึ่งความจริงก็จะมีเงื่อนไขแบบนี้อยู่ในตัวอยู่แล้ว
6. มองหาแกนหลักของตระกูล เช่น จากต้นตระกูล > รุ่นที่ 2 ที่เป็นลูกของต้นตระกูล พวกสามี/ภรรยา ก็ใช้เป็นข้อมูลรองของรุ่น 2 (เหมือนกับการเพิ่มข้อมูลเบอร์โทรอะไรงี้)
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

18
ห้อง MS Access / : การรันเลขสัญญา
« เมื่อ: 23 ธ.ค. 62 , 10:48:28 »
ลองดูไม่รู้ต้องการแบบนี้ไหม

ขั้นตอนที่ 1 สร้างคิวรี่ ตั้งชื่อว่า QryMax
โค้ด
โค๊ด: [Select]
SELECT Table1.RunC, Nz(Max(Right([runrun],4)),0) AS [Max]
FROM Table1
GROUP BY Table1.RunC;

ขั้นตอนที่ 2 สร้างคิวรี่ ตั้งชื่อว่า QryMaxInt
โค้ด
โค๊ด: [Select]
SELECT qryMax.RunC, Val([Max]) AS MaxInt
FROM qryMax;

ที่ฟอร์ม ปุ่ม Run ใส่โค้ด
โค๊ด: [Select]
Private Sub cmdRun_Click()
Dim intMax As Integer
    If Not IsNull(Me.RunC) Then
    Me.Dirty = False
    intMax = Nz(DLookup("MaxInt", "QryMaxInt", "RunC = " & Me.RunC & ""))
    intMax = intMax + 1
    Me.runrun = "C-" & Year(Date) & "-" & RunC & Right("0000" & intMax, 4)
    End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

19
อ้างถึง
ถ้าทำตารางแปลงนาเป็น 1 ตาราง แล้วใน field ฤดูกาลผลิตลง แบบความคิดเห็นที่ 2  จะต้องทำเทียบเนื้อที่อย่างไร
- และอีก 1 อย่าง คือถ้าทำตารางเดียว จะใช้ อะไรเป็น คีย์หลัก เพราะรหัสแปลงก็จะซ้ำกัน

ถ้าสังเกตุดีๆ ข้อมูล FieldID MemberID ตัวเดียวกัน ใช้ GroupBy ได้เลย ถ้ามันเหมือนกันก็จะเหลืออันเดียวแล้วครับ

ส่่งตัวอย่างมาทางไลน์ครับผมทำให้
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

20
ข้อมูลประจำปีมาจาก 2 ตารางใช่หรือเปล่าครับเช่น Area2018 กับ Area2019
สร้าง Union Query และ Group By Field ID กับ MEMBER_ID  ครับ

หรือการ Join Table เชื่อมความสัมพันธ์ของ Field ID และ MEMBER_ID ของสองตารางเข้าด้วยกันและดึง Area...... ของทั้งสองปีลงมา
และสร้าง Field ลบจำนวนแปลงขึ้นมา  /  ส่วนของ remake ใช้การดึงค่าที่มีมาแสดงทั้งสองอย่างได้
เช่น area2018 Remark1 ระบุ  ขุดบ่อปลา
      area2019 Remark2 ระบุ  ตัดถนนเข้าสวน

ตรงField Remark เราก็ระบุเช่น SRemark:Remark1 & "," & Remark2
ข้อมูลที่แสดงจะได้เป็น ขุดบ่อปลา,ตัดถนนเข้าสวน เป็นต้น
หรือถ้าจะแสดง remark แค่ปีล่าสุดเท่านั้นก็ดึง remark2 มาแสดงได้เลย

หรือถ้าไม่อยาก Fix ปีทั้งสองไว้แบบตายตัว จะสร้างฟอร์มกำหนดปีที่จะแสดงข้อมูลก็ทำได้เหมือนกันครับ
โดยใช้การUnion Query ข้อมูลทั้ง 2 ตารางเข้าด้วยกันและกรองข้อมูลจาก Control ระบุปีมาก่อนแล้วสร้างคิวรี่ย่อยในการแสดงข้อมูล
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

21
คงประมาณนี้ คร่าวๆ
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

22
รูปเกษตรกร ใส่ได้คับ เราใช้การ Attachment แล้ว นำมาแสดงบนฟอร์ม
ออกแบบส่วนต่างๆของฟอร์มมาคับ
แล้วส่งมาทาง Inbox เดี่ยวผมลองสร้างให้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

23
สวัสดีครับ ผมขอเสนอแบบนี้นะครับ ไม่รู้ว่าโอเคไหม
จากข้อมูลนี้มีแบ่งด้วยกัน 2 ส่วนคือ
1. ส่วนที่เป็นประวัติและข้อมูลส่วนตัวของเกษตรกร
2. ข้อมูลส่วนของโฉนดที่ดิน จำนวนไร่ และสถานะการปลูกและการตรวจสอบ

ID น่าจะสร้างจากเลขบัตรประจำตัวประชาชนเพราะไม่มีค้าซ้ำกันแน่นอนครับ
การออกแบบความสัมพันธ์ (ReletionShip) เลยกำหนดให้เป็นแบบ One To Many
เพราะเกษตรกร 1 คนอาจจะมีแปลงนาได้หลายๆแปลง หรือมีโฉนดหลายใบครับซึ่งถ้าเรากำหนด
ID จากเลขบัตรประจำตัวประชาชนก็จะง่ายต่อการค้นหา การลบ แก้ไข และการจัดกลุ่มครับ

ในส่วนของเลขที่โฉนดที่ดิน จะสร้าง PrimaryKey ไว้เพื่อเลขที่โฉนดแปลงนา ต้องไม่ซ้ำกันคับ

ส่วนที่ผมคิดว่าน่าจะออกแบบตารางออกมาก็ประมาณนี้ครับ


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


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

24
ที่จริง ผมว่าเมื่อไม่เจอรายการ ก็ให้เปิดฟอร์ม มาเพิ่มนรายการดีกว่า เพราะถ้าจะเพิ่ม ฟิลล์ cat ด้วยท่านจะกรอกตรงไหนละคับ ผมเลยคิดว่าให้เปิดฟร์อมรายการมาเพิ่มรายการใหม่จะดีกว่าคับ เมื่อเพิ่มรายการมหม่ก็ให้ไปแสดงรายการในคอมโบบ๊อก ทันที เดี่ยวลองทำตัวอย่างให้ดูคับ
โพสต์นี้ได้รับคำขอบคุณจาก: thanapol.w

หน้า: 1 [2]