ถามเกี่ยวกับ ฟอร์มค้นหาข้อมูล

UGETPROJECT.COM ฟอรั่ม ถามตอบปัญหา MS Access ถามเกี่ยวกับ ฟอร์มค้นหาข้อมูล

กระทู้นี้ประกอบด้วย 15 ข้อความตอบกลับ มี 3 เสียง และอัปเดตครั้งสุดท้ายโดย  อลันด์ มูซอ 3 เดือน, 1 สัปดาห์ มาแล้ว

กำลังดู 16 ข้อความ - 1 ผ่านทาง 16 (ของทั้งหมด 16)
  • ผู้เขียน
    ข้อความ
  • #491

    Peerapach Srinugul
    Participant

    สวัสดีครับ แอดมิน

    ผม จะสร้าง ฟอร์ม ค้นหา ข้อมูล โดยมีหลายเงื่อนไข เช่น ชื่อพนักงานที่เบิกวัสดุ, จากวันที่-วันที่ ฯลฯ

    ผมมือใหม่ ไม่เคยทำในส่วนนี้

    สงสัยว่า จะ เอาค่า ใน textbox จากฟอร์ม ไป ค้นหา ข้อมูลจาก คิวรี่ ยังไง ครับ

    หรือแอดมิน อธิบายหลักการ ให้ทีน่ะครับ

    ขอบคุณครับ

    #493
    admin
    admin
    Keymaster

    ตัวอย่าง

    ลองดูในรูปครับการเขียนเงื่อนไขในการเลือกข้อมูลออกมาโชว์ เราจะเขียนไว้ที่ช่อง Criteria ใน Query

    ถ้าหากต้องการเงื่อนไข จากวันที่หนึ่งถึงวันที่หนึ่ง เราจะใช้ function
    Between [จากวันที่] and [ถึงวันที่]

    การดึงค่าในฟอร์มมาใช้ ใน query นั้นง่าย ๆ ครับ ใช้รูปแบบตามนี้
    [Forms]![ชื่อฟอร์ม]![ชื่อ Control ที่จะดึงค่า]

    ดังนั้น หากเรามีฟอร์มที่ให้ใส่ค่า วันที่เริ่มต้น ถึงวันที่สิ้นสุดเพื่อจะทำ query โดยผมสมมติ ชื่อฟอร์ม ว่า frm_search ส่วน control วันที่เริ่มต้นตั้งชื่อว่า date_start วันที่สิ้นสุดตั้งชื่อว่า date_end เราจะเขียนเงื่อนไขใน query ได้ดังนี้
    Between [Forms]![frm_search]![date_start] and [Forms]![frm_search]![date_end]

    ส่วนที่ถามว่าค้นหาจากชื่อพนักงาน ได้อย่างไร ก็ใช้หลักการเดียวกันครับ วิธีดึงค่าจากฟอร์มก็ทำเหมือนกัน เพียงแต่การค้นหาจากชื่อหรือข้อความนั้นเรานิยมใช้ function Like ครับ ลองไปศึกศาดูครับ

    ส่วนตัวอย่างโค๊ต สมมติว่า ชื่อฟอร์มว่า frm_search ส่วน control ที่ใช้หาชื่อพนักงาน ชื่อว่า emp_name ก็เขียนโค๊ตได้ดังนี้
    Like "*" & [Forms]![frm_search]![emp_name]

    ผมบอกได้แต่แนวการเขียนนะครับ ส่วนรายละเอียดว่า ฟังก์ชั่นอะไรใช้อย่างไร หาใน google ดูครับคนอธิบายไว้เพียบหมดเลย ^^

    #494

    Peerapach Srinugul
    Participant

    ขอบคุณมากครับ แอดมิน แอดมินใจดีมากครับ

    #495
    admin
    admin
    Keymaster

    ยินดีมากครับ ติดตรงไหนก็ถามมาได้เลยนะครับ ไม่ต้องเกรงใจครับ admin อยากให้เขียนจบได้โปรแกรมที่ต้องการกันทุกคน อิอิ

    #496

    Peerapach Srinugul
    Participant

    แอดมิน ครับ ถ้าเราต้องการ แบบ ให้ เลือกค้นจาก บางอย่าง คือไม่จำเป็นต้อง ใส่เงื่อนไขทุกช่อง แล้วให้ข้อมูลออกมา

    ทำได้รึป่าวครับ

    #501
    admin
    admin
    Keymaster

    ได้สิครับ ใช้ like นั่นแหล่ะครับ สมมติ เราใส่เงื่อนไข

    Like Nz([เงื่อนไข],"*")

    แบบนี้ ถ้า [เงื่อนไข] เป็นค่าว่าง (Null) จะเลือกข้อมูลทั้งหมดครับ แต่ถ้าไม่ใช่ค่าว่าง เช่น มีค่าเท่ากับ 100 แบบนี้ก็จะเลือกแต่ ข้อมูลที่เท่ากับ 100 เท่านั้น งงไหมครับ

    #508

    Peerapach Srinugul
    Participant

    อ๋อ ตรงเงื่อนไข คือ ฟิลด์ ใช่ป่ะครับ

    #510
    admin
    admin
    Keymaster

    ตรงที่ผมเขียน [เงื่อนไข] ตรงนี้ให้ใส่โค๊ตเข้าไปเองครับ สมมติว่าจะดึงค่าจาก control จากฟอร์มใดฟอร์มหนึ่งมา ก็แทนไปว่า [forms]![ชื่อฟอร์ม]![ชื่อ control] ได้เป็น

    Like Nz([forms]![ชื่อฟอร์ม]![ชื่อ control],"*")

    แบบนี้ครับ

    #511

    Peerapach Srinugul
    Participant

    ขอบคุณครับ

    #512

    Peerapach Srinugul
    Participant

    ขอบคุณครับ

    #513

    Peerapach Srinugul
    Participant

    ช่วยดู ให้ทีครับแอดมิน ที่ query
    Date ใช้
    Between [Forms]![Tools borrow list]![Txt_start] And [Forms]![Tools borrow list]![Txt_end]

    Employee ใช้
    Like “*” & [Forms]![Tools borrow list]![txtFullname]

    ตอนนี้ ไม่ใส่ชื่อ เลือกแค่วันที่ 2 อัน สามารถค้นหาได้

    ที่อยากได้คือใส่แค่ชื่อ ก้ค้นหาได้ ครับ

    #514
    admin
    admin
    Keymaster

    คือถ้าไม่ใส่ช่วงเวลา ให้มันออกมาทั้งหมดเหรอครับ

    #515

    Peerapach Srinugul
    Participant

    ไม่ใช่ออกทั้งหมดครับ ออกมาตามชื่อที่ ใส่ครับ

    #516
    admin
    admin
    Keymaster

    ส่งไฟล์มาหน่อยครับ kitisak_arm@hotmail.com เด๋วผมเขียนให้ดูครับ อธิบายยากแหะ ๆ

    #517

    Peerapach Srinugul
    Participant

    เคครับ เดี๋ยวส่งไปครับ

    #1197

    คำสั่ง Between ถ้าปล่อยว่าง ให้แสดงผลวันที่ทั้งหมดได้ไหมครับ เพราะตอนนี้ถ้าปล่อยว่าง พอรีพอร์ท ออกมามันไม่มีอะไรแสดงเลยครับ ต้องใส่วันที่ถึงจะแสดงครับ

กำลังดู 16 ข้อความ - 1 ผ่านทาง 16 (ของทั้งหมด 16)

คุณต้องเข้าสู่ระบบเพื่อตอบกลับกระทู้นี้