การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง



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

09 ต.ค. 63 , 15:21:06
อ่าน 591 ครั้ง
สอบถามว่าการใช้โค้ด การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตารางแล้วจะได้ 100 ตาราง ตามจำนวนที่กรอกเข้าไป และการสั่งเพิ่มครั้งต่อไปจะใส่ค่าเดิมไม่ได้ เพื่อนำไปประยุกต์ในการปริ้น Label ครับเช่น
« แก้ไขครั้งสุดท้าย: 09 ต.ค. 63 , 15:26:13 โดย ชวลิต เสนะสุทธิ »

 

09 ต.ค. 63 , 15:43:44
ตอบกลับ #1

PNR

: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #1 เมื่อ: 09 ต.ค. 63 , 15:43:44 »
อ้างถึง
การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตารางแล้วจะได้ 100 ตาราง

100 ตารางหรือ 100 Record ครับ ???

ถ้า 100 Record ก็ตามนี้เลย
โค้ด

Private Sub Command8_Click()
Dim strNum As String
Dim I As Long
Dim db As Database
Dim rs As Recordset
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("table1", DB_OPEN_DYNASET) 'Table1 คืื่อตาราง
   
    For I = Me.txtBeginNumber To Me.txtEndNumber
    strNum = Nz(Me.txtModel) & Nz(Me.txtYear) & Right("00000" & I, 4)

     rs.AddNew
        rs![Runnum] = strNum 'runnum คือ Field ในตาราง
     rs.Update
     Next   
End Sub

เวลาใส่ตัวเลข ในช่องเริ่มและสิ้นสุด ใส่ตัวเลข ธรรมดาได้เลยเช่น  1   กับ 100

« แก้ไขครั้งสุดท้าย: 09 ต.ค. 63 , 15:53:13 โดย PNR »
Time to stop for me  :dizzy:
 

09 ต.ค. 63 , 16:15:13
ตอบกลับ #2
: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #2 เมื่อ: 09 ต.ค. 63 , 16:15:13 »
ขอบคุณมากครับ ทำได้แล้วครับ

 

12 ต.ค. 63 , 09:17:39
ตอบกลับ #3

PNR

: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #3 เมื่อ: 12 ต.ค. 63 , 09:17:39 »
ขอปรับเพิ่มโค้ดนิดหน่อยครับ เปิด record มาใช้แล้วลืมปิด

โค๊ด: [Select]
Dim strNum As String
Dim I As Long
Dim db As Database
Dim rs As Recordset
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("table1", DB_OPEN_DYNASET)
   
    For I = Me.txtBeginNumber To Me.txtEndNumber
    strNum = Nz(Me.txtModel) & Nz(Me.txtYear) & Right("00000" & I, 4)

     rs.AddNew
        rs![Runnum] = strNum
     rs.Update
     Next
rs.Close
db.Close
Set rs = Nothing: Set db = Nothing   
Time to stop for me  :dizzy:
 

12 ต.ค. 63 , 09:21:32
ตอบกลับ #4
: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #4 เมื่อ: 12 ต.ค. 63 , 09:21:32 »
ถ้าเราต้องการให้แยก Field ในตาราง ครับ เราต้องเพิ่มทุกช่องใช่ไหมครับ
เช่น ถ้าเราใส่ตรง Number 1 - 10
ก่จะได้
Runnum   : AAA 10ตัว
Runnum1 : 2010 10ตัว
Runnum2 : 0001-0010
« แก้ไขครั้งสุดท้าย: 12 ต.ค. 63 , 09:29:44 โดย ชวลิต เสนะสุทธิ »

 

12 ต.ค. 63 , 10:36:51
ตอบกลับ #5

PNR

: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #5 เมื่อ: 12 ต.ค. 63 , 10:36:51 »
ถ้าเราต้องการให้แยก Field ในตาราง ครับ เราต้องเพิ่มทุกช่องใช่ไหมครับ
เช่น ถ้าเราใส่ตรง Number 1 - 10
ก่จะได้
Runnum   : AAA 10ตัว
Runnum1 : 2010 10ตัว
Runnum2 : 0001-0010

