แสดงกระทู้

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]
1
ห้อง MS Access / : โปรแกรม Access error Query " is corrupt
« เมื่อ: 21 พ.ย. 62 , 13:53:29 »
ลองวิธี Uninstall ตัวอัพเดทออกตามวิธีนี้ดูว่าได้ไม๊ครับ
http://fmsinc.com/MicrosoftAccess/Errors/query_is_corrupt/index.htm link
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

2
ห้อง MS Access / : โปรแกรม Access error Query " is corrupt
« เมื่อ: 21 พ.ย. 62 , 12:18:07 »
 :startle: :startle: จริงด้วยผมอ่านไม่จบ งั้นวิธีแก้ก็น่าจะต้องลง OFFICE ใหม่ แล้ว ห้ามอัพเดทจะดีกว่าครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

3
ห้อง MS Access / : โปรแกรม Access error Query " is corrupt
« เมื่อ: 21 พ.ย. 62 , 11:37:20 »
ลิงค์ที่ให้มาคือตัวที่ก่อให้เกิดปัญหาไม่ใช่หรือ ไม่ใช่ตัวแก้ปัญหา ยกเว้นใน Office 2016 ที่มีลิงค์ไปหาตัวแก้ปัญหาอีกที แต่ก็ต้องไม่ใช่ Office ประเภท Click-To-Run ด้วย
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

4
ห้อง MS Access / : โปรแกรม Access error Query " is corrupt
« เมื่อ: 21 พ.ย. 62 , 10:33:20 »
ลองรีเซ็ตเครื่องดูหรือยังครับ ถ้ายังไม่ได้จริงๆ ก็ลบ OFFICE แล้วลงใหม่ครับ และปิดระบบ WINDOWS UPDATE ด้วยนะครับ

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

5
ห้อง MS Access / : โปรแกรม Access error Query " is corrupt
« เมื่อ: 21 พ.ย. 62 , 09:36:12 »
.
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

6
iif("[วันหมดอายุ]"<Date(),"หมดอายุ","เหลือ "&Cstr(DateDiff("d","[วันหมดอายุ]",Date())) & " วัน")
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

7
เหมือนกับการเช็ควันที่ปัจจุบัน กับ วันที่หมดอายุ ใช่ไหมครับ ว่าถ้าไม่ครบกำหนดแล้วเหลือกี่วัน ถ้าครบกำหนดแล้วก็แสดงว่าบัตรหมดอายุ

ผมสมมุติชื่อ Field ดังนี้

Field ชื่อ CustomerName  Datatype Text  เก็บชื่อลูกค้า
            OutCardDate     Datatype Date&Time  เก็บวันออกบัตร
            ExpireCardDate Datatype Date&Time  เก็บวันหมดอายุ

Table ชื่อ Table1

ที่คิวรี่ เอา sql นี้ไปวางได้เลย
โค๊ด: [Select]
SELECT table1.CustomerName, table1.OutCardDate, table1.ExpireCardDate, IIf(Date()<[ExpireCardDate],"เหลือ " & [ExpireCardDate]-Date() & " วัน","บัตรหมดอายุ") AS สถานะ
FROM table1;
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

8
ผมลองแล้วดูได้ คุณเปิดดูใน Print Preview หรือเปล่า
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

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

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

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

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

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

12
ถ้าเป็นในรายงานเราสามารถทำ 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 แทน ก็น่าจะใช้ได้แล้วครับ
ไฟล์ตัวอย่างแก้ไข link
โพสต์นี้ได้รับคำขอบคุณจาก: mtaccess

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

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

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

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

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

14
ใช้การ 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

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

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


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

หน้า: [1]