แสดงกระทู้

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 - Eik Q Sang

หน้า: [1] 2 3 4
1
แก้ โค้ดปุ่มค้นหาเป็นแบบนี้ครับ

โค๊ด: [Select]
Private Sub Command14_Click()
If IsNull(txt_FirstName) And IsNull(txt_NickName) Then
MsgBox "กรุณาระบุ ชื่อพนักงาน หรือ ชื่อเล่น ก่อนค้นหา’", vbOKOnly, "Warning !!"
txt_EmpID2.SetFocus

ElseIf Not IsNull(txt_FirstName) And IsNull(txt_NickName) Then
Me.Filter = "(((FirstName) Like '*" & txt_FirstName & "*'))"
Me.FilterOn = True


ElseIf IsNull(txt_FirstName) And Not IsNull(txt_NickName) Then
Me.Filter = "(((NickName) Like '*" & txt_NickName & "*'))"
Me.FilterOn = True

End If
If IsNull(txt_EmpID2) Then
MsgBox "ไม่พบข้อมูล !!", vbOKOnly, "Warning !!"
Me.FilterOn = False
End If
Me.Refresh
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

2
ใช้ IF เช็ดเงื่อนไขเอาก็ได้แล้วครับเช่น


Private Sub btn_01_Click()
if IsNull(Me.txt_01) Then
Me.txt_01 = "1"
Elseif Me.txt_01 = "1" Then
Me.txt_01 = "0"
Elseif Me.txt_01 = "0" Then
Me.txt_01 = "1"
End if
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

3
Recordsort ของ ซัฟฟอร์มที่ชื่อ frmDepDoccSub ใส่โค้ดไปว่า

โค๊ด: [Select]
SELECT qryDepDoc.Cabinet, qryDepDoc.Shelf, qryDepDoc.Block, qryDepDoc.Sequence, qryDepDoc.DateRecieve, qryDepDoc.AppNo, qryDepDoc.CIF, qryDepDoc.CusName, qryDepDoc.DocTypeCode, qryDepDoc.DocTypeName, qryDepDoc.DateStart, qryDepDoc.Status, qryDepDoc.[01], qryDepDoc.[02], qryDepDoc.[03], qryDepDoc.[04], qryDepDoc.[05], qryDepDoc.[06]
FROM qryDepDoc
WHERE (((qryDepDoc.Cabinet)=[forms]![frmSearchDoc]![Cb_Cabinet]) AND ((qryDepDoc.Shelf)=[forms]![frmSearchDoc]![Cb_Shelf]) AND ((qryDepDoc.Block)=[forms]![frmSearchDoc]![Cb_Block]))
ORDER BY qryDepDoc.Sequence DESC;
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

4
อ้างถึง
กรอกข้อมูลครั้งที่ 2 โดยกรอก AppNo,CIF แต่พอจะใส่วันที่โปรแกรมขึ้น pop up ดังรูปน่ะครับ
ให้ลบ คำส่ง msgbox ออกไปพอดีผมทำมาเช็คค่าของตัวแปร แล้วลืมลบครับ  :XD:

ลบ MsgBox strSequence ออกไปครับ

อ้างถึง
ออกจากโปรแกรมแล้วเข้าใหม่ กรอกข้อมูลครบถ้วน แล้วกดปุ่มลบข้อมูล เกิด error ตามรูป
ปุ่มลบผมไม่ได้ทำให้ครับ เพราะที่ตอนคุณบอกมาแค่ให้ช่วยทำระบบ รันลำดับ และ ให้มีการแจ้งเตือน
เมื่อไม่ได้เลือกรายการเอกสารเท่านั้นครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

5
ผมได้ทดสอบปุ่มดูแล้วพบว่า
1.ลองใส่โค้ดดูแล้วลองไม่ระบุ 01-06 ไป แล้วกดปุ่มเพิ่ม แล้วกด "ตกลง" พบว่า ระบบไม่แจ้งเตือนครับอาจารย์ หรือว่าต้องระบุซับฟอร์มด้วยครับ
2.ลองใส่โค้ดดูแล้วลองไม่ระบุ 01-06 ไป แล้วกดปุ่มเพิ่ม แล้วกด "ไม่" พบว่า ระบบมีการเพิ่มรายการแต่ไม่รัน Sequence ให้ครับ
ไม่ทราบว่าต้องแก้ไขยังไงบ้างครับ อาจารย์ ขอบคุณมากครับผม