แก้โค้ดเป็นแบบนี้
โค๊ด: [Select]
Dim strNum As String
Dim I As Long
Dim db As Database
Dim rs As Recordset
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("table1", DB_OPEN_DYNASET)
   
    For I = Me.txtBeginNumber To Me.txtEndNumber
    strNum = Right("00000" & I, 4)

     rs.AddNew
        rs![Runnum] = Me.txtModel
        rs![Runnum1] = Me.txtYear
        rs![Runnum2] = strNum
       
     rs.Update
     Next
rs.Close
db.Close
Set rs = Nothing: Set db = Nothing
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: nonc31

12 ต.ค. 63 , 14:35:02
ตอบกลับ #6
: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #6 เมื่อ: 12 ต.ค. 63 , 14:35:02 »
ขอบคุณมากครับ

 

28 ส.ค. 64 , 17:23:01
ตอบกลับ #7
: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #7 เมื่อ: 28 ส.ค. 64 , 17:23:01 »
ตามที่ได้ทำครับ ถ้าไม่ต้องการให้เพิ่มเข้าไปซ้ำกันครับ ไม่ทรายว่าจะต้องเพิ่มโค้ดตรงส่วนไหนครับ พร้อมแจ้งเตือนค่าซ้ำครับ

Private Sub Command9_Click()
Dim strNum As String
Dim I As Long
Dim db As Database
Dim rs As Recordset
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("table1", DB_OPEN_DYNASET)
   
    For I = Me.txtBeginNumber To Me.txtEndNumber
    strNum = Right("0000" & I, 4)

     rs.AddNew
        rs![Barcode] = [txtModel] & "" & [Text15] & "" & [strNum] & "R2"
       
     rs.Update
     Next
rs.Close
db.Close
Set rs = Nothing: Set db = Nothing
End Sub

« แก้ไขครั้งสุดท้าย: 29 ส.ค. 64 , 10:34:25 โดย ชวลิต เสนะสุทธิ »

 

30 ส.ค. 64 , 08:45:18
ตอบกลับ #8

PNR

: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #8 เมื่อ: 30 ส.ค. 64 , 08:45:18 »
รูปแบบการเช็คยังไงนะครับ

สมมุติมีการลงข้อมูลไป 20 ครั้งเช่น
1122880804K2608210001R2   ถึง 1122880804K2608210020R2

แบบที่ 1
กรณีเราไปกำหนดซ้ำให้แจ้งเตือนและไม่มีการเพิ่มข้อมูล ถ้าเจอว่ามีรหัสใดๆ ระหว่าง 0001 ถึง 0020 อยู่ แม้ว่าจะไม่มี 0019 อยู่ในตารางก็ห้ามเพิ่มข้อมูล

แบบที่ 2
  ถ้าเรากำหนดช่วง 1 - 20 เหมือนเดิม แต่เจอว่า ถ้าเจอว่ารหัสใดๆ ระหว่าง 0001 ถึง 0020 นั้นยังไม่มีการเพิ่มมาก่อน เช่น 0015  0019 ยังไม่มีการเพิ่มเข้ามา หรือเกิดจากการลบ record แล้วทำให้รหัสนี้ยังว่างอยู่ก็ให้ เพิ่ม 0015  0019 ลงไปด้วย เพื่อให้ครบ 0001 ถึง 0020

แบบที่ 3
  ถ้าเรากำหนดช่วง 1 - 20 เหมือนเดิม แต่เจอว่า ถ้าเจอว่ารหัสใดๆ ระหว่าง 0001 ถึง 0020 นั้นยังไม่มีการเพิ่มมาก่อน เช่น 0015  0019 ยังไม่มีการเพิ่มเข้ามา หรือเกิดจากการลบ record แล้วทำให้รหัสนี้ยังว่างอยู่ก็ให้ เพิ่ม 0015  0019 ลงไปด้วย ส่วนอันไหนซ้ำให้ เก็บบันทึกลงในตารางอีกตารางเพื่อแสดงรายการที่ซ้ำ  หรือ แสดง msgbox แสดง ลำดับทั้งหมดที่ซ้ำ ซึ่งอาจจะแจ้งว่า รหัส 1,5,7 ซ้ำ เป็นต้น เพื่อให้ครบ 0001 ถึง 0020

