แสดงกระทู้

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

หน้า: [1] 2 3
1

ใช้การสร้าง HeadGroup นะครับ
ใช้การตัดสระโดย Replace()

โค้ด
SELECT Table1.CustomerName, Left(Replace(Replace(Replace(Replace(Replace([CustomerName],"เ",""),"แ",""),"ไ",""),"ใ",""),"โ",""),1) AS GroupString, *
FROM Table1
ORDER BY Left(Replace(Replace(Replace(Replace(Replace([CustomerName],"เ",""),"แ",""),"ไ",""),"ใ",""),"โ",""),1);

กรณีถ้าอยากให้แต่ละตัวอักษรแยกหน้าออกไปเช่น หน้าที่ 1 หมวดอักษร ก หน้าที่ 2 หมวดอักษร ข
(แสดงผลในมุมมองเหมือนพิมพ์หรือ Print Preview Mode)
สามารถกำหนดค่าตามรูปด้านล่างได้เลยครับ




ลองดูตัวอย่างครับ


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

2
ตอนเลือกเสร็จ  ต้องมีคำสั่งให้ซับฟอร์มรีเฟรซ หรือ รีคิวรี่ ด้วยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

3
เพิ่มเป็นแบบนี้ครับ
โค๊ด: [Select]
Private Sub Combo0_AfterUpdate()
If Me.Combo0 = "1" Then
Me.Text1.Locked = False
Me.Text1 = "0"
Me.Text2.Locked = False
Me.Text2 = "0"
Me.Text3.Locked = False
Me.Text3 = "0"
Me.Text4.Locked = True
Me.Text4 = Null
Me.Text5.Locked = True
Me.Text5 = Null
Me.Text6.Locked = True
Me.Text6 = Null
ElseIf Me.Combo0 = "2" Then
Me.Text1.Locked = False
Me.Text1 = "0"
Me.Text2.Locked = False
Me.Text2 = "0"
Me.Text3.Locked = False
Me.Text3 = "0"
Me.Text4.Locked = False
Me.Text4 = "0"
Me.Text5.Locked = False
Me.Text5 = "0"
Me.Text6.Locked = False
Me.Text6 = "0"
ElseIf Me.Combo0 = "3" Then
Me.Text1.Locked = False
Me.Text1 = "0"
Me.Text2.Locked = False
Me.Text2 = "0"
Me.Text3.Locked = True
Me.Text3 = Null
Me.Text4.Locked = True
Me.Text4 = Null
Me.Text5.Locked = True
Me.Text5 = Null
Me.Text6.Locked = True
Me.Text6 = Null
Else
Me.Text1.Locked = True
Me.Text1 = Null
Me.Text2.Locked = True
Me.Text2 = Null
Me.Text3.Locked = True
Me.Text3 = Null
Me.Text4.Locked = True
Me.Text4 = Null
Me.Text5.Locked = True
Me.Text5 = Null
Me.Text6.Locked = True
Me.Text6 = Null
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

4
ขอบคุณครับ ตั้งตารอเลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

5
Work order คือชื่อฟิลล์ คับจากโค้ดน่าจะเป็น string ครับ
ส่วน  Like '*'" คือแสดงทั้งหมด

ถ้าอยากสร้างการค้นหาแบบหลายเงื่อนไขลองแบบนี้

Dim sql As String
    sql = "SELECT * FROM [ชื่อตาราง] WHERE [รหัสงาน] Like '" & Nz(Me.cbWorkID, "*") & "' AND [กลุ่มที่ทำ] Like '" & Nz(Me.cbGroupWork, "*") & "' AND [วันส่งงาน] Like '" & Nz(Me.txtWorkSendDate, "*") & "'"
    Forms![ชื่อฟอร์ม].RecordSource = sql

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

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

6
คำตอบที่แล้วผมไม่ได้มีเวลาไล่ตามนิพจน์หรือสูตรจำนวนมากมาตรวจสอบนะครับ ถ้าที่คุณตั้งนั้นถูกอยู่แล้ว สุดท้ายแล้วก็หนีไม่พ้นค่าและประเภทข้อมูลเท่านั้นเอง คุณลองค่อยๆตรวจสอบไปทีละนิพจน์ดูครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

7




อยากให้ค่า Error หายไปครับ
ตรง brithday จะมีค่าว่าง ซึ่งต้องการเว้นว่างไว้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

8
ผมมีข้อมูลอยู่ 70 เรคคอด
เอามาทำ รายงาน โดยที่ในแต่ละหน้า ต้องการเพียงแค่ 15 เรคคอด
แล้วตัดขึ้นหน้าใหม่ โดยแต่ละหน้า มีบรรทัด Sum ด้วย
ผมต้องตั้งค่าตรงไหน หรือ ทำอย่างไรบ้างครับ
ขอบคุณครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

9
สมมุติฟิลด์เลขลำดับที่ชื่อ R และมี data type เป็น Integer หรือ Long นะครับ

SQL = "update M4_sobgen_sci T0 set R = dcount('*', 'M4_sobgen_sci', 'room_sob = ''' & T0.room_sob & ''' and number_sob < ''' & T0.number_sob & '''')"
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

10
สมมุติเทเบิลชื่อ T และ data type ของฟิลด์ห้องสอบเป็น Numeric

Dim SQL as String

SQL = "update T as T0 set room_sob = int(dcount(""*"", ""T"", ""number_sob < "" & T0.number_sob)/40)+1"
CurrentDB.Execute SQL, dbFailOnError
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

