Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ ระบบฐานข้อมูล
Access : จุดเริ่มต้นที่ง่ายที่สุดสำหรับการเรียนรู้ การเขียนโปรแกรม
Access : เป็นได้ทั้งตัวเก็บฐานข้อมูล และตัวจัดการฐานข้อมูล
Thai Access : บอร์ดเสริมการเรียนรู้ Access ด้วยภาษาไทย

น้อมรำลึกในพระมหากรุณาธิคุณอันหาที่สุดมิได้ พระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดชฯ พระผู้เสด็จสู่สวรรคาลัย

Back to Board : Thai Access Webboard New Topic    Reply
ช่วยด้วยครับ การแสดงค่าในตัวควบคุม

Topic by Message Posted : on : 8/8/2560 13:08:13
พีท  ผมต้องการให้รายงานแสดงข้อมูลจากตัวควบคุม 1,2,3 ... จนถึง 20
ถ้ามีข้อมูลในตัวควบคุมเฉพาะ 1 หรือ 2 ก็ให้แสดงแค่นั้น ถ้าตัวที่ไม่มี ไม่ให้แสดง
ผมสร้างนิพจน์โดยใช้ =IIf แล้วไม่ได้

ไม่ทราบว่าต้องทำอย่างไรบ้างครับ

รบกวนช่วยด้วยครับ


4 Reply in this Topic. Dispaly 1 pages and you are on page number 1

Reply by Message on : 8/8/2560 15:34:36
สันติสุข
(R23872)
=IIf(Nz(Forms![ชื่อฟอร์ม]![ชื่อคอนโทรลบนฟอร์ม],"")="","",Forms![ชื่อฟอร์ม]![ชื่อคอนโทรลบนฟอร์ม])

เพิ่มเติม : แต่ถ้าเป็นผม เพื่อให้ง่ายต่อการจัดการและดูแลโค้ด ผมจะเขียนโค้ดลง event procedure On Format ของ section ของรายงานที่ค่าเหล่านี้จะไปแสดงแทน

Dim F as Access.Form

Set F = Forms("ชื่อฟอร์ม")

If Nz(F("ชื่อคอนโทรล1บนฟอร์ม"),"") <> "" Then Me("ชื่อคอนโทรล1บนรายงาน") = F("ชื่อคอนโทรล1บนฟอร์ม")
...
...
...
Back to Top
Reply by Message on : 10/8/2560 9:37:38
พีท
(R23874)
รบกวนถามต่อครับ ลองแล้วได้ แต่พอใส่คอนโทรล 2 แล้วไม่ได้

=IIf(Nz(Forms![ชื่อฟอร์ม]![ชื่อคอนโทรลบนฟอร์ม],"")="","",Forms![ชื่อฟอร์ม]![ชื่อคอนโทรลบนฟอร์ม])

คอนไทรลที่ 2 ... ถึง 20 ใส่ต่อยังไงหรอคับ
ตัวอย่างของผม

=IIf(Nz([Forms]![Table1]![1],"")="","",[Forms]![Table1]![1])

แล้วถ้าจะให้ คอนโทรล 2 แสดงบรรทัดต่อมาทำไงครับ

แล้วก็1หน้ารายงาน แสดงข้อมูลได้ 10 คอนโทรล

และถ้าสมมติเกิน 1 หน้า (คอนโทรลที่่ 11 เป็นต้นไป) ให้แสดงต่อในหน้ารายงานที่2 ถ้ามีไม่เกิน10คอนโทรล ก็ให้แสดงแค่ 1 หน้า

แบบนี้ต้องทำอย่างไรคับ ติดมานานมากเลยครับตรงนี้

ขอบพระคุณล่วงหน้าครับผม
Back to Top
Reply by Message on : 10/8/2560 10:12:04
สันติสุข
(R23875)
การที่เราจะวางคอนโทรลเดียวแล้วให้ผูกกับข้อมูลหลายๆตัว ทำได้เฉพาะเมื่อผูกเข้ากับฟิลด์ในเทเบิลเท่านั้น ตัวรายงานก็จะดึงฟิลด์ทีละเรคอร์ดจากเทเบิลมาแสดง ทำให้เห็นเป็นหลายๆบรรทัดได้ แต่กรณีที่เอาค่าจากคอนโทรลบนฟอร์มมาใส่ในรายงาน ถ้ามี 20 คอนโทรล ก็ต้องสร้างเท็กซ์บ็อกซ์ 20 ตัวบนรายงานไล่ต่อกันลงมาเรื่อยๆ แล้วใส่ expression ลงใน Control Source property ของแต่ละคอนโทรลครับ ไม่ใช่ใส่ต่อกัน คอนโทรลตัวที่ 2 ก็ต้องมีค่าของ Control Source เป็น

=IIf(Nz([Forms]![Table1]![2],"")="","",[Forms]![Table1]![2])

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

Back to Top
Reply by Message on : 10/8/2560 23:23:45
pizza_p
(R23877)
1. สร้างรายงานขึ้นมา

2. ใส่ Control ไว้ตัวนึง แล้วให้มีค่า = SumResult() และกำหนด Can Grow = Yes

3. ใส่ Function นี้เข้าไปในรายงานตัวนี้ดังนี้

Private Function SumResult() As String
Dim i As Integer, Result As String

Result = ""
For i = 1 To 20
    If Nz([Forms]![Table1](Str(i)), "") <> "" Then
        Result = Result & [Forms]![Table1](Str(i)) & vbNewLine
    End If
Next
SumResult = Result

End Function

เปิดรายงานขึ้นมาเป็นอันเรียบร้อย
Back to Top

Reply

 *Indicates required fields
Format:
Bold Under Line Italic Add Hyperlink Add Email Link Italic List Indent Add Image Emoticons Insert code Mode:
Message:*
Your Name*:
Normal word*: Please input : ไทยแอ็คเซส
+++ webboard source: ASPThai.Net Webboard 6.0 webbord +++++++ admin : yeadram +++