รบกวนขอคำสั่งสร้างตารางใหม่ และเพิ่มฟิวส์แบบ Auton
กระทู้เก่าบอร์ด อ.Yeadram

 1,981   8
URL.หัวข้อ / URL
รบกวนขอคำสั่งสร้างตารางใหม่ และเพิ่มฟิวส์แบบ Auton

ความต้องการ

1.กำหนดให้ User ป้อนตัวเลขเริ่มต้นจำนวน 8 หลักในช่องที่กำหนด เช่น 12345678
2.เมื่อป้อนเสร็จให้คลิกที่ปุ่ม NewTable เพื่อให้สร้างตารางขึ้นใหม่ ชื่อ T_AddFill
3.โดยกำหนดให้เพิ่มฟิวส์ใหม่ในตาราง T_AddFill จำนวน 1ฟิวส์คือฟิวส์ NewData และเป็น AutoNumber
4.ต้องการให้ตัวเลขข้อมูลในฟิวส์ NewData ที่เพิ่มมาใหม่ เริ่มต้นด้วยเลขที่ User ป้อนไว้ใน
   ช่องที่กำหนดและเพิ่มไปเรื่อย ๆ จนครบทุกเรคคอร์ทที่มีข้อมูล
5.ที่ทำได้ในขณะนี้คือเพิ่มฟิวส์ใหม่ได้แล้ว แต่ยังไม่สามารถกำหนดให้เลขเริ่มต้นได้

ขอความอนุเคราะห์จากท่านอาจารย์และเพื่อนสมาชิกช่วยเขียนโค๊ดเพิ่มเติมให้หน่อยครับ

และได้ส่งไฟล์ตัวอย่างไปไว้ที่ อีเมล์ด้านล่างนี้แล้วครับ

www.gmail.com
userName : accboard
password : accgmail


8 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R01654
CurrentDb.Execute "ALTER TABLE ชื่อเทเบิล ALTER Column ชื่อฟิลด์ counter (" & cstr(12345678) & ",1)"

คำสั่งนี้สั่งให้เริ่ม autonumber field เลขต่อไปเป็น 12345678 และเพิ่มทีละ 1
2 @R01655
เฝ้าพยายามเข้าเว็ปแต่ก็เข้าไม่ได้สักที

ขอบพระคุณมากครับอาจารย์

เดี๋ยวต้องทดสอบทันที

แล้วจะกลับมารายงาน
3 @R01656
ขออภัยครับ เรื่องเข้าเว็บ
ฐานข้อมูลของบอร์ดนี้ใช้ MS SQL 2005 ตอนกลางวันมันฟ้องว่า Transaction log เต็ม พยายามเคลียร์แล้วแต่มันไม่ออกครับ (สคริปต์ที่ทางโฮสต์เตรียมไว้ให้ไม่ทำงาน) เลยแจ้งให้เจ้าของโฮสต์จัดการให้ กว่าจะเสร็จก็ สามโมงเย็นครับ
จึงแจ้งให้ทราบโดยทั่วกันครับ
4 @R01658
เหมือนเดิมครับเข้ายาก

แต่ก็ขอขอบพระคุณท่านอาจารย์ทั้งสองอย่างมาก

สรุปชุดคำสั่งที่อาจารย์สันติสุขให้ไว้ยังใช้ไม่ได้ครับ

แต่ถ้าเปลี่ยนเป็น

CurrentDb.Execute "ALTER TABLE ชื่อเทเบิล " & "ADD Column ชื่อฟิวด์ counter (" & CStr(12345678) & ",1)"

ใช้ได้แต่ยังเริ่มที่ 1 อยู่ครับ
5 @R01659
ถ้าเทเบิลนั้นมีเรคอร์ดอื่นๆอยู่แล้ว การเพิ่มฟิลด์ AutoNumber มันก็ยังเริ่มที่ 1 อยู่   ก็ให้เพิ่มฟิลด์ AutoNumber เป็นฟิลด์แรกในเทเบิลก่อน แล้วค่อยเพิ่มฟิลด์อื่นจะได้ไหม
6 @R01661
ครับผม จะทดสอบตามอาจารย์แนะนำดูครับ
7 @R01665
ผมทำต่อจากฟอร์มเดิมที่มีมาให้
โดยการเพิ่ม ปุ่มคำสั่ง สองปุ่ม
cmdNewTable, cmdChangeStart

นี่โค้ดครับ
Private Sub cmdChangeStart_Click()
    If Not IsNumeric(Text3) Then Exit Sub
    DoCmd.SetWarnings False
    DoCmd.RunSQL "Delete From T_Cust"
    DoCmd.RunSQL "Select CustID, CustName, Address INTO T_Cust FROM T_AddFill"
    cmdNewTable_Click
End Sub

Private Sub cmdNewTable_Click()
Dim SqlCreate As String
Dim SqlAppend As String
Dim tbN As String

tbN = "T_AddFill"

SqlCreate = "Create TAble " & tbN & _
                        "(NewData AUTOINCREMENT(" & CLng(Text3) & ",1)," & _
                        "CustID long," & _
                        "CustName char(50)," & _
                        "Address char(50)," & _
                        "CONSTRAINT " & tbN & "_pk PRIMARY KEY (NewData));"
                        
SqlAppend = "INSERT INTO " & tbN & " SELECT T_Cust.* FROM T_Cust;"

On Error Resume Next
DoCmd.DeleteObject acTable, tbN

DoCmd.SetWarnings False
DoCmd.RunSQL SqlCreate
DoCmd.RunSQL SqlAppend
MsgBox "Done!"
Application.RefreshDatabaseWindow
End Sub
8 @R01689
ขอบพระคุณครับ

ใช้งานได้ตามความต้องการแล้ว

และใช้งานได้ทั้งวิธีของอาจารย์สันติ และของอาจารย์yeadram

ขอบพระคุณอีกครั้งครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3034s