11
สมมติว่า มีฟิลด์ อยู่ 2 ฟิลด์ ชื่อ  number_sob  (เลขประจำตัวสอบ)  และ  room_sob  (ห้องสอบ)
เลขประจำตัวสอบ จะเรียงจากน้อยไปหามากเช่น   21001  21002  ไปเรื่อยๆ เช่นถึง  21900     
- ต้องการสร้างปุ่ม โดยการเขียนโค๊ด  ให้ใส่หมายเลขห้องสอบ  40 คนแรก (เลขประจำตัวสอบจากน้อยไปหามาก 40 หมายเลขแรก) เป็นห้องสอบที่ 1 (ใส่เลข 1 ในฟิลด์ room_sob)  ต่อไป คนที่ 41-80  ให้ เขียนเลข 2 ในฟิลด์  room_sob   คนที่ 81-120  ให้ เขียนเลข 3 ในฟิลด์  room_sob  ทำเช่นนี้ไปเรื่อยๆ ครับ
-  สรุปคือ 40 คนแรก ให้เขียนเลข  1 ในฟิลด์  room_sob  , 40  คนต่อไป  ให้เขียนเลข  2 ในฟิลด์  room_sob ,  40  คนต่อไป  ให้เขียนเลข  3 ในฟิลด์  room_sob , ทำแบบนี้ไปเรื่อยๆ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

12
Excel มีให้โหลดเป็นโค้ดหรืออะไรครับ อยู่ที่เวปไหน จะได้ดูว่ามันเป็น VBA อยู่แล้วหรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

13
ครับ ต้องตั้งค่าตรงนี้เป็นไทย หรือ อังกฤษ ครับ



ตัวอย่างแปลงแล้วด้านล่างครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

14
อาจสร้าง 2 เทเบิลเพื่อเก็บข้อมูลชั่วคราวสำหรับ ที่ดินที่เลือกมาทำธุรกรรม และสำหรับ ป้อนที่ดินที่เกิดใหม่หลังจากธุรกรรม แล้วพอคลิก สร้างธุรกรรม ก็เอาข้อมูลเหล่านี้ไปสร้างลงเทเบิลจริงอีกที ส่วนการเขียนโค้ดสำหรับสร้างเรคอร์ด กรณีนี้มีหลายเรคอร์ดและหลายฟิลด์ แนะนำใช้ .AddNew, .Edit และ .Update สำหรับ Recordset ต่างๆที่เกี่ยวข้อง จะดูสะอาดตาดีกว่าเขียน SQL INSERT/UPDATE statement ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

15
ห้อง MS Access / : Record Source
« เมื่อ: 26 ก.พ. 63 , 11:42:02 »
ก่อนอื่นถ้าน้องอยากเริ่มสร้างโปรแกรม สิ่งเริ่มต้นที่ควรศึกษาก่อนคือ
1.ER Diagram

2.ศึกษาความสัมพันธ์ของตาราง (RelationShip)

3.ศึกษาการทำ normalization เพื่อให้ได้ข้อมูลที่ถูกต้องไม่ซ้ำซ้อนกัน

รวม ทุกขั้นตอนจากลิ้งนี้ เครดิตอาจารย์ TTT
https://www.youtube.com/watch?v=HuztS7t9hZc link

การสร้างโปรแกรม ต้องกำหนดเป้าหมาย และทำเป็นขั้นตอนครับเช่น
1.กำหนดวัตถุประสงค์ของฐานข้อมูลว่าเราจะสร้างเพื่ออะไร (ศึกษา ER Diagram)
2.ค้นหาและจัดระเบียบข้อมูล ที่คุณอาจต้องการบันทึกไว้ในฐานข้อมูล เช่น ชื่อผลิตภัณฑ์และหมายเลขคำสั่งซื้อ ชนิดข้อมูลเช่น เป็น อักษร วันที่ ตัวเลข อื่นๆ
3.แบ่งข้อมูลเป็นตาราง   
4.เปลี่ยนรายการข้อมูลเป็นคอลัมน์
5.ระบุคีย์หลัก  เลือกคีย์หลักของแต่ละตาราง คีย์หลักเป็นคอลัมน์ที่ใช้ระบุแถวแต่ละแถวแบบไม่ซ้ำกัน ตัวอย่างอาจเป็น ID ผลิตภัณฑ์หรือ ID คำสั่งซื้อ
6.ตั้งค่าความสัมพันธ์ตาราง   (ศึกษาความสัมพันธ์ของตาราง (RelationShip))
7.จำกัดการออกแบบของคุณ  สร้างตารางแล้วเพิ่มระเบียนข้อมูลตัวอย่างบางระเบียน ดูว่าคุณได้รับผลลัพธ์ที่คุณต้องการจากตารางของคุณหรือไม่ ปรับเปลี่ยนการออกแบบตามจำเป็น (การทำ normalization)


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

ซึ่งการกำหนด Gen , Size , offten และ Type นั้น เปรียบเสมือน การแยกส่วนต่างๆ มาเก็บไว้รวมกัน เท่านั้น ไว้เป็นตัวเลือก ในการระบุ รายละเอียดของรถ ในตาราง tbl_Car ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

16


ที่ออกแบบดูประมาณนี้ถูกต้องไหมครับ

ตัวอย่างการแยกที่ดินออกเป็น 2 แปลง

PK  รหัสที่ดิน (ai) + ลำดับ(ค่าเริ่มต้น 0 ) หากเป็นที่ดินที่เพิ่มเข้าในระบบใหม่ จะมีค่าลำดับเป็น 0
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

หน้า: [1] 2 3