กระทู้เก่าบอร์ด อ.Yeadram
        
           1,776   9		  
          
					  
		    URL.หัวข้อ / 
		    URL
        
        คำสั่ง Auto Resize      
    
      ผมเลือก Auto Resize ใน popertie เป็น Yes
ในฟอร์ม ผมมี Combo box เลือกปีที่ออกรายงาน เมื่อผมเลือกปี
จำนวนเรคคอร์ด ก็จะมีมากน้อยตามปี ในครั้งแรกที่เปิดฟอร์ม สมมุติว่า
มีจำนวน 10 เรคคอร์ด แต่เมื่อผมเลือกปี อื่นๆ ที่จะออกรายงาน สมมุติว่า
มี 20 เรคคอร์ด ข้อมมูลก็จะล้นหน้า
มันมีคำสั่ง ให้ฟอร์ม Auto Resize เมื่อเลือกข้อมูลเรียบร้อยแล้วมั้ยครับ
    
    
  ในฟอร์ม ผมมี Combo box เลือกปีที่ออกรายงาน เมื่อผมเลือกปี
จำนวนเรคคอร์ด ก็จะมีมากน้อยตามปี ในครั้งแรกที่เปิดฟอร์ม สมมุติว่า
มีจำนวน 10 เรคคอร์ด แต่เมื่อผมเลือกปี อื่นๆ ที่จะออกรายงาน สมมุติว่า
มี 20 เรคคอร์ด ข้อมมูลก็จะล้นหน้า
มันมีคำสั่ง ให้ฟอร์ม Auto Resize เมื่อเลือกข้อมูลเรียบร้อยแล้วมั้ยครับ
				9 Reply in this Topic. Dispaly 1  pages and you are on page number 1 
				
        
    2 @R16598    
        
  
      ความสูงหน่วยเป็น อะไรครับ อาจารย์ ลองเป็น Cm มันหายไปเลย    
    
  
        
    3 @R16599    
        
  
      ขอโทษครับอาจารย์ ได้แล้วครับ ผมไปทดสอบด้วยตัวเลขก่อน 
พอดูดีๆ มันกำหนดไว้ให้แล้วครับ
ผมจะนับจำนวนเรคคอดด้วย Count(ขื่อtextbox) Err มันต้องใช้ว่าอะไรครับ
    
  พอดูดีๆ มันกำหนดไว้ให้แล้วครับ
ผมจะนับจำนวนเรคคอดด้วย Count(ขื่อtextbox) Err มันต้องใช้ว่าอะไรครับ
        
    4 @R16600    
        
  
      ได้แล้วครับ อาจารย์ ผมไป Count ที่ Query ที่คำนวนเลยครับ
เจ๋งจริงๆ ขอบพระคุณมากครับ
    
  เจ๋งจริงๆ ขอบพระคุณมากครับ
        
    5 @R16601    
        
  
      ความสูง/กว้างที่เราเห็นจาก Propert อาจแสดงเป็นนิ้ว,เซ็นติเมตร ตามแต่หน่วยที่ถูกกำหนดใน Control Panel แต่หน่วยที่ใช้ในการเขียนโปรแกรมจริงๆเราเรียกว่า Twips  โดยที่ 1 นิ้วจะมี 1440 twips  (หรือ 1 เซ็นติเมตร จะมี 567 twips)    
    
  
        
    6 @R16602    
        
  
      พอทดสอบ เจอปัญหาขึ้นมาตรง Action ของมันครับ
ผมควร จะใส่ ฟังชัน ใน Event ไหนครับ เก่าที่ระบุความสูงตายตัว
เมื่อ เลือกเงื่อนไขสุดท้าย ผมสั่งให้ Requery ใน Event AfterUpdate
ผมนำ ฟังชั่นนี้ ไปต่อท้าย Requery และใส่ Refresh ต่อท้ายด้วย
มันกลับนิ่ง แต่เมื่อเลือก ครั้งต่อไปมันกลับทำงาน
    
  ผมควร จะใส่ ฟังชัน ใน Event ไหนครับ เก่าที่ระบุความสูงตายตัว
