การเก็บค่าInputตามDigitที่กำหนดไว้



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

14 พ.ค. 61 , 11:54:17
อ่าน 1302 ครั้ง

Earth

สวัสดีค่ะ
สอบถามวิธี การเก็บค่าInputตามDigitที่กำหนดไว้เพื่อนำไปทำQR Codeค่ะ
ตามรูปด้านล่างนี้

อธิบาย>>>

หน้าฟอร์มมีTextboxทั้งหมด 3กล่อง สำหรับInputค่า โดยมาจากตารางที่เก็บค่าคือ
ItemID >> Field size = 10
Name  >> Field size = 20
Lot >> Field size = 10
ต้องการให้inputค่ากี่Digit จะไปเก็บลงอีกTable เท่ากับDigitที่กำหนดไว้ค่ะ
เช่น ItemID >> Field size = 10 กรอกมาแค่ A0001 (5ตัว) ค่าที่ไปเก็บในอีกTableคือ A0001เคาะเคาะเคาะเคาะเคาะ ประมานนี้ค่ะ
« แก้ไขครั้งสุดท้าย: 14 พ.ค. 61 , 11:56:12 โดย Earth »

 

14 พ.ค. 61 , 16:19:20
ตอบกลับ #1

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #1 เมื่อ: 14 พ.ค. 61 , 16:19:20 »
โค้ดที่ทำการหาข้อความผลลัพธ์ เอาชื่อฟอร์มและเทเบิลที่ถูกต้องมาใส่แทนด้วยครับ

โค๊ด: [Select]
Dim L           As Integer
Dim Tx          As Variant
Dim TxCtrl      As Access.TextBox
Dim Str         As String   ' เก็บข้อความผลลัพธ์

For Each Tx In Split("ITEM ID,NAME,LOT", ",")  ' ลิสท์รายชื่อของเท็กซ์บ็อกซ์ คั่นแต่ละชื่อด้วยเครื่องหมาย "," และจะมีกี่ชื่อก็ได้
    Set TxCtrl = Forms("ชื่อฟอร์ม")(Tx)
    L = CurrentDb.TableDefs("ชื่อเทเบิล")(TxCtrl.ControlSource).Size
    Str = Str & Left$(TxCtrl & Space(255), L)
Next
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

14 พ.ค. 61 , 16:55:53
ตอบกลับ #2

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #2 เมื่อ: 14 พ.ค. 61 , 16:55:53 »
ตอนนี้ทำออกมาตามรูปค่ะ
ผลลัพธ์จะให้ไปเก็บในTable2

ปุ่มSave ใส่โค้ด

โค๊ด: [Select]
Private Sub Command11_Click()
Dim L           As Integer
Dim Tx          As Variant
Dim TxCtrl      As Access.TextBox
Dim Str         As String 

For Each Tx In Split("ID,name,lot", ",")

    Set TxCtrl = Forms("Table1")(Tx)
    L = CurrentDb.TableDefs("Table2")(TxCtrl.ControlSource).Size
    Str = Str & Left$(TxCtrl & Space(255), L)
Next
End Sub




Errorที่แสดงรูปล่าง หนูเข้าใจส่วนไหนผิดคะ
« แก้ไขครั้งสุดท้าย: 14 พ.ค. 61 , 17:24:39 โดย Earth »

 

14 พ.ค. 61 , 17:38:18
ตอบกลับ #3

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #3 เมื่อ: 14 พ.ค. 61 , 17:38:18 »
CurrentDb.TableDefs("Table2") ต้องเป็น CurrentDb.TableDefs("Table1") สิครับ

โค้ดที่ให้ไป ไม่มีอะไรเกี่ยวกับการบันทึกลงที่ไหน มีแต่ให้ผลลัพธ์เท่านั้น
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

15 พ.ค. 61 , 09:17:30
ตอบกลับ #4

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #4 เมื่อ: 15 พ.ค. 61 , 09:17:30 »
ขอบคุณมากค่ะ ตอนนี้ทำได้แล้วค่ะ เพิ่มโค้ดแอดข้อมูลลงตารางไป
โค๊ด: [Select]
Private Sub Command11_Click()
Dim L           As Integer
Dim Tx          As Variant
Dim TxCtrl      As Access.TextBox
Dim Str         As String

For Each Tx In Split("ID,name,lot", ",")
    Set TxCtrl = Forms("Table1")(Tx)
    L = CurrentDb.TableDefs("Table1")(TxCtrl.ControlSource).Size
    Str = Str & Left$(TxCtrl & Space(255), L)
Next

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("select * from Table2")

numOfRecords = rst.RecordCount
Set rst = CurrentDb.OpenRecordset("Table2")
    rst.AddNew
    rst!Result = Str

    rst.Update
End Sub


 

15 พ.ค. 61 , 10:45:38
ตอบกลับ #5

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #5 เมื่อ: 15 พ.ค. 61 , 10:45:38 »
ตัดบรรทัดเหล่านี้ออกไป

