แสดงกระทู้

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 ... 22 23 24 [25] 26 27 28 ... 32
433
อยากทำฟอร์ม access
 ข้อความใน textbox ก่อนกรอกข้อมูล แล้วพอกดที่ text ให้ข้อความหาย เห็นกับ ช่องค้นหาของเว็บนี้ครับ
ไม่รู้ว่าเรียกแบบนี้ว่าอะไรครับ



สมมุติ มี textbox ชื่อ text0 นะครับ เราจะใช้ 3 event

Private Sub Form_Current()
    Me.Text0.ForeColor = RGB(200, 200, 200)
    Me.Text0.Value = "My Program Custom Search"
End Sub

Private Sub Text0_Exit(Cancel As Integer)
If IsNull(Me.Text0) Then
    Me.Text0.ForeColor = RGB(200, 200, 200)
    Me.Text0.Value = "My Program Custom Search"
 End If
End Sub

Private Sub Text0_GotFocus()
If Me.Text0.Value = "My Program Custom Search" Then
 Me.Text0.Value = Null
 Me.Text0.ForeColor = RGB(0, 0, 0)
 End If
End Sub

ลองดูครับ
โพสต์นี้ได้รับคำขอบคุณจาก: PookPuy, Misstract

434
มันมีวิธีการทำได้ไม่ยากเลย แต่ต้องมีรายละเอียดของแต่ละ ข้อที่ต้องการถามเช่น
1.มีฟอร์มชื่ออะไร
2.ตัวรายงานชื่ออะไร
3.มี textbox หรือ control ที่ใช้ชื่ออะไร เพื่อใช้ในการอ้างอิงตอนเขียนโค้ด
4.ควรมีรูป หน้าฟอร์มที่ออกแบบไว้ ว่าคุณสร้างไว้แบบไหน เพื่อจะได้แนะนำได้ถูกต้อง
ผมคงไม่ได้ทำตัวอย่างทั้งหมดนี้ให้เพราะเป็น งานส่งอาจารย์
ผมอยากให้ทำเองติดตรงไหน ค่อยสอบถามจะดีกว่าครับ
โพสต์นี้ได้รับคำขอบคุณจาก: Sornram Ourairum, ิboonyarit

435
อ้างถึง
การจะกำหนดเงื่อนใขให้ต้องสอบผ่าน ถึงจะได้เป็นสมาชิก ต้องกำหนดอย่างไร

ตรง สถานะคำขอ ว่าจะให้เป็นสมาชิกได้หรือไม่นั้น เช็ค ตรง Field ผลการสอบ จากตาราง สอบ  ว่า "ผ่าน" หรือ "ไม่ผ่านครั้งแรก" หรือ "ไม่ผ่าน"  โดยอ้างอิงจาก ID โดย ใช้ Dlookup ก็ได้ครับ  ถ้าผ่านแล้ว ก็ให้มีการสร้าง ID ในตาราง สมาชิกได้ และสามารถใส่รายละเอียดอื่นๆ ในตารางด้วย ID นั้นได้

ถ้าข้อมูลระบุว่า "ไม่ผ่าน" (ไม่ผ่านรอบสองด้วย) ให้ใส่วันที่สอบไม่ผ่านไว้ด้วย เพื่อ ใช้ในการตรวจสอบ วันที่ ว่าครบกำหนด 1 ปี หรือยังเพื่อที่จะะสมัครได้ในครั้งต่อไป

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

436
คัดลอกข้อมูลสามารถทำได้เช่น การใช้ Append Query ช่วยได้ครับ
ในการนำข้อมูล ที่ต้องการไปใส่ในตารางที่ 2
โพสต์นี้ได้รับคำขอบคุณจาก: Jakrapan Chooklin

437
Private Sub Text185_GotFocus()
If Isnull(Me.txt_shop_id) Then
    MsgBox "ป้อนข้อมูล สาขา ก่อนนะ"
    Me.txt_shop_id.SetFocus
    End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown

438
ผมสมมุติตาราง 2 ตารางคือ ตารางรายละเอียดนักเรียนชื่อ tblstudent มี ข้อมูลตามภาพ


ตารางที่สองเป็นตารางรายละเอียดคุณครู ชื่อ tblAdviser


