แสดงกระทู้

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 ... 12
1
โอว! วินโดว์

 :cool: :cool: :cool: :cool: XP ครับ รุ่นเก่าๆขี้เกียจเปลี่ยน โปรแกรมที่ใช้งานก็เสถียรดี ครับ ใช้กับ Homc และโปรแกรมเก่าๆซะส่วนใหญ่
อีกอย่าง เห็น Windows OS แล้ว ถ้าเห็นสเปคเครื่องแล้ว จะ โอวววว!!! กว่านี้  :shout: :shout:

2
บนมือถือจากรูปของท่าน PNR ด้านล่างนั้นยังปรกติครับ(ที่ผมเห็นมันจะมีเป็นรายการหลายบรรทัดนะครับ)

ตอนนี้ผมเข้าไปแก้สั่งปิดใว้ก่อนแล้วครับผม  :ouch:

คอมที่ทำงาน แสดงแบบนี้ครับ


3
มีในโทรศัพย์ ครับ จะแสดงตอนกดจะตอบคำถาม และด้านล่างของหน้าเว็บ Chromeโทรศัพย์ ส่วนในคอม ไม่แสดง

4
โค้ดง่ายๆ ใช้ Event Form_Current() ก็ได้ครับเช่น

Private Sub Form_Current()
Me.Text15 = Me.CurrentRecord
End Sub

5
รบกวนสอบถามการแปลงวันที่ใดๆก็ตามให้เป็นวันแรกของเดือนครับ เท่าที่หาเจอแต่ของ Excel จะได้สูตรประมาณนี้
=DATE(YEAR(A1),MONTH(A1),1)
ก็จะได้ว่า 12-2-2020 กลายเป็น 1-2-2020 คือเป็นวันแรกของเดือน
ต้องการผลลัพทธ์แบบนี้กับ access ใครทราบวิธีการรบกวนชี้แนะครับ

สมมุติฟิลล์วันที่ชื่อ Dates นะครับ

FirstDate: DateSerial(Year([Dates]),Month([Dates]),1)

6
แนวทางนะครับ

ใช้การสร้าง ฟอร์มแบบ Continuous Forms แล้วใช้ recordsetclone

แล้วใช้ การสร้าง Do while >  loop ให้ส่งได้ทุก Record ครับ
ให้ Loop จนครบทุก Record


7
อ้างถึง
1.อยากให้แสดง รหัสอาหาร,ชื่ออาหาร ทีไม่มีการสั่งซื้อ
ที่คิวรี่กดมุมมอง Sql เอาโค้ดนี้ไปวาง
โค๊ด: [Select]
SELECT รายการอาหาร.รหัสอาหาร, รายการอาหาร.ชื่อ
FROM รายการอาหาร
WHERE (((รายการอาหาร.รหัสอาหาร) Not In (select [รหัสอาหาร] from [การสั่งอาหาร])));



อ้างถึง
2.อยากให้แสดง รหัสอาหาร,ชื่ออาหาร ที่มีการสั่งซื้อมากที่สุด
รวมจำนวนการสั่งเรียงจากมากไปหาน้อย โค้ดตามนี้เลยครับ
โค๊ด: [Select]
SELECT การสั่งอาหาร.รหัสอาหาร, รายการอาหาร.ชื่อ, Sum(การสั่งอาหาร.จำนวนสั่ง) AS จำนวนการสั่ง
FROM รายการอาหาร RIGHT JOIN การสั่งอาหาร ON รายการอาหาร.รหัสอาหาร = การสั่งอาหาร.รหัสอาหาร
GROUP BY การสั่งอาหาร.รหัสอาหาร, รายการอาหาร.ชื่อ
ORDER BY Sum(การสั่งอาหาร.จำนวนสั่ง) DESC;

ถ้าอยากแสดงจำนวนการสั่งมากที่สุดอันดับที่ 1 ก็ใส่แบบนี้
โค๊ด: [Select]
SELECT TOP 1 การสั่งอาหาร.รหัสอาหาร, รายการอาหาร.ชื่อ, Sum(การสั่งอาหาร.จำนวนสั่ง) AS จำนวนการสั่ง
FROM รายการอาหาร RIGHT JOIN การสั่งอาหาร ON รายการอาหาร.รหัสอาหาร = การสั่งอาหาร.รหัสอาหาร
GROUP BY การสั่งอาหาร.รหัสอาหาร, รายการอาหาร.ชื่อ
ORDER BY Sum(การสั่งอาหาร.จำนวนสั่ง) DESC;

8
สร้าง backup ฐานจริงไว้ แล้วรีโมทไปแก้ให้ดีกว่าครับ ผมก็ไม่รู้ว่าฟอร์มจริงตั้งค่าไว้แบบไหน อธิบายยาก
หรือ รีโมท anydesk ไปดูจะสะดวกไหม ผมทักไลน์ไปหาท่านแล้วครับ

9
ลองปรับให้แล้วครับ ให้ดูโค้ดล่าสุดที่ข้อความนะครับ ผมใช้การ ซ่อนสถานนะที่เป็น Label ไว้ด้วย