Set rst = CurrentDb.OpenRecordset("select * from Table2")
numOfRecords = rst.RecordCount

เพราะเหมือนไม่ได้เกี่ยวอะไรกับสิ่งที่ต้องการทำเลย ยกเว้นว่าจะมีการเอา numOfRecords ไปใช้ที่อื่น
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 
โพสต์นี้ได้รับคำขอบคุณจาก: Earth

28 พ.ค. 61 , 11:14:26
ตอบกลับ #6

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #6 เมื่อ: 28 พ.ค. 61 , 11:14:26 »
สอบถามตรงError ตรงนี้เกิดจากอะไรหรอคะ





โค๊ด: [Select]
Private Sub Command72_Click()
Dim l           As Integer
Dim Tx          As Variant
Dim TxCtrl      As Access.TextBox
Dim Str         As String

For Each Tx In Split("QRID, Summarystage, PartNo, LotNo, Qty,Space1, IssueDate, Space2, SerialNo, PartName, Remark1, Remark2, PONo, RoHS")
    Set TxCtrl = Forms("Table1")(Tx)
    l = CurrentDb.TableDefs("Table1")(TxCtrl.ControlSource).Size
    Str = Str & Left$(TxCtrl & Space(192), l)
Next

Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Table2")
    rst.AddNew
    rst!Result = Str

    rst.Update
End Sub

 

28 พ.ค. 61 , 14:02:45
ตอบกลับ #7

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #7 เมื่อ: 28 พ.ค. 61 , 14:02:45 »
ชื่อเท็กซ์บ็อกซ์บนฟอร์มน่าจะไม่ใช่ชื่อ QRID ครับ
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

28 พ.ค. 61 , 14:08:22
ตอบกลับ #8

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #8 เมื่อ: 28 พ.ค. 61 , 14:08:22 »
ใช้ชื่อQRIDค่ะ





**พอลองลบฟิลด์ที่เออเร่อออกจากตาราง และฟอร์ม มันก็มาเออเร่อฟิลด์ถัดมาเหมือนกันค่ะ

« แก้ไขครั้งสุดท้าย: 28 พ.ค. 61 , 14:10:54 โดย Earth »

 

28 พ.ค. 61 , 14:17:18
ตอบกลับ #9

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #9 เมื่อ: 28 พ.ค. 61 , 14:17:18 »
ลองทำการ compile โค้ดดูว่าจะมี error แสดงออกมาที่ไหนหรือไม่ครับ (ใน VBA Editor เมนู Debug > Compile ...)
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

28 พ.ค. 61 , 14:28:38
ตอบกลับ #10

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #10 เมื่อ: 28 พ.ค. 61 , 14:28:38 »
Compile ใหม่ไม่ได้ค่ะ
แต่ตอนError กด DebugดูเจอErrorแบบนี้ค่ะ




 

28 พ.ค. 61 , 14:34:01
ตอบกลับ #11

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #11 เมื่อ: 28 พ.ค. 61 , 14:34:01 »
compile เป็นตัวจางหมายถึงหลังการแก้ไขโค้ดครั้งหลังสุด ได้ผ่านการ compile มาแล้ว

แล้วก่อนหน้านี้มันเคยทำงานได้ใช่ไหมครับ
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

28 พ.ค. 61 , 14:38:06
ตอบกลับ #12

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #12 เมื่อ: 28 พ.ค. 61 , 14:38:06 »
ใช่ค่ะ ก่อนหน้านี้ทำงานได้

 

28 พ.ค. 61 , 14:50:31
ตอบกลับ #13

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #13 เมื่อ: 28 พ.ค. 61 , 14:50:31 »
ลองอัพโหลดโปรแกรมมาให้ดูได้ไหม
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 

28 พ.ค. 61 , 14:52:27
ตอบกลับ #14

Earth

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #14 เมื่อ: 28 พ.ค. 61 , 14:52:27 »
ไฟล์ตัวอย่างค่ะ

 

28 พ.ค. 61 , 15:16:24
ตอบกลับ #15

สันติสุข

: การเก็บค่าInputตามDigitที่กำหนดไว้
« ตอบกลับ #15 เมื่อ: 28 พ.ค. 61 , 15:16:24 »
ผมไม่ได้มองด้านท้ายของบรรทัด split( ... ) คุณลืมเติมส่วนหลังไป ต้องเป็น split(".....",",") และลิสท์ของชื่ออย่ามีช่องว่างก่อนหรือหลังชื่อฟิลด์ครับ ให้เป็น  QRID,Summarystage,PartNo ติดๆกันไปเลย
ช่วยพกถุงผ้า/ถุงพลาสติกไปซื้อของเพื่อลดการใช้พลาสติก ขยะ รักษาสิ่งแวดล้อม และไม่ให้ภาวะโลกร้อนวิกฤติเร็วขึ้นกว่านี้
ช่วยคลิกโฆษณาข้างล่างนี้ เพื่อสนับสนุนเวปบอร์ดด้วยครับ
:nice day:
 


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