แสดงกระทู้

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 - OddyWriter

หน้า: 1 ... 28 29 30 [31] 32 33 34
543
ออบเจ็กต์ที่ชื่อ Name อาจสร้างปัญหาได้ ถ้าจำไม่ผิดมันจะเป็นคำที่สร้างปัญหาในการเขียน Code ได้ง่ายมาก อาจเปลี่ยนชื่อออบเจ็กต์เป็น txtName ดูครับ





544
ห้อง MS Access / > การแยกข้อมูลภายในแถว
« เมื่อ: 14 มี.ค. 61 , 14:02:17 »
การแปลงข้อมูลเป็นสิ่งที่ควรทำใน Excel ก่อนครับ การนำข้อมูลในรูป 1 มาใส่เลย แล้วค่อยแปลง จะเป็นอะไรที่ยุ่งยากมาก และมีโอกาสมากที่ข้อมูลจะผิดพลาดได้ เพราะถ้าอยู่ใน Excel ข้อมูลแต่ละแถวสามารถสัมพันธ์กันได้ แต่ใน Access ข้อมูลแต่ละแถวหรือก็คือเรคอร์ดนั้นเป็นอิสระต่อกันครับ

แนะนำว่าทำให้ Excel ก่อนแล้วค่อยนำมาใส่ใน Access ครับ

545
ห้อง MS Access / > การแยกข้อมูลภายในแถว
« เมื่อ: 14 มี.ค. 61 , 10:30:16 »
1. แทรกคอลัมน์ระหว่าง B กับ C
2. สร้าง Function If ธรรมดาที่ C2 ซึ่งเป็นคอลัมน์ใหม่ที่เราแทรกมา =IF(A2="head",D2,C1)
3. Copy สูตรนี้ลงมาถึงเซลล์สุดท้ายด้านล่าง
4. ที่คอลัมน์ C (ใหม่) ให้ Copy > Paste Specials > Value
5. Sort คอลัมน์ A แล้วลบ Row ที่ตรงกับ Head ของคอลัมน์ A ออกให้หมด
6. ที่เหลือจะเป็นข้อมูลอย่างที่ออเจ้าต้องการทั้งหมด

547
เพิ่ม * อีกตัว ก่อน [กรุณาใส่ชนิดสัตว์ :]

548
รูปแบบเยี่ยงนี้น่าจะใช้การ Link Table



549
ไม่แน่ใจว่าผมเข้าใจผิดหรือเปล่าอะนะ

แต่คิดว่าไม่น่าจะต้องใช้ QRCode นะครับ แค่ Barcode ธรรมดาๆ ก็พอ
โดยสร้างฐานข้อมูลแล้วให้ Access พิมพ์ Barcode ออกมา 2 ใบด้วยรหัสเดียวกัน
อันนึงก็แปะไว้กับของส่งซ่อม อีกอันก็แปะไปกับเอกสารแนบของที่ส่งซ่อม หรือจะให้ Access พิมพ์เอกสารที่ว่าพร้อม Barcode ก็ได้ โดยพิมพ์สติ๊กเกอร์ Barcode แค่อันเดียวเพื่อแปะที่ของส่งซ่อม

550
ต้องใช้ List Box ครับ ถึงจะเลือกหลายรายการได้

551
ถ้าเปิดฟอร์มในมุมมอง Datasheet สามารถกำหนด Filter ได้ครับ

552
ต้องอธิบายอย่างนี้นะครับ บางครั้งการใช้ Query นั้น บางครั้งสามารถจัดการอะไรๆ ในฟอร์มได้ดีกว่า VBA ดังนั้นอยากจะบอกว่า เพียง Query ก็ได้อย่างที่ต้องการแล้วครับ

จาก Combo Box ที่คุณสร้างนั้น ถ้าเป็นผมจะใส่ ID ให้แต่ละเรคอร์ด เพราะ Access นั้นแยกไม่ออกหรอกครับว่า GAGIU ที่เราต้องการนั้นคืออันไหน เค้าเจออันไหนก่อนเค้าก็หยิบอันนั้นมาแสดงผลทันที

