แสดงกระทู้

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

หน้า: [1] 2
1
เป็นมือใหม่ค่ะ หาไม่เจอเลยค่ะ ตามที่สอน เป็นภาษาไทยด้วยค่ะ รบกวนชี้แนะ เพิ่มได้มั้ยคะ
ทำได้ 2 แบบด้วยกัน

1.ตรง textbox เลขที่บิลในรายงานในส่วนรายละเอียด
กดคลิ๊กขวาเลือก เรียงลำดับจากน้อยไปหามากครับ




2.วิธีกำหนด Record Source ของ Report เป็น Query แล้วสั่ง Sort แบบ Ascending ที่ฟิลด์ "เลขที่บิล" ที่อาจารย์บอกมาก็สามารถทำดังนี้



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

2
DSum("ชื่อฟิวด์เก็บจำนวนเงิน","ชื่อตารางหรือคิวรี่","[ชื่อฟิวด์หมู่]=forms!ชื่อฟอร์ม!ชื่อ TextBox(หมู่)")
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

3
พรุ่งนี้นะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

4
OShiftID ในตาราง T_OT ชนิดข้อมูลเป็นแบบไหนครับ
ShiftID ในตาราง T_Shift ชนิดข้อมูลเป็นแบบไหน

สามารถ Remote ไปเช็คได้หรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

5
RelationShip เช็คการกำหนด Primary Key
ข้อความแจ้งเตือนแบบนี้เกิดจาก การกำหนดความสัมพันธ์กันแล้ว ไม่ได้สร้างข้อมูลในฟิลล์ PK ให้ตารางหลักก่อน
เช่น เมื่อต้องการเพิ่มข้อมูลให้ ตารางที่ 2 ตารางแรกต้องมี ข้อมูลในฟิลล์ PK ด้วยเหมือนกันมันถึงจะยอมให้ผ่านได้


เช่น ท่านจะเพิ่มข้อมูลตารางที่ 2 ID ก็ต้องมีใน ตารางที่ 1 ด้วยครับ

1.เพื่อความชัดเจน ให้แสดงรูป การกำหนด Relationship มาดู
2.แสดงการกำหนด Record Source ในฟอร์มมาดู


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

6
ถ้าหมายถึงชื่อฟิลด์คือ Approved, ชื่อ Option Group คือ O, Checkbox Yes ที่ผูกอยู่ภายใน Option Group ตั้งค่าเป็น 1, No ตั้งค่าเป็นค่าอื่นๆที่ไม่ใช่ 1 

แต่ไม่รู้ว่า O คือค่าที่ต้องการอัพเดตลงเรคอร์ด หรือเป็นเงื่อนไขที่เลือกเรคอร์ดที่จะอัพเดต ถ้าเป็นกรณีแรก ก็จะได้โค้ดเป็นลักษณะ
โค๊ด: [Select]
CurrentDB.Execute "update [P] inner join [I] on [P].[ITEM] = [I].[ITEM] set [P].[Approved] = " & iif(Me.O=1, "TRUE", "FALSE") & " where [I].[PK] = xxx", dbFailOnError
ถ้ากรณีที่สอง ก็จะเป็น
โค๊ด: [Select]
CurrentDB.Execute "update [P] inner join [I] on [P].[ITEM] = [I].[ITEM] set [P].[BALQTY] = [I].[FWQTY] - [I].[ISSUEQTY] where [I].[PK] = xxx and Approved = " & iif(Me.O=1, "TRUE", "FALSE") , dbFailOnError
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

7
ที่เมนูด้านบน Design -> Property Sheet แถบด้านขวาจะเปลี่ยน ทีนี้ในส่วนของ Data -> Record Source ก็จะสามารถเลือกข้อมูลมาได้ทั้งจาก Table,Query,หรือจะทำ Query ขึ้นใหม่ใช้เองได้เหมือนทำหน้าฟอร์มครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

8
NAVIGATION BOTTON กำหนดเป็น NO
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

9
ที่การตั้งค่าฟอร์มย่อย ให้ตั้งค่าตามภาพ



ตรงปุ่มนำทาง ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

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

11
กำหนด Data Entry property ของฟอร์มให้เป็น Yes แล้วที่ปุ่ม Save ให้เพิ่มโค้ด Me.Requery ต่อท้ายโค้ดที่คุณมีอยู่ก่อนแล้วครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

12
ทำได้ครับ โดยการใช้คำสั่ง UPDATE sql statement โดยสมมุติชื่อต่างๆดังนี้

ตารางรายการสินค้า P
ฟิลด์รายการสินค้า ITEM
ฟิลด์ยอดคงเหลือ BALQTY

ตารางรายการเบิก I
ฟิลด์รายการสินค้า ITEM
ฟิลด์ยอดยกมา FWQTY
ฟิลด์จำนวนเบิก  ISSUEQTY
ฟิลด์ที่เป็นคีย์ที่ระบุได้ว่าเป็นรายการเบิกรายการนี้ PK เช่น เลขที่เบิก xxx

โค้ดพื้นฐานที่ใช้ก็คือ
โค๊ด: [Select]
CurrentDB.Execute "update [P] inner join [I] on [P].[ITEM] = [I].[ITEM] set [P].[BALQTY] = [I].[FWQTY] - [I].[ISSUEQTY] where [I].[PK] = xxx", dbFailOnError

หมายเหตุ :

