สอบถาม Running Number แบบไม่มี Field Numberและไม่มี Field ที่ไม่ซ้ำครับ


0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

11 พ.ค. 65 , 10:54:33
อ่าน 65 ครั้ง

arampong

เรียนผู้รู้ทุกท่าน และอาจารย์ทุกท่านครับ

          ตามหัวข้อเลยครับ ผมดึงข้อมูลเป็นแบบ Link จาก Excel เข้า Access โดยที่ห้ามแก้ไขหรือเพิ่มคอลั่มจาก File Excel
แล้วเอามาใช้งานแต่ติดที่ Excel ไม่มีField Numberและไม่มี Field ที่ไม่ซ้ำครับ ที่ผมจะเอามาใช้ Running Number ให้กับรายการที่ Query ครับเลยทดลองดำดังนี้ครับ

1. ดึง Ms Excel เข้า Ms Access
2. ดึงข้อมูลทั้งหมดมาทำ Query ขึ้นมาเพื่อว่าจะได้เอาข้อมูลไปทำอะไรต่อได้ (ตอนนี้ต้องการทำเลข Running Number หรือลำดับรายการที่ Query ครับ)
3. ที่ข้อมูลที่ดึงมามันไม่มีข้อมูลที่ไม่ซ้ำกัน และไม่มีข้อมูลที่เป็น Number อย่างเดียวเลยครับ

ผมสามารถสร้างเลข Running number เข้าไปที่ Query ได้ไหมครับ และอย่างไร รบกวนแนะนำด้วยครับ
ขอบคุณครับ

 

11 พ.ค. 65 , 12:06:19
ตอบกลับ #1

PNR

วิธิที่ 1.สร้าง Module ใส่โค้ดนี้เข้าไป
โค๊ด: [Select]
Function rownumQry(Rec) As Variant
Static firstRec, row&
If firstRec = "" Then firstRec = Rec
If Rec = firstRec Then row = 0
row = row + 1
rownumQry = row
End Function

ที่คิวรี่ดึงฟิลล์อื่นๆที่ต้องการมาแสดงปกติ
และใส่โค้ดนี้เข้าไปอีก 1 ฟิลล์

RowNumber: rownumqry([ชื่อฟิลล์ที่อยากนำมาสร้างลำดับ])
คิวรี่จะสามารถรันลำดับได้ครับซึ่งไม่จำเป็นต้องมีตัวเลข หรือ ข้อมูลที่ไม่ซ้ำ เหมือนกับการใช้ Count(*) มาสร้างลำดับ
เมื่อได้ลำดับมาแล้วท่านอาจจะสร้าง MakeTable Query เพื่อสร้างตารางไว้เลยก็ได้


วิธีที่ 2 ใช้การ Append ข้อมูลที่ลิ้งมานั้นไปยังตาราง access
โดยมีการกำหนดให้มีField ที่เป็น AutoNumber อยู่ด้วย มันจะสร้างลำดับให้อัตโนมัติ
ในบางครั้งถ้าลบข้อมูลเก่าออกไปแล้วการรันลำดับนั้นไม่เริ่มต้นที่ 1 ใหม่
ให้ทำการ compact & Repair ก็จะสามารถรันลำดับได้ปกติครับ

« แก้ไขครั้งสุดท้าย: 11 พ.ค. 65 , 12:18:09 โดย PNR »
Time to stop for me  :dizzy:
 

11 พ.ค. 65 , 13:28:15
ตอบกลับ #2

arampong

สุดยอดไอเดียร์ครับ
ได้ความรู้หลายอย่างที่น่าทึ่งมากครับวันนี้
1.ไม่คิดว่าจะดึง Module มาใช้ใน Query ได้
2.การผนวกตารางกัน สามารถรวมตารางให้ให้เกิดตารางใหม่ตามต้องการได้

ขอนำไปใช้ละครับ

ขอบคุณมากๆ ครับคุณ PNR

 


บอร์ดเรียนรู้ Access สำหรับคนไทย