แบบที่ 1 , 2 หรือ 3 ครับ
« แก้ไขครั้งสุดท้าย: 30 ส.ค. 64 , 08:59:19 โดย PNR »
Time to stop for me  :dizzy:
 

30 ส.ค. 64 , 11:01:37
ตอบกลับ #9
: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #9 เมื่อ: 30 ส.ค. 64 , 11:01:37 »
เป็นการตรวจเช็คข้อมูลทั้งหมดครับ
1122880804K2608210001R2   ถึง 1122880804K2608210020R2

แบบที่ 1 กรณีเราไปกำหนดซ้ำให้แจ้งเตือนและไม่มีการเพิ่มข้อมูล ถ้าเจอว่ามีรหัสใดๆ ระหว่าง 1122880804K2608210001R2 ถึง 1122880804K2608210020R2 อยู่


 

30 ส.ค. 64 , 12:12:21
ตอบกลับ #10

PNR

: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #10 เมื่อ: 30 ส.ค. 64 , 12:12:21 »
ลองปรับโค๊ดเป็นแบบนี้แล้วทดสอบดูนะครับ

โค๊ด: [Select]
Dim strNum, strBarCode As String
Dim I, amount   As Long
Dim db As Database
Dim rs As Recordset
    Set db = CurrentDb()
    Set rs = db.OpenRecordset("table1", DB_OPEN_DYNASET)
    For I = Me.txtBeginNumber To Me.txtEndNumber
     strNum = Right("0000" & I, 4)
     strBarCode = Trim(Me.txtModel) & Trim(Me.Text15) & Trim(strNum) & "R2"
    If DCount("Barcode", "table1", "[Barcode] ='" & strBarCode & "'") > 0 Then
        MsgBox "มีการลงทะเบียน Barcode นี้แล้ว", vbInformation, "Status"
        Exit Sub
    End If
    If Nz(amount, 0) = 0 Then
    amount = DCount("Barcode", "table1", "[Barcode] ='" & strBarCode & "'")
    Else
    amount = amount + DCount("Barcode", "table1", "[Barcode] ='" & strBarCode & "'")
    End If
 Next I

  'เช็คเงื่อนไขการซ้ำให้เสร็จ แล้วตามด้วย ถ้าไม่มีข้อมูลซ้ำ amount = 0 ก็ทำการบันทึก
 If amount = 0 Then
    For I = Me.txtBeginNumber To Me.txtEndNumber
    strNum = Right("0000" & I, 4)

     rs.AddNew
        rs![Barcode] = Trim(Me.txtModel) & Trim(Me.Text15) & Trim(strNum) & "R2"
       
     rs.Update
     Next
     MsgBox "บันทึกสำเร็จ", vbInformation, "การบันทึก"
rs.Close
db.Close
Set rs = Nothing: Set db = Nothing
End If
« แก้ไขครั้งสุดท้าย: 30 ส.ค. 64 , 12:25:46 โดย PNR »
Time to stop for me  :dizzy:
 
โพสต์นี้ได้รับคำขอบคุณจาก: ชวลิต เสนะสุทธิ

30 ส.ค. 64 , 14:41:20
ตอบกลับ #11
: การเพิ่มจำนวน 1 -100 แล้วบันทึกลงตาราง
« ตอบกลับ #11 เมื่อ: 30 ส.ค. 64 , 14:41:20 »
ขอบคุณมากครับ ทำได้แล้วครับ
 :nice day: :nice day: :nice day: :in love: :in love: :in love:

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


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