ต่อมาสร้างคิวรี่ชื่อว่า QryMakeDATA เพื่อรวบรวมรายละเอียดที่จะนำไปสร้างโดยใช้ โค้ด
โค๊ด: [Select]
SELECT tblStudent.Stud_Code, tblStudent.Stud_Name, tblAdviser.Adviser_Name
FROM tblStudent LEFT JOIN tblAdviser ON tblStudent.Stud_Class = tblAdviser.Adviser_Class;

สร้างตารางเพื่อไว้เก็บข้อมูลที่ผ่านการสร้างใหม่ขึ้นมาแล้วผมให้ชื่อว่า tblResult
โดย มี 2 field ดังนี้
Column1 ชนิดข้อมูลเป็น text
Column2 ชนิดข้อมูลเป็น text


ที่ฟอร์มสร้างปุ่มขึ้นมา 1 ปุ่ม Event Click ใส่ข้อมูลดังนี้

โค๊ด: [Select]
Private Sub Makedatatotable_Click()
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim rstOut As DAO.Recordset
Dim strStud_Code As String
Dim strAdviser_Name As String
Set db = CurrentDb()
Set rst = db.OpenRecordset("QryMakeDATA", dbOpenDynaset)

If Not rst.BOF And Not rst.EOF Then
  rst.MoveFirst
  strStud_Code = rst!Stud_Code
  strAdviser_Name = rst!Adviser_Name
 
  rst.MoveNext
   
  Do Until rst.EOF
    If strStud_Code = rst!Stud_Code Then
      strAdviser_Name = strAdviser_Name & ", " & rst!Adviser_Name
    Else
    Set db = CurrentDb()
    Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
    rstOut.AddNew
    rstOut!Column1 = strStud_Code
    rstOut!Column2 = strAdviser_Name
    rstOut.Update
       
      strStud_Code = rst!Stud_Code
      strAdviser_Name = rst!Adviser_Name
        rstOut.Close
        db.Close   
    End If
    rst.MoveNext
  Loop
    Set db = CurrentDb()
    Set rstOut = db.OpenRecordset("tblResult", dbOpenDynaset)
    rstOut.AddNew
    rstOut!Column1 = strStud_Code
    rstOut!Column2 = strAdviser_Name
    rstOut.Update       
      strStud_Code = rstOut!Column1
      strAdviser_Name = rstOut!Column2 
    rstOut.Close
    db.Close
   MsgBox "ออกข้อมูลเรียบร้อย", vbInformation, "แจ้งเตือน"
End If
Set rst = Nothing
Set db = Nothing
Set rstOut = Nothing
End Sub

ตัวอย่างข้อมูลที่ได้ครับ


ข้อมูลเหล่านี้สามารถไปสร้างเป็นรายงานได้เลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

439
กำลังทำตามครับ ลบหลายคิวรี่แล้ว ยังไม่โชว์ชื่อครบ ทั้ง value row column ลองๆสลับกันดู ยังไม่สำเร็จ ออกชื่อครูที่ปรึกษาไม่ครบ

ส่งฐานข้อมูลที่มี student และ ตารางที่มี adviser มาครับ
ผมทำให้ดู
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

440
ทำแบบไหนดีนะ  :sweat: :sweat:
ลองใช้คิวรี่แบบ Cross Tab หรือยังครับ
โพสต์นี้ได้รับคำขอบคุณจาก: SakDa

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

ใช้การ Join Query หรือใช้การ Dlookup มาแสดง โดยดึงมาจาก รหัสงาน ที่ตรงกันครับ
ส่งตัวอย่างมาทาง Inbox ของผม เดี่ยวผมทำให้ดูครับ

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

442
โอว! วินโดว์

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

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

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

Private Sub Form_Current()
Me.Text15 = Me.CurrentRecord
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: pattaya48150

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

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

FirstDate: DateSerial(Year([Dates]),Month([Dates]),1)
โพสต์นี้ได้รับคำขอบคุณจาก: prajak, พิชญะ ชัยชนะ

446
อ้างถึง
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;
โพสต์นี้ได้รับคำขอบคุณจาก: pattaya48150

447
ลองปรับให้แล้วครับ ให้ดูโค้ดล่าสุดที่ข้อความนะครับ ผมใช้การ ซ่อนสถานนะที่เป็น 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
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

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

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

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

หรือจะใช้ 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 หรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: Tatchawin

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

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

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

หน้า: 1 ... 22 23 24 [25] 26 27 28 ... 32