ถ้าอยากจะให้โค้ดทำงานตอนกดบันทึก แทนสถานะ หลังการปรับปรุง ก็ใส่ว่า

โค๊ด: [Select]
Private Sub cmdSave_Click()
    Dim strStatus as string
    Me.Dirty = False
    DoCmd.SetWarnings False
    DoCmd.RunSQL "UPDATE qryWork SET qryWork.TerminatedDate = [txtTerminatedDate] WHERE (((qryWork.ContractorID)=[txtContractorID]));", dbFailOnError
    strStatus = Nz(DLast("[ContractorStatus]", "[qryWork]", "[NationalID]=[Forms]![frmEditWork]![txtNationalID]"))
    Me.[txtContractorStatus2] = strStatus
    If strStatus = "ยังปฏิบัติงานอยู่" Then
    [Forms]![frmEditWork]!Label41.Visible = True
    Else
    [Forms]![frmEditWork]!Label41.Visible = False
    End If
    DoCmd.SetWarnings True
End Sub

10
ลองดูตัวอย่างนี้ครับ
sub form ชื่อ frmsub

หรือส่งไฟล์มาทางกล่องข้อความครับเดียวผมดูให้

11
ท่านมาถูกทางแล้ว แต่ผิดนิดเดียวตรงอ้างชื่อฟิลล์นะครับ

หรือจะใช้ Expression แบบเดิมก็ได้เหมือนกัน แก้ตรง อ้างถึงฟิลล์ใหม่ก็ใช้ได้เลย
น่าจะแบบนี้ DLast("ContractorStatus", "qryWork", "[NationalID]=[Forms]![frmEditWork]![txtNationalID]")

หรือ Event Form Current

Private Sub Form_Current()
Me.txtContractorStatus = DLast("ContractorStatus", "qryWork", "[NationalID]=[Forms]![frmEditWork]![txtNationalID]")
End Sub

ตรงสีแดงต้องอ้างถึงชื่อฟิลล์ ไม่ใช่ชื่อ textbox โดยผมคิดว่าฟิลล์น่าจะชื่อ  NationalID หรือเปล่า

12
ไม่รู้แบบนี้หรือเปล่า คลิกแล้ว ไปแสดงที่อีกซัพฟอร์ม

13
เหมือนฟอร์มเก็บบิลที่ชำระ จะไม่ได้เปิดให้ให้เพิ่มข้อมูลใหม่ นะครับ
ถ้าเพิ่มเรคคอร์ดใหม่ไม่ได้ ใช้แค่เรคคอร์ดเดียวที่ฟอร์ม 2 ให้ลบโค้ด Docmd.gotorecord,,acnewrec ออกไป
ข้อมูลก็จะเพิ่มแค่เรคคอร์ดเดียวเมื่อกด ฟอร์ม1 เข้ามา


หรือถ้าฟอร์ม 2 นั้นจะปิดการเพิ่ม Record ใหม่ บนฟอร์ม
จะใช้วิธีอื่นๆก็ได้เช่น rs!Addnew หรือจะใช้การ AppendQeury ไปที่ F_receivable_total แล้วสั่ง Requery บนฟอร์ม2 เพื่อแสดง ID นั้นขึ้นมา ก็ได้เหมือนกันครับ

14
textbox ของ field voucher_s_id ของ frm01 ครับ ตั้งชื่อไว้ว่า voucher_s_id เลยก็ได้คับ

15
ดูเหมือนทั้งคู่จะเป็นซัพฟอร์ม โดยมี ฟอร์มหลักอีกที

จากรูปภาพ ผมว่าถ้าจะนำ voucher_s_id จาก Subform หนึ่ง มาวาง ในอีก Subform ใช้การสร้างตัวแปรเก็บค่าไว้แล้วเอาไปแสดงอีกทีเช่น
ผมกำหนด Form รายการบิลที่ค้างชำระ ชื่อ Frm01
             Form รายการบิลที่ต้องการชำระ ชื่อ Frm02
             Formหลัก ชื่อ Frmmain
 ใช้ Event Double Click

Private Sub voucher_s_id_DblClick(Cancel As Integer)
Dim strID As String
If MsgBox("ต้องการตัดบินใช่หรือไม่", vbYesNo, "สอบถาม") = vbYes Then
Me.Dirty = False
strID = Me.voucher_s_id
Forms!frmmain.Form.frm02.SetFocus
DoCmd.GoToRecord record:=acNewRec
Forms!frmmain.Form.frm02!voucher_s_id.SetFocus
Forms!frmmain.Form.frm02!voucher_s_id = strID
End If
End Sub

16
ลองดูจาก กระทู้นี้ครับ
https://www.thai-access.com/index.php?topic=1028.msg4550

วิธีการคือการกำหนดให้แสดงข้อมูลทั้งหมดของอีกตาราง ใช้การ Join Table ซึ่งในกระทู้นี้มีตัวอย่างคิวรี่ ครับ
ดูจากข้อมูลของคุณแล้ว ตารางที่นำมา JOin table กันน่าจะจากตาราง Employee กับ ตาราง OT Detail ครับ

ถ้าทำไม่ได้ ก็ส่งตัวอย่างไฟล์มาผมจะสร้างให้

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