แสดงกระทู้

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

หน้า: 1 [2] 3
19
ตรงช่อง google search แว่นขยายด้านบนลองใส่คำว่า print form มีหลายๆ ตัวอย่างเลยครับ
ทำได้ครับ form filter to print (ใช้คำค้นนี้ก็ได้ครับ) ลองค้นและอ่านๆ ดูว่าคำถามไหนคล้ายของเรา
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

20
>ถ้าให้ qurey ออกเลขรอคำแนะนำจากท่านอื่นนะครับ
>บนหน้าฟอร์มใช้ชุดคำสั่งออกเลข(เลขที่ออกฝังตัวบันทึกลงตาราง)ลองดูกระทู้นี้ครับ https://www.thai-access.com/index.php?topic=1181.msg5215#msg5215
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

21
วิธีทำให้ qurey ใส่หมายเลขเรียงอัตโนมัติลองดูกระทู้นี้ครับ https://www.thai-access.com/index.php?topic=1434.msg6261#msg6261
ว่าแต่อันไหนคือชนิดของพัสดุที่จะนำมาเรียงครับนี่ :question:

หรือว่าจะให้ qurey ออกเลขแยกตามหน่วยงานที่เบิกครับ เช่น คลังเบิกครั้งที่1,2,3,... ช่างเบิกก็นับแยกครั้งที่1,2,3,...
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

22
ไม่รู้ว่าแบบนี้หรือเปล่านะครับ
ถ้าเป็นการอ้างอิงวันที่ไปใส่ ลองวิธีนี้ดูครับ


ผมสมมุติ textbox ชื่อตามในรูปนะครับ
โค๊ด: [Select]
Private Sub DtDateBorrow1_AfterUpdate()
If Not IsNull(Me.DtDateBorrow1) Then
Me.DtDateBorrowBack = Me.DtDateBorrow1
Me.DtDateBorrowOut = Me.DtDateBorrow1
End If
End Sub
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

23
ลองสร้างคิวรี่แล้ว Run SQL นี้ดูคับ
โค๊ด: [Select]
SELECT Format([วันที่],"mmm") AS เดือน
FROM Table1
ORDER BY Month([วันที่]);
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

24
ในคิวรี่นั้นลองเพิ่มเป็น 2 คอลัมน์ดูครับ
คอลัมน์ 1 ใช้ฟังก์ชัน format ที่คุณทำ
คอลัมน์ 2 เลือกฟิลด์วันที่มาวาง แล้วก็เรียงลำดับจากน้อยไปหามากครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

25
ไม่เคยเจอเหมือนกัน คิดว่าอาจต้องสร้างไฟล์ MS Access เปล่าๆ ขึ้นมาใหม่ แล้วใช้การ Import ทุกอย่างจากไฟล์เดิมเข้ามา โปรแกรมมันจะปรับการจัดเรียงตาราง Relationships ให้ใหม่ ไม่รู้ว่ากรณีนี้จะหายไม๊ เป็นอีกวิธีให้ลองดูแล้วกันครับ
(น่าจะคล้ายการ Clear Layout ที่ อ.สันติสุข บอก 'ลืมดูว่า อาจารย์ตอบไปแล้ว')
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

26
ลองดูวิธีนี้ แต่ไม่แน่ใจว่าจะได้กับกรณีตารางหลุดนอกจอหรือเปล่านะครับ ให้คลิกที่ตารางอะไรก็ได้ในวินโดว์ Relationships แล้วกดปุ่ม TAB หรือ SHIFT-TAB เพื่อไปตารางถัดไปหรือก่อนหน้า ก็กดไปจนกว่าจะเจอตารางที่หลุดจากจอ แล้วก็ค่อยเอาเมาส์เลื่อนมันกลับเข้าไปอีกที

หรืออีกวิธีคือ คลิก Clear Layout ก็จะลบไดอะแกรมออกไป (ไม่ได้ลบ Relationship) แล้วคลิก All Relationships อีกที ทุกๆความสัมพันธ์ที่มีอยู่แล้วก็จะแสดงออกมาเป็นไดอะแกรมแบบทื่อๆ ซึ่งเราต้องมาจัดเรียงตำแหน่งทั้งหมดอีกที
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

27
ลองศีกษาฟังชั่น DateDiff() ดูครับ สิ่งที่จะได้คือเวลาที่สาย
จากนั้นใช้คำสั่ง If เพื่อใช้คัดกรองผู้ที่มาสาย = 1

ลองเพิ่มรูปแบบคำสั่งนี้เข้าไปใน Query ดูครับ LateChk: IIf(DateDiff("n",[StrtWrk],"08:00")<0,"1","")





ขอขอบคุณความรู้เกี่ยวกับ MS-Access จาก อ. สุภาพ ไชยา
ก็ฝากไว้เผื่อจะสามารถช่วยให้มิตรรักแฟนเพลงท่านหนึ่งท่านใด ก้าวพ้นปัญหาที่กำลังแก้อยู่ได้เร็วขึ้น
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

28
ทำได้หลายวิธีครับ

วิธีนึงคือใช้ CrosstabQuery ก็จะได้ผลสรุปเป็นตารางแบบนี้
ID 2 หยุดวันที่ 5
ID 3 หยุดวันที่ 4




อีกวิธีก็สร้างคิวรีแบบผลคูณ Cartesian เพื่อแสดง ID กับ Date ทั้งหมด รวมทั้งวันที่หยุดไปด้วย