เมื่อ เลือกเงื่อนไขสุดท้าย ผมสั่งให้ Requery ใน Event AfterUpdate
ผมนำ ฟังชั่นนี้ ไปต่อท้าย Requery และใส่ Refresh ต่อท้ายด้วย
มันกลับนิ่ง แต่เมื่อเลือก ครั้งต่อไปมันกลับทำงาน
        
    7 @R16603    
        
  
      อ่านแล้วไม่เข้าใจครับว่าเป็นยังไง  คือ event ไหนเป็น event สุดท้ายที่ไปเรียกให้เกิดการแสดงเรคอร์ดตามปีที่เลือกใหม่ ก็ให้ต่อท้ายคำสั่งนั้นใน event นั้นๆ    
    
  
        
    8 @R16608    
        
  
      ถ้าเป็น DataSheet ผมใช้ Me.Move
แต่ต้องคำนวณเผื่อขอบของ window ด้วยครับ
    
  แต่ต้องคำนวณเผื่อขอบของ window ด้วยครับ
        
    9 @R16611    
        
    
      อาจารย์พิชัย ผมใช้ Continuous Form ครับขอบพระคุณครับ
อาจารย์สันติสุข ครับ ขั้นตอนของผมคือ
เลือกปี พ.ศ.แล้ว Query ถึงจะรัน ผมเอาฟังชั่นไปวาง ท้ายสุด
มันเหมือนกับว่า Query มันรันแล้ว ฟอมร์ยังไม่รัน Query
เช่น เลือกปี 56 มี 3 เรคคอ์ด ฟอร์มไม่ปรับขนาด(เลือกครั้งแรก)
เลือกปี 55 มี 2 เรคคอร์ด ฟอร์ปรับขนาด 3 เรคคอร์ด
เลือกปี 54 มี 2 เรคคอร์ด ฟอร์ปรับขนาด 2 เรคคอร์ด
เหมือนกับว่ามันอ่านค่าของการรัน Query ค้างไป 1 ครั้ง
เลยคิดว่า น่าจะเกิดจากขั้นตอนการรัน
ตอนนี้ทำได้แล้วครับ ลองผิดลองถูกอยู่ นาน
ผมเอา ฟังชั่น ไปไว้ที่ Event Form_Load
และใน Event AfterUpdate ของ Combobox เลือกปี
ผมเอา Call Form_Load ไปวางต่อ
สรุปว่าจบงานครับ ขอบพระคุณอาจารย์สันติสุข และอาจารย์พิชัยครับ ได้ความรู้ใหม่ อีกเรื่องนึงครับ ^^
    
    
  อาจารย์สันติสุข ครับ ขั้นตอนของผมคือ
เลือกปี พ.ศ.แล้ว Query ถึงจะรัน ผมเอาฟังชั่นไปวาง ท้ายสุด
มันเหมือนกับว่า Query มันรันแล้ว ฟอมร์ยังไม่รัน Query
เช่น เลือกปี 56 มี 3 เรคคอ์ด ฟอร์มไม่ปรับขนาด(เลือกครั้งแรก)
เลือกปี 55 มี 2 เรคคอร์ด ฟอร์ปรับขนาด 3 เรคคอร์ด
เลือกปี 54 มี 2 เรคคอร์ด ฟอร์ปรับขนาด 2 เรคคอร์ด
เหมือนกับว่ามันอ่านค่าของการรัน Query ค้างไป 1 ครั้ง
เลยคิดว่า น่าจะเกิดจากขั้นตอนการรัน
ตอนนี้ทำได้แล้วครับ ลองผิดลองถูกอยู่ นาน
ผมเอา ฟังชั่น ไปไว้ที่ Event Form_Load
และใน Event AfterUpdate ของ Combobox เลือกปี
ผมเอา Call Form_Load ไปวางต่อ
สรุปว่าจบงานครับ ขอบพระคุณอาจารย์สันติสุข และอาจารย์พิชัยครับ ได้ความรู้ใหม่ อีกเรื่องนึงครับ ^^
      Time: 0.0692s
    
      
		
ก็จะได้เป็น
Me.InsideHeight = Me.Section(acHeader).Height + (จำนวนเรคอร์ด * Me.Section(acDetail).Height) + Me.Section(acFooter).Height
แต่อย่างไรก็ตาม ควรกำหนดจำนวนเรคอร์ดสูงสุดเอาไว้ด้วย ไม่อย่างนั้นอาจเกิด error ได้