ลองดูตัวอย่างนี้ครับไม่รู้ได้ไหม
แก้การสร้าง SEQ ใหม่
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

6
งั้นโค้ดน่าจะแบบนี้

If MsgBox("คุณต้องการเพิ่มรายการใช่หรือไม่?", vbExclamation + vbYesNo, "Message Box") = vbYes Then

If IsNull(Me.[01]) And IsNull(Me.[02]) And IsNull(Me.[03]) And IsNull(Me.[04]) And IsNull(Me.[05]) And IsNull(Me.[06]) Then
ElseIf Me.[01] = "0" And Me.[02] = "0" And Me.[03] = "0" And Me.[04] = "0" And Me.[05] = "0" And Me.[06] = "0" Then
    MsgBox "ต้องเลือกข้อมูลอย่างน้อย 1 รายการ", vbCritical, "Message Box"
    Else
   DoCmd.GoToRecord , , acNewRec
   Me.txt_CodeType = ""
End If


Else
DoCmd.SetWarnings True
Me.Undo
Me.Refresh
End If

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

7
ความต้องการคือ ถ้าเพิ่มข้อมูลใหม่
รายละเอียดสำคัญคือต้องมีข้อมูลในฟิลล์ 01 หรือ 02 หรือ 03 ใช่ไหมครับ
ถ้าไม่มี ข้อมูลพวกนี้ ก็อยากให้ไม่สามารถเพิ่มข้อมูลใหม่ได้ และมีการแจ้งเตือน ใช่ไหม
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

8
Cabinet - ตู้
Shelf - ชั้น
Seq - ลำดับ

รันเลขตู้นั้นมีแค่ 1/1/1 1/1/2 1/1/3 ไปจนถึง 1/1/N ใช่ไหม
ไม่มี 1/2/1  1/2/2  หรือ 3/1/1 ใช่ไหมครับ


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

9
มีฟอร์มทั้งหมด 2 ฟอร์มชื่อ "collection","ข้อมูลทั้งหมด" ทั้ง 2 ฟอร์มพนักงานจะเปิดใช้พร้อมกัน
คำถามคือ ปัจจุบันผมใช้งานอยู่หน้าฟอร์ม collection และจะเปลี่ยนไปใช้หน้าฟอร์ม ข้อมูลทั้งหมด อยากให้ ฟอร์ม collection ปิดอัตโนมัติต้องทำยังไงครับ

ที่ฟอร์ม ข้อมูลทั้งหมด ใส่ Event แบบนี้เข้าไปครับ
การทำงานคือเมื่อเราใช้งานอยู่ที่ collectionเมื่อเราไปกดที่  ฟอร์มข้อมูลทั้งหมด
จะทำให้ ฟอร์มข้อมูลทั้งหมด ถูก โฟกัสเราก็สั่งปิดฟอร์ม collection ได้เลย

Private Sub Form_GotFocus()
DoCmd.Close acForm, "collection"
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

10
ห้อง MS Access / : รบกวนสอบถาม QR Code ครับ
« เมื่อ: 04 ก.พ. 63 , 12:49:36 »
อันนี้สร้างได้ทั้งบนฟอร์มและรายงานเลยครับ


เครดิต อ.TTT
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

11
ห้อง MS Access / : รบกวนสอบถาม QR Code ครับ
« เมื่อ: 30 ม.ค. 63 , 12:14:31 »
https://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=5576
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

12
เพิ่มเติมต่อจากอาจารย์อีกหน่อยนะครับ