- ถ้ายอดยกมา นำมาจากยอดคงเหลืออยู่แล้ว ก็สามารถใช้ set [P].[BALQTY] = [P].[BALQTY] - [I].[ISSUEQTY] แทนก็จะเหมาะสมกว่า

- ส่วน [I].[PK] = xxx หรือส่วนอื่นๆอีก อาจแตกต่างจากนี้ ขึ้นกับว่ามีฟิลด์อะไรบ้างที่ใช้ระบุว่าเป็นเอกสารการเบิกนี้ และค่าของมันมีประเภทข้อมูลตามที่ระบุในตารางว่าเป็น Text หรือ Number

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

13
รบกวนสอบถามคะ

เราสามารถ update ข้อมูลหลายๆ record ได้พร้อมๆกันไหมคะ

เช่น มีข้อมูล 1ชุด ฃ
ตารางรายการสินค้า

รายการสินค้า       ยอดคงเหลือ
AA                      5
BB                      6
CC                      7

แล้วสร้างตารางสำหรับดึงข้อมูลมาทำรายการเบิกโดยจะเบิกพร้อมๆกันมากกว่า 1 รายการ โดยสร้างเป็น continuous forms

โดยให้แสดง

รายการสินค้า        ยกมา        จำนวนเบิก       คงเหลือ
AA                     5                1                4
ฺฺBB                     6                2                4

แล้วกดปุ้มบันทึก ให้ยอดคงเหลือจากรายการเบิก ไปอัพเดทในยอดคงเหลือในตารางรายการสินค้า โดยอัพเดทพร้อมกันทั้ง2 รายการ โดยการกดปุ่มเพียงครั้งเดียว
รายละเอียดแบบนี้สามารถทำได้มั้ยคะ รบกวนขอคำแนะนำด้วยคะ

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

14

ใช้การสร้าง HeadGroup นะครับ
ใช้การตัดสระโดย Replace()

โค้ด
SELECT Table1.CustomerName, Left(Replace(Replace(Replace(Replace(Replace([CustomerName],"เ",""),"แ",""),"ไ",""),"ใ",""),"โ",""),1) AS GroupString, *
FROM Table1
ORDER BY Left(Replace(Replace(Replace(Replace(Replace([CustomerName],"เ",""),"แ",""),"ไ",""),"ใ",""),"โ",""),1);

กรณีถ้าอยากให้แต่ละตัวอักษรแยกหน้าออกไปเช่น หน้าที่ 1 หมวดอักษร ก หน้าที่ 2 หมวดอักษร ข
(แสดงผลในมุมมองเหมือนพิมพ์หรือ Print Preview Mode)
สามารถกำหนดค่าตามรูปด้านล่างได้เลยครับ




ลองดูตัวอย่างครับ


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

15
ห้อง MS Access / : ลบค่า Parameter Value ใน Forms ค่ะ
« เมื่อ: 25 ก.พ. 63 , 12:56:54 »
ตัวรายงาน อยากให้มีการ กำหนด Parameter Value ข้อมูลที่ต้องการแสดงในรายงานใช่ไหมครับ

ตัวรายงาน ไม่ต้องใช้ คิวรี่ตัวเดียวกับ Form ก็ได้



วิธีทำ ที่ RecordSource ของรายงาน ลบคิวรี่ออกไปแล้ว กดตรง จุด 3 จุด สังเกตุว่ามันสามารถกำหนด ข้อมูลที่อยากนำมาแสดง เหมือนตอนเราสร้างคิวรี่
เรามากำหนด PARAMETER ตรงนี้ได้เลย (วิธีนี้เราจะไม่ได้สร้างคิวรี่ไว้แต่จะกำหนดในรายงานเลยครับ)

ส่วนตัวคิวรี่ของฟอร์มเอา parameter ออกไปได้เลยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

16
ห้อง MS Access / : รวมค่าใน Report
« เมื่อ: 21 ก.พ. 63 , 21:03:32 »


มันจะได้ประมาณนี้ครับ

1. เปิดมุมมองออกแบบแล้วเลือก Design > Group & Sort
2. เลือก Group by ID (อยู่ตรงด้านล่าง)
3. เลือก Text Box ที่หาผลรวม
4. เลือก Totals > Sum

ลองดูนะครับ


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

17
ในมุมผมนะ
> เอามาใช้แค่เป็น Combo box ช่วยในการเลือกข้อมูลไม่ต้องผูกอะไรครับ ที่นี้ล่ะว่าComboboxเลือกข้อมูลแบบไหนมาเก็บในตาราง
   - เก็บเป็น ID = ในฟอร์มหรือรีพอร์ตอื่นๆค่อยเอามาผูกเพื่อดึงชื่อมาแสดง
   - เก็บเป็นชื่ออยู่แล้ว = ไม่จำเป็นที่จะต้องผูกอะไรอีกในอนาคตครับ

> เห็นมี xxx..ID ทั้งหลายอยู่แล้วไม่ตั้งให้เป็นหัวไปเลยไม่ต้องไปใช้ ID อ่านะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

18
ข้อความบอกเป็นนัยว่า รหัสแผนกที่เลือก ไม่มีอยู่ในเทเบิล dDepartment ครับ เช็คดีๆว่าป้อนรหัสแผนกถูกหรือไม่
โพสต์นี้ได้รับคำขอบคุณจาก: oraaoi

หน้า: [1] 2