สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ



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

05 เม.ย. 64 , 16:02:56
อ่าน 378 ครั้ง
สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
เช่น Taxbox ชื่อ QRCode สแกน แล้วได้ค่า AAABBB100
สิ่งที่ต้องการคือ เมื่อสแกนแล้วค่าที่บันทึกก่จะได้
AAABBB100
AAABBB200
AAABBB300
AAABBB400
AAABBB500
AAABBB600

ตัวอย่างนี้เราเป็นผู้กำหนดว่าแต่ละรุ่นจะบันทึกกี่ครั้ง ไม่มีปุ่มให้กดครับ สแกนแล้วเข้า Database เลย
ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 06 เม.ย. 64 , 09:28:54 โดย ชวลิต เสนะสุทธิ »

 

07 เม.ย. 64 , 12:33:56
ตอบกลับ #1

UnKnown

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #1 เมื่อ: 07 เม.ย. 64 , 12:33:56 »
AAABBB100 เป็นตัวอักษรไม่ใช้ตัวเลขดังนั้นการที่จะบวกได้ก็ต้องใช้ Left,Right แยกออกมาก่อนบวกแล้วรวมกลับเข้าไปจากนั้นถึงจะนำเข้าไปใส่ใน Database นะครับ
>จำนวนตัวอักษรต้องเท่ากันทุกครั้งในการใช้ Left,Right แยกออกมา
>เมื่อ 900+100 = 1000 แต่เมื่อวนกลับไปใช้ Left,Right จะได้ 000(ดึง3ตัวท้าย)
>ตัวอย่างชื่อเทเบิ้ล Table1 ,ชื่อฟิวล์ BCode

โค๊ด: [Select]
Private Sub QRCode_AfterUpdate()
Dim i As Integer
Dim X As Variant
Dim Y As Variant
Y = Me.QRCode
DoCmd.SetWarnings (0)
For i = N + 1 To Me.Text0 'ตั้งออโต้จำนวนใว้ที่ 6
    SQL = "insert into Table1 ([BCode]) values('" & Y & "');"
    DoCmd.RunSQL SQL
    X = Right(Y, 3) + 100
    Y = Left(Me.QRCode, 6) & X
Next
DoCmd.SetWarnings (1)
Me.Recalc
End Sub
:ninja:     ลองคิด,ลองทำแนวคนไม่เก่งแอคเซส
หมายเหตุ เพื่อความปลอดภัยโปรดสำรองข้อมูลใว้ก่อนการแก้ไข
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

22 เม.ย. 64 , 10:31:23
ตอบกลับ #2
: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #2 เมื่อ: 22 เม.ย. 64 , 10:31:23 »
เจอปัญหาครับ ถ้าเราใส่อีก DATA ตัวแรกจะซ้ำครับ

BCode
AAACCC100
AAACCC100
AAACCC200
AAACCC300
AAACCC400
AAACCC500
AAACCC600

 

22 เม.ย. 64 , 12:40:49
ตอบกลับ #3

UnKnown

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #3 เมื่อ: 22 เม.ย. 64 , 12:40:49 »
ในตารางแก้ฟิวล์ BCode ให้ Indexed = Yes (No Duplicates) หรือ ใช่ (ไม่มีรายการซ้ำ)

ไฟล์ที่แก้ใหม่ครับ
« แก้ไขครั้งสุดท้าย: 22 เม.ย. 64 , 17:46:27 โดย UnKnown »
:ninja:     ลองคิด,ลองทำแนวคนไม่เก่งแอคเซส
หมายเหตุ เพื่อความปลอดภัยโปรดสำรองข้อมูลใว้ก่อนการแก้ไข
 

22 เม.ย. 64 , 16:28:16
ตอบกลับ #4
: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #4 เมื่อ: 22 เม.ย. 64 , 16:28:16 »
ขอบคุณครับ
« แก้ไขครั้งสุดท้าย: 23 เม.ย. 64 , 08:17:56 โดย ชวลิต เสนะสุทธิ »

 

23 เม.ย. 64 , 08:22:16
ตอบกลับ #5
: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #5 เมื่อ: 23 เม.ย. 64 , 08:22:16 »
ไม่ได้ครับมันขึ้น Error

 

23 เม.ย. 64 , 09:40:13
ตอบกลับ #6

PNR

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #6 เมื่อ: 23 เม.ย. 64 , 09:40:13 »
ลองดูโค๊ดนี้ว่าได้ไหม ช่วยๆกันสาย DIY

โค๊ด: [Select]
Private Sub QRCode_AfterUpdate()
Dim strLetterName As String
Dim intNum As Integer
Dim i As Long
Dim rst As DAO.Recordset
    Set rst = CurrentDb.OpenRecordset("table1", dbOpenDynaset)

strLetterName = Left(QRCode, 6)
intNum = Right(QRCode, 3)

For i = 1 To Me.Text0

rst.AddNew
rst!Bcode = strLetterName & intNum
rst.Update
intNum = intNum + 100
Next
rst.Close
Set rst = Nothing
Me.Recalc
End Sub