สมมุติตารางชื่อ Table1
Field ชื่อ  CusID,CusName,DocNumber,DocAddDate
Textbox ชื่อ txtFindCusID / txtFindCusName /  txtFindDocNum / txtFindDocAddDate
Form ในการค้นหา ชื่อ frmSearchCustomer
โค๊ด: [Select]
Private Sub Command40_Click()
Dim StrFilter1, StrFilter2, StrFilter3, StrFilter4 As String
Dim GroupFilter As String

'กำหนดเงื่อนไขให้กับตัวแปรว่าถ้ามีข้อมูลจะนำ Where Clause นี้มาต่อประโยคใน Sql
If Not IsNull(Me.txtFindCusID) Then
StrFilter1 = "(((Table1.CusID)=[forms]![frmSearchCustomer]![txtFindCusID])"
End If
If Not IsNull(Me.txtFindCusName) Then
StrFilter2 = "(((Table1.CusName)=[forms]![frmSearchCustomer]![txtFindCusName])"
End If
If Not IsNull(Me.txtFindDocNum) Then
StrFilter3 = "(((Table1.DocNumber)=[forms]![frmSearchCustomer]![txtFindDocNum])"
End If
If Not IsNull(Me.txtFindDocAddDate) Then
StrFilter4 = "(((Table1.DocAddDate)=[forms]![frmSearchCustomer]![txtFindDocAddDate])"
End If

'นำเงื่อนไขที่ได้จากด้านบน มาต่อประโยคกัน
GroupFilter = IIf(StrFilter1 = "", "", StrFilter1) & IIf(StrFilter2 = "", "", StrFilter2) & IIf(StrFilter3 = "", "", StrFilter3) & IIf(StrFilter4 = "", "", StrFilter4)

'ใช้ Replace เพื่อใช้ And ต่อเงื่อนไขใน Where Clause
GroupFilter = Replace(GroupFilter, ")(((", ") and ((")

'นำประโยคที่ได้มากำหนด RecordSource
If IsNull(Me.txtFindCusID) And IsNull(Me.txtFindCusName) And IsNull(Me.txtFindDocAddDate) And IsNull(Me.txtFindDocNum) Then
Me.RecordSource = "Select * from table1;"
Else
Me.RecordSource = "Select * from table1 where " & GroupFilter & ");"
End If
End Sub

ข้อดีคือ  สามารถเลือกค้นหาข้อมูลได้ทุก textbox ที่อยากค้นและ เราใช้การสร้าง RecordSource แค่อันเดียว เพราะ Sql ที่ได้มาจากการสร้างเงื่อนไขค้นหาด้านบนไว้หมดแล้ว
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

13
ไฟล์ตัวอย่างครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

14
ใช้ BeforeUpdate เช็คก็ได้คับ

ที่ปุ่มบันทึกใส่
โค๊ด: [Select]
Private Sub CmdSave_Click()
DoCmd.RunCommand acCmdSaveRecord
End Sub

โค๊ด: [Select]
Private Sub Form_BeforeUpdate(Cancel As Integer)
If MsgBox("คุณต้องการบันทึกข้อมูลหรือไม่?", vbQuestion + vbYesNo, "Save Confirmation!!") = vbYes Then
MsgBox ("บันทึกข้อมูลเรียบร้อย!")
Else
Cancel = True
Me.Undo
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

15
ตรงคำสั่งที่ปุ่ม Detail ที่เป็น

    DoCmd.OpenForm "frmLGDocDep", , , stLinkCriteria

ให้เพิ่ม OpenArgs เป็น Me.Address เพื่อส่งค่า Address ไปยังฟอร์มใหม่ที่เปิด

    DoCmd.OpenForm "frmLGDocDep", , , stLinkCriteria, , , Me.Address

ในฟอร์ม frmLGDocDep ตรง control ที่เป็น Address ให้ตั้ง Default Value เป็น = OpenArgs ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

16
ไม่ทราบว่าต้องการเขียนแบบ VBA ไหมคะ ถ้า VBA เป้กำลังทำอยู่เลยค่ะใช้ฟังชันก์ VLOOKUP
โพสต์นี้ได้รับคำขอบคุณจาก: Eik Q Sang

หน้า: [1] 2 3 4