การแก้ไขง่ายมากครับ
1. กำหนดให้แต่ละเรคอร์ดมี ID ของตัวเอง
2. นำข้อมูลมาใส่ใน Row Source ของ Combo Box โดยใส่ ID เข้าไปด้วย
3. กำหนด Column Width ของ Row Source ตามที่เราต้องการ โดยกำหนดให้ Column Width ของ ID เป็น 0
เช่น เรานำฟิลด์มาใช้ 3 ฟิลด์คือ ID, Desc,Date เราก็กำหนด Column Width เป็น 0,1,1 อะไรงี้
4. จากข้อ 3 ให้กำหนด Bound Column เป็น 1 เพื่อนำไปใช้งาน

ส่วนช่องอื่นๆ คุณก็ไม่จำเป็นต้องเขียน Code ใน AfterUpdate เลยครับ แค่เอา Dlookup ไปใส่ใน Control Source โดยกำหนด Criteria ของ Dlookup ให้เทียบค่ากับ Combo Box ครับ

ด้วยวิธีนี้ การทำงานจะเร็วกว่า เพราะ Dlookup ทำงานเองโดยตรง ไม่ต้องผ่าน VBA แล้วเอาค่าจะ VBA มาใส่ใน Text Box

553
คำถามกว้างงงงงงงงจัง

554
ไฟล์ตัวอย่างครับ ค่อยๆ ดู เริ่มจาก ตาราง คิวรี ฟอร์ม มาโคร ดูละเอียดๆ ครับ ไม่ได้ซ่อนคำสั่งอะไรเป็นพิเศษ ไม่มี VBA ใช้มาโครเท่านั้น

https://www.dropbox.com/s/xq2klbx7ci1djid/Cabinet.accdb?dl=0

555
ให้กำหนด Row Source ของฟิลด์ PDno โดยใส่ฟิลด์ของ PD# และ PO จากตาราง Production

ให้แสดงทั้ง 2 คอลัมน์ (Column Count = 2)

556
ห้อง MS Access / > สอบถามการ Link Table
« เมื่อ: 02 มี.ค. 61 , 11:16:36 »
ที่ว่ามันไม่ยอมให้เลือกนี่มันฟ้องว่าไงครับ

557
ถูกต้องและสะดวกมั๊ยนี่ตอบไม่ได้ครับ
ขึ้นอยู่กับการใช้งาน

ถ้าต้องการนำข้อมูลมาใช้แบบ Real Time ถือว่าผิด
แต่ถ้าเป็นการบันทึกข้อมูล แล้วจะดึงข้อมูลมาแสดงเพียงบางช่วงเวลา แบบนี้ก็ไม่ผิด แต่ถูกหรือเปล่าก็ขึ้นกับรายละเอียดปลีกย่อยอื่นๆ ที่สำคัญถ้า User OK ถือว่าจบครับ

558
ดูเหมือนต้องมี 3 ตารางนะครับ
ตาราง 1 เก็บข้อมูลตู้ (CabinetCode, CabinetLocation)
ตาราง 2 เก็บข้อมูลลูกค้า (CustomerID, CustomerDetails)
ตาราง 3 เก็บข้อมูลการใช้ตู้ (CustomerID,CabinetCode)

เวลาตู้ไหนไม่ได้ใช้ ก็ลบข้อมูลในตาราง 3
ถ้าจะเช็คว่าตู้ไหนว่างก็ใช้ Query ดึงข้อมูล ตาราง 1 + ตาราง 3 โดยให้แสดงทุกเรคอร์ดในตาราง 1
ถ้ามีลูกค้าใหม่มากำหนดให้คิวรีแสดงเฉพาะตู้ว่างมาให้เลือกได้

หน้า: 1 ... 28 29 30 [31] 32 33 34