แต่ความต้องการคือให้ + 100 ไปเรื่อยๆหรือไม่เช่น
ถ้า 6 ครั้ง ก็จะได้ AAABBB100 - AAABBB600
แต่ถ้า 15 ครั้ง Bcode จะเป็น AAABBB100 - AAABBB1500

หรือจะปรับแก้ยังไงก็บอกนะครับ
« แก้ไขครั้งสุดท้าย: 23 เม.ย. 64 , 09:48:33 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

23 เม.ย. 64 , 11:00:24
ตอบกลับ #7
: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #7 เมื่อ: 23 เม.ย. 64 , 11:00:24 »
ที่บอกมาถูกต้องเลยครับ
"แต่ความต้องการคือให้ + 100 ไปเรื่อยๆหรือไม่เช่น
ถ้า 6 ครั้ง ก็จะได้ AAABBB100 - AAABBB600
แต่ถ้า 15 ครั้ง Bcode จะเป็น AAABBB100 - AAABBB1500"

Error ครับ

 

23 เม.ย. 64 , 11:38:45
ตอบกลับ #8

PNR

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #8 เมื่อ: 23 เม.ย. 64 , 11:38:45 »
ลองแก้เป็น
dim rst as recordset

เอา DAO ออกไปครับ
ถ้าอยากใช้ DAO ก็เพิ่ม reference ตัวนี้เข้าไป
« แก้ไขครั้งสุดท้าย: 23 เม.ย. 64 , 11:44:35 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

23 เม.ย. 64 , 12:36:32
ตอบกลับ #9

UnKnown

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #9 เมื่อ: 23 เม.ย. 64 , 12:36:32 »
ถ้าอยากใช้ DAO ก็เพิ่ม reference ตัวนี้เข้าไป


เครื่องผมเพิ่มไม่ได้ขึ้น Name conflicts with existing module, project, or object library แก้ยังไงครับ :question:
:ninja:     ลองคิด,ลองทำแนวคนไม่เก่งแอคเซส
หมายเหตุ เพื่อความปลอดภัยโปรดสำรองข้อมูลใว้ก่อนการแก้ไข
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

23 เม.ย. 64 , 12:59:41
ตอบกลับ #10

PNR

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #10 เมื่อ: 23 เม.ย. 64 , 12:59:41 »
ถ้าเลือก DAO 3.6 ก็เอา
Microsoft Office xx.0 Access Database engine object library ออกไปครับ

อธิบาย
ถ้าไฟล์ที่นามสกุล .accdb จะมี  Microsoft Office xx.0 Access Database engine object library มาให้แล้ว
มันใช้ได้เหมือน DAO

ถ้าจะใช้ DAO 3.6 ก็ต้องติ๊กเอา Microsoft Office XX.0 Access Database engine object library ออกไป

ถ้าใช้ Microsoft Office XX.0 Access Database engine object library ก็กำหนด แนะนำตัวนี้แหละดีแล้วสำหรับรุ่นใหม่ๆ
Microsoft Office  2007 ขึ้นไปใช้
Dim rst as Recordset

ถ้าใช้ DAO 3.6 ใช้กับเวอร์ชั่นเก่าๆ ดี ถ้าเวอร์ชั่นใหม่ๆ ใช้ตัวบน
Dim rst as DAO.Recordset
« แก้ไขครั้งสุดท้าย: 23 เม.ย. 64 , 13:16:36 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

23 เม.ย. 64 , 13:24:30
ตอบกลับ #11

UnKnown

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #11 เมื่อ: 23 เม.ย. 64 , 13:24:30 »
ไม่ว่าจะใช้แบบไหนผมก็รันไม่ได้เกิดจากอะไรครับนี่


:ninja:     ลองคิด,ลองทำแนวคนไม่เก่งแอคเซส
หมายเหตุ เพื่อความปลอดภัยโปรดสำรองข้อมูลใว้ก่อนการแก้ไข
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

23 เม.ย. 64 , 13:32:38
ตอบกลับ #12

PNR

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #12 เมื่อ: 23 เม.ย. 64 , 13:32:38 »
ลอง Compile / DeCompile ดูหรือยังครับ
ลอง compact and repair ด้วยครับ
« แก้ไขครั้งสุดท้าย: 23 เม.ย. 64 , 13:42:17 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: UnKnown, ชวลิต เสนะสุทธิ

23 เม.ย. 64 , 14:17:22
ตอบกลับ #13

UnKnown

: สอบถามการเพิ่มตัวเลขลงท้ายอัตโนมัติ
« ตอบกลับ #13 เมื่อ: 23 เม.ย. 64 , 14:17:22 »
2013 ผมหา Compile / DeCompile ไม่เจอครับ
compact and repair ทำแล้วแต่ก็ยังไม่ได้


โหลดไฟล์ Database39.mdb ของท่านมาใช้ได้ :sweat:
:ninja:     ลองคิด,ลองทำแนวคนไม่เก่งแอคเซส
หมายเหตุ เพื่อความปลอดภัยโปรดสำรองข้อมูลใว้ก่อนการแก้ไข
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ


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