admin

Forum Replies Created

Viewing 20 posts - 1 through 20 (of 38 total)
  • Author
    Posts
  • in reply to: Link table ครับ #581
    adminadmin
    Keymaster

    ดูจาไฟล์ละครับ ไล่โค๊ตไม่ไหว เขียนไปเยอะแล้วอ่ะครับ เอาเป็นว่าเขียนเป็นผังอธิบายให้ดูหน่อยได้ไหมครับว่าติดตรงไหนต้องการแบบไหน จะง่ายกว่าครับ เพราะจากที่อธิบายผมมา ผมยังงงอยู่เลยครับ ว่า master คืออะไร Transaction sub คืออะไร อธิบายแบบยกตัวอย่างได้ไหมครับ ไล่โค๊ตไม่ไหวครับ 555+

    in reply to: Link table ครับ #578
    adminadmin
    Keymaster

    ขอดูตัวอย่างหน่อยได้ไหมครับ ว่า query ที่ union แล้ว ผลออกมาอย่างไร
    แล้วที่จะเอาไปใช้งานต่อ อยากได้รูปแบบการแสดงผลแบบไหนครับ ผมนึกภาพไม่ออกอ่าครับ

    in reply to: Link table ครับ #576
    adminadmin
    Keymaster

    น่าจะเข้าใจผิดครับ ที่ผมแนะนำไปไม่ได้เอา database มารวมกันครับที่ตารางเดียวนะครับ ผมแนะนำให้ลิงค์ ตารางจากแต่ละก้อนมาไว้ที่ database เดียวกันครับ

    ชื่อตารางที่ลิงค์มา จากแต่ละ database พอลิงค์มา จะต้องแก้ชื่อใหม่นะครับเช่น database1 ตารางชื่อ stock, database2 ตารางชื่อ stock เหมือนกัน แต่พอเราสร้าง database ใหม่อีกก้อน โดยลิงค์ตารางจาก database1,database2 เราอาจจะเปลี่ยนชื่อตารางที่ลิงค์แล้วเป็น stock_db1,stock_db2 แบบนี้ครับ

    จะทำให้ก้อน database ใหม่ที่เราจะใช้รวมข้อมูลจากหลาย database ทำงานได้

    จากนั้น ค่อยเขียน query union จากตารางที่ลิงค์มาแล้วตัวอย่างเช่น
    select * from stock_db1 union all select * from stock_db2

    แบบนี้เราก็จะได้ query ที่รวมข้อมูลเรียบร้อยแล้วครับ เซพเป็น query ไว้ ต่อไปก็เอาไปใช้งานได้ตามใจชอบครับ

    จากแนวที่ผมแนะนำนี้ ไม่อะไรที่ติดขัดกับกฎ primary key เลยครับ ลองดูครับ^^

    adminadmin
    Keymaster

    ลองเช็คตรง
    property ของ combobox > Tab Data > ช่อง Control Source

    เป็นชื่อฟิล์ดที่เก็บข้อมูลหรือยังครับ

    in reply to: ถาม การ import ครับ #568
    adminadmin
    Keymaster

    ผมว่าไม่เกี่ยวกับ access ละครับ ต้องไปแก้ที่ข้อมูลใน excel มากกว่า ถ้าเป็นตัวเลข มันจะต้องไม่ขึ้นชื่อร้านนะครับ จะต้องขึ้นเป็นตัวเลข

    adminadmin
    Keymaster

    มันเป็นข้อจำกัดของโปรแกรมอ่ะครับ ผมก็ยังไม่มีวิธีให้มันค้นหาจากบางส่วนของคำใน ตัว combobox เหมือนกันครับ ได้แต่พิมพ์ตั้งแต่ตัวแรก เพื่อค้นหาเอา

    in reply to: ถาม การ import ครับ #564
    adminadmin
    Keymaster

    ตามที่ผมเข้าใจ การใช้ lookup wizard เพื่อทำ combobox นั้น เวลาทำเสร็จแล้ว มันจะลิงค์ ฟิล์ดนี้ กับ ฟิล์ดของตารางอื่น คุณ Peerapach ได้เช็คหรือยังครับ ว่าอีกตารางนึงที่ไปลิงค์ มีข้อมูลครบตรงกับตารางแรกแล้วอ่ะครับ

    in reply to: ถาม การ import ครับ #562
    adminadmin
    Keymaster

    มันต้องเป็นแบบนั้นถูกแล้วครับ เพราะ type ไม่ตรง ทีนี้ เราต้องทำ type ให้ตรงตั้งแต่ตอนที่เป็น excel ครับ
    ในไฟล์อ่ะครับ ถ้าสมมติเราจะทำ type ให้เป็น ตัวเลข คอลัมนั้นใน excel ทั้ง column ต้องไม่มีตัวหนังสือเลยนะครับ ช่องว่างเราก็ต้องทำเป็น 0 ทั้งหมดก่อน ไม่งั้นก๊อปช่องว่างไปก็เป็นตัวหนังสือครับ

    ส่วนเรื่องที่ใช้ lookup wizard แล้ว ข้อมูลหายไป ก็น่าจะเป็นจาก type นี่แหล่ะครับ เบื้องต้น ต้องทำให้ต้นฉบับ excel ที่เราจะก๊อปข้อมูลมา เป็น type ตัวเลยที่ถูกต้องก่อนครับ

    in reply to: ถาม การ import ครับ #559
    adminadmin
    Keymaster

    อย่างไรก็ต้องให้ type มันตรงกันครับ ถึงจะเอาจาก excel มาเข้าใน access ได้ ผมยังแปลกใจครับ ว่า ใน excel จัด type ให้ตรง ไม่ได้เหรอครับ ติดตรงไหนครับผมดูไม่ออกครับ ^^

    adminadmin
    Keymaster

    ไม่ยากครับ สมมติ เราจะเอารายงานผลรวม ไว้ที่ไฟล์ใหม่ เราก็ลิงค์ table จาก 3 สโตร์ ไปไว้ที่ไฟล์ใหม่ได้เลยครับ (ถ้าใช้การลิงค์ table เวลาอัพเดทข้อมูลที่ไฟล์ต้นฉบับ ตารางที่เราลิงค์ที่ไฟล์ใหม่ก็จะอัพเดทด้วย ไม่งงนะครับ)

    ตัวอย่างการลิงค์ table http://www.techonthenet.com/access/tables/link_table2013.php
    ที่นี้ที่ไฟล์ใหม่เราจะได้ 3 ตาราง ของ 3 โปรแกรมใช่ไหมครับ ซึ่ง ถ้าเป็นตารางที่ก๊อปกันมา ฟิล์ด น่าจะเท่ากันอยู่แล้ว ใช้ query union all 3 ตาราง รวมเป็นข้อมูลเดียวกันก่อน แล้วเอา query ที่ได้ ไปหายอดสรุปรายการยอดวัสดุตามสูตรปรกติได้เลยครับ

    ตัวอย่างการใช้ union all http://www.thai-access.com/topic_post.asp?CategoryID=1&TopicID=475

    in reply to: การกำหนดสิทธิ #552
    adminadmin
    Keymaster

    ไช่ครับ

    in reply to: การกำหนดสิทธิ #550
    adminadmin
    Keymaster

    เหมือนจะยากนะครับผมไม่ไล่โค๊ตละกัน แต่ผมมีวิธีง่าย ๆ ให้ลองทำตามดูครับ อันนี้ไม่ได้เกี่ยวกับที่คุณ HooHiiw ทำนะครับ

    1. สร้างฟอร์ม หน้า Home menu แยกตามสิทธิ์ที่เข้าได้ เช่น มีสิทธิ์ user กับ admin เราก็สร้าง home menu ให้รวม ฟอร์มกับรายงานเท่าที่สิทธิ์ที่เราจะกำหนดให้ ในที่นี้ก็จะมี 2 ฟอร์ม คือ home menu ของ user กับของ admin
    2. สร้างตาราง user ให้เก็บข้อมูล user pass แล้วก็ชื่อฟอร์ม home menu ที่คนนั้นเข้าได้
    3. ปุ่ม login ของ ฟอร์ม login ให้เขียนโค๊ตในการเช็ค ว่า user กับ pass ที่กรอกในฟอร์มถูกต้องหรือไม่ ถ้าถูกต้องก็ให้เปิดฟอร์ม home menu ของสิทธิ์ของ user นั้น ๆ ตัวอย่างนะครับ

    Dim homemenu=Dlookup("[homemenu]","[tbl_user]","[tbl_user]![username]='" & Me.txt_username & "' and [tbl_user]![password]='" & Me.txt_password & "'")
    
    If (isnull(homemenu)) then
       msgbox "User หรือ password ไม่ถูกต้อง"
    Else
       DoCmd.OpenForm homemenu
    End If

    เท่านี้ user ก็ใช้ได้แต่สิทธิ์ที่ตัวเองมีแล้วครับ แต่ว่าก่อนที่จะให้ user เอาโปรแกรมไปใช้ ต้องล็อค พวก navigation กับล็อคการกด shift key ตอนเปิดโปรแกรม ด้วยนะครับ เพื่อให้ user เข้าใช้ฟอร์มกับรายงานผ่านทางเมนูได้เท่านั้น

    adminadmin
    Keymaster

    ยินดีครับ ^^

    adminadmin
    Keymaster

    ปรกติแล้วผมจะเก็บราคาต่อหน่วยไว้ 2 ที่ครับ 1 คือตารางสินค้า ในที่นี้ผมหมายถึง ตารางที่คุณ HooHiiw บอกว่าแยกไว้แล้วนั่นแหล่ะครับ กับที่ที่สองคือรายละเอียกการขาย ในที่นี้ก็หมายถึง ตารารายละเอียดค่าไฟแต่ละเดือน

    มีเหตุผลที่ต้องแยกอยู่ครับ ก็เพราะ ตารางรายละเอียกการขาย ถ้าไม่เก็บราคาต่อหน่วยไว้ จะต้องไปดึงราคาที่เป็นราคาล่าสุดอยู่ที่ตารางสินค้า มาคำนวณตลอด ซึ่ง สมมติว่า เดือน 1-4 ใช้ราคา 25 บาท แต่ เดือน 5 เป็นต้นไป ใช้ราคา 26 บาท
    ทีนี้ เวลาเราจะเรียกดูรายงานเก่า ๆ มันจะเพี้ยนครับ เหตุเพราะว่าเราไม่ได้เก็บราคาเก่าไว้ที่ตารางรายละเอียดการขายนั่นเอง พอเข้าใจไหมครับ

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

    adminadmin
    Keymaster

    จริง ๆ ตารางนี้ ผมแนะนำให้เก็บแค่ จำนวนหน่วย กับราคาต่อหน่วยไว้ก็พอครับ เพราะว่า เวลาเราเอาไปออกรายงานหรือคำนวณอะไร เราก็เขียน query เอาราคาต่อหน่วย คูณ จำนวนหน่วย ก็จะได้ยอดสุทธิครับ ไม่นิยมเอาผลการคำนวณเก็บไว้ในตาราง

    แต่ถ้าอยากเก็บจริง ๆ ก็ทำได้ครับ แต่ต้องใช้ VBA ช่วย ครับ ไม่ทราบว่า คุณ HooHiiw พอมีความรู้เรื่อง VBA พอจะแกะโค๊ต VBA ได้ไหมครับ

    in reply to: การเพิ่มค่า #535
    adminadmin
    Keymaster

    มีสองแนวทางครับ แบบยากกับแบบง่าย

    1 แบบง่าย ที่ตารางห้องพัก ให้เพิ่มฟิล์ดเก็บสถานะห้องพักครับ ว่า ว่างหรือไม่ว่าง ให้ user อัพเดทเอง

    2 แบบยาก เช็คจากตารางการเข้าพัก โดยปรกติจะมีวันเข้า-วันออก เราก็ดึงเอาแต่ record ล่าสุดของแต่ละห้องมาเช็ค
    กรณีที่ 1 ไม่มี record (เพิ่งจะเพิ่มระบบใหม่อาจจะยังไม่ได้เก็บ)ก็แปลว่าห้องว่าง
    กรณีที่ 2 ทั้งวันเข้าทั้งวันออก แปลว่าห้องว่างเช่นกัน เพราะคนเช่าออกไปแล้ว
    กรณีที่ 3 มีวันเข้า แต่ไม่มีวันออก แปลว่าห้องไม่ว่าง คนยังเช่าอยู่

    แบบยากนี่จะเขียน query ยากหน่อยนะครับ แต่ก็ทำให้ไม่ต้องมาคอยอัพเดทสถานะเองเหมือนกัน ลองดูครับ

    adminadmin
    Keymaster

    ต้องขอโทษพี่ด้วยนะครับ ถ้าอันไหนผมเคยทำผมจะให้คำตอบให้เลยไม่ปิดบัง แต่ว่าผมไม่เคยทำแบบที่พี่กำลังจะทำอ่ะครับ พี่ลองไปถามในบอร์ด http://www.thai-access.com/ น่าจะได้คำตอบครับ ขอโทษจริง ๆ ครับ

    หรือถ้าพี่ไม่รีบ เด๋วว่าง ๆ ผมจะหาข้อมูลมาตอบให้ครับเรื่องนี้น่าจะต้องใช้เวลาซักหน่อย ^^

    adminadmin
    Keymaster

    ต้องรบกวนฝากไฟล์ไว้ที่เว็บฝากไฟล์รูปก่อนนะครับ แล้วก๊อปลิงค์ที่เป็น <img src="xxxxx เข้ามาแปะในนี้ครับ อย่างไรไว้ว่าง ๆ ผมจะอัพเดทให้แนบไฟล์ได้ละกันนะครับตอนนี้ยังไม่ว่างเลย อิอิ

    adminadmin
    Keymaster

    ถ้าให้ผมเดา ทั้ง 3 ฟอร์มนี่ เรียกใช้ subform เดียวกัน ไช่ไหมครับ วิธีการแก้ปัญหาคือสร้าง ก๊อป subform นั้น แล้วสร้างใหม่อีก 2 อัน แล้วก็ตั้งค่า default ของ type ไม่ให้เหมือนกันครับ ตามที่ต้องการ

    ทีนี้ ไปที่ฟอร์มหลัก(ที่เรียกใช้ subform) ไปเปลี่ยน source object ให้ชื่อตรงกับ subform ที่เราตั้งค่าไว้ครับ ผมอธิบายย่อ ๆ ถ้างงก็บอกนะครับ ^^

    adminadmin
    Keymaster

    1 เราสามารถสร้าง Table เดียวว่า ค่าค่าสาธารณูปโภค โดยเก็บทั้งมิเตอร์น้ำและไฟ ได้ไหมครับ
    ตอบ ได้ครับ แต่เราต้องมีฟิล์ดนึงที่เก็บว่า เป็น ค่าน้ำ หรือค่าไฟ หรือค่า อื่น ๆ อะไรก็แล้วแต่ครับ

    2 อยากทราบวิธีการเก็บค่ามิเตอร์ตั้งแต่ลูกค้าเข้ามาพักที่ห้อง โดยจะตัดยอดทุกๆวันที่ 25 โดยจะนำค่ามิเตอรืมาคำนวณเป็นค่าน้ำ ค่าไฟ ในแต่ละเดือน เอาเลขมิเตอร์ของเดือนล่าสุดเป็นตัวตั้ง แล้วก็ลบด้วยเลขมิเตอร์ของเดือนที่แล้ว
    ตอบ ผมให้แนวคิดว่า ให้ใช้หลาย query ช่วยคำนวน แล้วเอาไปรวมกันที่ query สุดท้าย จะง่ายครับ เช่น query1 หาเลขมิเตอร์เดือนล่าสุดของทุกห้อง query2 หามิเตอร์เดือนก่อนหน้าของทุกห้อง query3 เอา query1 query2 มารวมกัน หาผลต่างของมิเตอร์แล้วเอาไปเข้าสูตรคำนวนค่าน้ำค่าไฟ

    ลองทำดูก่อนนะครับ โปรเจ็คนี้ไม่ยาก แต่ก็ไม่ง่ายสำหรับมือใหม่เหมือนกัน อย่างไรติดปัญหาตรงไหนก็มาถามได้เรื่อย ๆ นะครับ ^^

Viewing 20 posts - 1 through 20 (of 38 total)