แสดงกระทู้

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

หน้า: 1 ... 3 4 5 [6]
91
- อย่างแรก ในเทเบิลต้องมีฟิลด์ที่เก็บว่าไฟล์รูปของเรคอร์ดนั้นอยู่ที่ไหน สมมุติชื่อฟิลด์ว่า FilePath
- ใส่นิพจน์ไว้ใน Control Source property ของเท็กซ์บ็อกซ์ [มี/ไม่มีรูปถ่าย] เป็น

= IIf(Dir(Me.[FilePath]) = "", "ไม่มี", "มี")  <=== เครื่องหมายเท่ากับที่ด้านหน้า ต้องมีใส่ไว้ด้วย

หมายเหตุ เพื่อลดปัญหาที่อาจเกิดขึ้นได้ เราไม่ควรสร้างชื่อของอะไรก็ตาม เป็นภาษาอื่นนอกจากภาษาอังกฤษ และไม่ควรมีช่องว่างหรืออักขระพิเศษต่างๆในชื่อเช่นกัน
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

92
Zone มีทั้ง ตัวเลข และ ตัวอักษร ลองใช้วิธีนี้ดูครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

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

94
ถ้าเป็นในรายงานเราสามารถทำ Running Sum ได้เลย โดยการสร้าง Text Box เปล่าๆ ขึ้นมาใหม่ สมมุติชื่อ txtrun แล้วกำหนด Control Source: =1 กำหนดตรง Running Sum: Over All (หรือ Over Group หากสร้าง Group)
เราจะได้เลยที่เรียงลำดับขึ้นมา จากนั้นก็เปลี่ยนเงื่อนไขใน Text Box ที่เรานับเลข 1-40 ใหม่เป็น
=IIf([txtrun] Mod 40=0,40,[txtRun] Mod 40)
อ้างที่ [txtrun] แทนการอ้างที่ [ID] ส่วนจะให้แสดงหรือไม่ก็กำหนดในส่วน Visible เอาว่าจะเป็น Yes หรือ No
ส่วนเรื่องอยากให้หน้าละ 20 เรคคอร์ดก็ปรับส่วนพื้นที่ Detail ของรายงานให้ความสูงได้ 20 เรคคอร์ดกับหน้ากระดาษที่กำหนดไว้ แล้วแก้โค้ดที่ Detail > Event > On Print:
Const Blank_Line = 20 'จากเดิม 40 เป็น 20 แทน ก็น่าจะใช้ได้แล้วครับ
ไฟล์ตัวอย่างแก้ไข
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

95
น่าจะเพิ่มผิดตรงไหนสักจุดครับ Inbox มาครับ

ID กำหนด DATA TYPE เป็น text หรือเปล่าครับ
ปกติตรงนี้ผมกำหนดเป็น Number ครับ

ถ้าเป็น Text ใช้ Cint แปลงเป็น ตัวเลขก่อนคับ

ถ้าข้อมูล ID NO เป็น Text ลองใช้การแปลง Text เป็นตัวเลข ก่อน โดยผมสร้าง QryTable1 ขึ้นมาแสดงข้อมูลของ Table1 นะครับ

ตัวอย่างด้านล่าง
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

96
ใช้การ Running Number Query มาช่วยก็ได้คับ
วิธีทำ 1 สร้างคิวรี่ชื่อ QryID ใส่โค้ดนี้
โค๊ด: [Select]
SELECT (Select count(*) From Table1 as a Where a.ID <= Table1.ID) AS [Running No], Table1.ID AS RID
FROM Table1;
2.ที่ RecordSource ของ Report ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
SELECT Table1.ID, Table1.[Product Name], Table1.Quantity, QryID.[Running No], *
FROM Table1 INNER JOIN QryID ON Table1.ID = QryID.RID;


3.สร้าง Textbox ขึ้นมาอีกอัน เอา Field RunningNo ใส่เข้าไปแล้วซ่อน textbox นี้ไว้นะครับ


4.ที่ textbox txtID ใส่โค้ดเป็นแบบนี้
โค๊ด: [Select]
=IIf([Running No] Mod 40=0,40,[Running No] Mod 40)
เท่านี้ก็จะรันลำดับอย่างถูกต้องแล้วคับ   :grin:
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

97
เรื่องการทำเส้นให้เต็มในรายงานลองอ่านกระทู้นี้ดูนะครับ
https://www.thai-access.com/yeadram_view.php?topic_id=3065&PagePosition=1
ส่วนเรื่องเลขที่ตัดทุก 40 ใช้การเขียนคำสั่งหารสั้นเอาแต่เศษด้วยทำสั่ง Mod ที่เลขลำดับของเรา โดยใช้เงื่อนไข
=IIf([ID] Mod 40=0,40,[ID] Mod 40)
คือหารสั้นเอาแต่เศษด้วย 40 แต่ถ้าเศษเป็น 0 ให้เท่ากัย 40 วิธีนี้ ID ต้องเรียงเลขกันห้ามข้ามนะครับ
ไฟล์ตัวอย่าง
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

98
สมมุติ Field ที่เก็บคำนำหน้าชื่อว่า TitleName
ใช้ Replace Function
โค๊ด: [Select]
Replace([TitleName],".","")


ทีนี้ในคำนำหน้าชื่อมา . กี่อันมันลบหมดเลยคับ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

หน้า: 1 ... 3 4 5 [6]