แสดงกระทู้

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 [4] 5 6 7
55
กำหนด Format ครับ
" รายการนำเข้า จำนวน"& Format([txtจำนวนเงิน], "Standard") &" บาท"

โค๊ด: [Select]
Format (210.6, "#,##0.00")
Result: '210.60'

Format (210.6, "Standard")
Result: '210.60'

Format (0.981, "Percent")
Result: '98.10%'

Format (1267.5, "Currency")
Result: '$1,267.50'
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

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

57
เพิ่มเป็นแบบนี้ครับ
โค๊ด: [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

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

59
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

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

61
ลองนำไปทดสอบดูนะครับ

ขั้นตอนแรกสร้าง Module ขึ้นมา แล้วเอาโค้ดนี้ไปวาง
โค๊ด: [Select]
Function InsertSpace(strInput As String, n As Long) As String
Dim strTemp As String
Dim lngIndex As Long

For lngIndex = 1 To Len(strInput) Step n
strTemp = strTemp & " " & Mid$(strInput, lngIndex, n) 'ตรง " "   อยากให้กว้างกว่านี้อีกก็กด spacebar เพิ่มอีกได้
Next lngIndex
InsertSpace = Mid$(strTemp, 2)
End Function

ขั้นที่ 2 เวลาจะเรียกใช้กับ Field ไหน ยกตัวอย่าง ฟิวส์ POSID มีสตริงคือ 123456
         ให้ใส่ ประโยคนี้เข้าไปใน ControlSource ของ textbox ในรายงานได้เลย
         เช่น
       
โค๊ด: [Select]
=InsertSpace([POSID],1) '1 คือให้เว้นช่องทุก 1 ตัวอักษรนะครับ ถ้าอยากให้ แบ่งทุก 3 ตัวอักษรใส่เลข 3 แทนได้
       ที่รายงาน textbox ดังกล่างจะแสดงเป็น 1 2 3 4 5 6
       ไม่รู้ว่าอยากได้แบบนี้หรือไม่ ? ถ้าไม่ใช่อธิบายเพิ่มเติมมาอีกหน่อยนะครับผมยังไม่ค่อยเข้าใจโจทย์  :sweat: :sweat:
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

62
แก้โค้ดตรงนี้ครับ จะบันทึกได้ปกติ

โค๊ด: [Select]
Private Sub BtnSave_Enter() 'ปกติเมื่อแสกน Barcode แล้วเครื่องจะมีระบบ Enter อัตโนมัติ คำสั่งนี้จะทำงานเองทันที คือบันทึกลงตาราง
Dim strBarcode As String
On Error Resume Next
strBarcode = Forms!FrmStart_Working!Barcode
strBarcode = Replace(strBarcode, " ", "")
Barcode = strBarcode
If IsNull(DLookup("EmpName", "tblEmployee", "EmpID='" & Forms!FrmStart_Working!Barcode & "'")) Then
Me.Lb_Status.Caption = "ไม่พบข้อมูลพนักงานคนนี้กรุณาลงทะเบียนก่อน"
Me.Barcode.SetFocus
Me.Undo
Else
Me.txtTimeIn = Format(Now(), "HH:mm:ss AM/PM")
Me.txtNameEmployee = DLookup("EmpName", "tblEmployee", "EmpID='" & Forms!FrmStart_Working!Barcode & "'")
Call SaveRecord
Me.Lb_Status.Caption = "บันทึกข้อมูลเสร็จเรียบร้อย"
Me.Barcode.SetFocus
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

63




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

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

65
สมมุติฟิลด์เลขลำดับที่ชื่อ 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

66
สมมุติเทเบิลชื่อ 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

67
สมมติว่า มีฟิลด์ อยู่ 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

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

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



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

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

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

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

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

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

การสร้างโปรแกรม ต้องกำหนดเป้าหมาย และทำเป็นขั้นตอนครับเช่น
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

72


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

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

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

หน้า: 1 2 3 [4] 5 6 7