จากนั้นก็นำคิวรีมาสร้างคิวรี เพื่อเลือกเฉพาะวันที่หยุดไปออกมาแบบนี้



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

29
ไม่รู้แบบนี้หรือเปล่านะครับ
เป็นการเช็คว่า ในแต่ละวันมีใครขาดเรียนบ้าง


โดย Query ที่ผมสร้างขึ้นมามี
GroupName คือ เป็นการจัดกลุ่มชื่อเด็กทั้งหมดไว้ (อันนี้เอามาจากฐานชื่อนามสกุลนักเรียนได้ครับ)
NameByDate คือ การหารายชื่อเด็กที่มาในแต่ละวัน เพื่อค้นหาชื่อเด็กที่หายไป(ขาดเรียน)
Result คือแสดงผลลัพท์ว่า ถ้าชื่อเด็กคนนั้นหายไปให้แสดงว่าขาดเรียน ถ้าไม่หายไปแสดงว่ามาเรียน

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

30
น่าจะประมาณนี้คับ เอาโค้ด Sql นี้ไปวางแล้วรันดูคับ ผมสมมุติชื่อ tableหรือQuery ที่จะนำข้อมูลมาบวกลบ ว่า Table เลยนะครับ ถ้าชื่อ table เป็นชื่ออื่นๆก็กดแก้ก่อนนะครับ

ถ้าข้อมูลเป็น Number นะครับ

โค๊ด: [Select]
SELECT IIf([จำนวนวันลาสะสม]=0,Nz([จำนวนวันลาประจำปี],0)-Nz([จำนวนลาครั้งนี้],0),Nz([จำนวนวันลาสะสม],0)-Nz([จำนวนลาครั้งนี้],0)) AS ผลลัพท์, table.[จำนวนวันลาสะสม], table.[จำนวนวันลาประจำปี], table.รวม, table.[จำนวนลาครั้งนี้], table.[คงเหลือวันลา]
FROM [table];

ถ้าข้อมูลเป็น Text

โค๊ด: [Select]
SELECT IIf([จำนวนวันลาสะสม]="0",Nz([จำนวนวันลาประจำปี],0)-Nz([จำนวนลาครั้งนี้],0),Nz([จำนวนวันลาสะสม],0)-Nz([จำนวนลาครั้งนี้],0)) AS ผลลัพท์, table.[จำนวนวันลาสะสม], table.[จำนวนวันลาประจำปี], table.รวม, table.[จำนวนลาครั้งนี้], table.[คงเหลือวันลา]
FROM [table];
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

31
ถ้าใช้การสร้าง Unbound Control ไว้ส่วนหัวแล้วกรอกข้อมูลจากบนนี้ น่าจะพอทำได้คับ
ส่วนการให้ข้อมูลล่าสุดมาแสดงบนสุด ผมใช้การสร้างฟิลล์ อีกฟิลล์ datatype Date/Time กำหนด ค่าเริ่มต้นเป็น Now แล้วกรองค่าจากมากไปหาน้อยครับ
หรือถ้ามี ID แบบ Autonumber ก็เอามากรองได้เลยครับไม่ต้องสร้างฟิลล์เพิ่ม
ตัวอย่างด้านล่าง

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

32
ปัญหานี้อาจจะเกิดจาก References ไม่ครบถ้วน หรือเปล่า ลอง เอาหน้า References มาดูหน่อยครับ
แจ้ง version ของ Office ด้วยนะ
การตรวจสอบ เปิดหน้าต่างเขียนโค้ด หรือที่ งานของเรากด Alt+F11  เลือกรายการ tab ชื่อ  Tools > References. 
แล้วลองตรวจเช็คดูครับ
ของผมปกติเจออย่างต่ำก็ 4 รายการคับ
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

33
งงปัญหาของคุณว่าใช้ตรงไหน-อย่างไรถึงใช้ไม่ได้ -->   @ เขียนคำถามให้เข้าใจ จะช่วยให้ได้คำตอบที่ชัดเจนและรวดเร็ว / สามารถอัพโหลดภาพ หรือไฟล์ตัวอย่างได้ที่"ตัวเลือกเพิ่มเติม..."

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

34
ใส่ในtextboxที่่มันขึ้นว่าunknowได้หรือเปล่าครับ อาจจะเป็นฟอร์มหรือรีฟอร์ทก็ได้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

35
ตามความเป็นจริง จำนวนใดๆ หาร 0 มันทำไม่ได้อยู่แล้วครับ

ถ้า จำนวนตัวเลข หาร 0 จะแสดง #Div/0!

ถ้า 0 หาร 0 ก็จะแสดง #Num ครับ

แต่เรากันข้อผิดพลาดได้โดยการกำหนดเงื่อนไข ก่อนคำนวนเช่น
เปลี่ยนจาก [Sum]/[Last]
เป็น
โค๊ด: [Select]
IIf([Sum]<>0 And [last]<>0,[Sum]/[Last],0)
หรือถ้าอยากให้แสดงเป็นช่องว่างแทนเลข 0 ก็ใส่ Null ก็ได้คับ
โค๊ด: [Select]
IIf([Sum]<>0 And [last]<>0,[Sum]/[Last],null)
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

36
แล้วใส่ที่ไหนครับ ใส่ในฟอร์ม ในรีพอร์ต ในตาราง :sweat:
โพสต์นี้ได้รับคำขอบคุณจาก: MiKu

หน้า: 1 [2] 3