ผมต้องการเปลี่ยนฟิลด์ text ให้เป็น Integer แต่ไม่ได้



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

31 ส.ค. 61 , 20:04:05
อ่าน 471 ครั้ง

nonc31

Private Sub Command0_Click()
DoCmd.SetWarnings False
Dim db As DAO.Database
Dim tbl As TableDef
Dim fld As DAO.Field
Dim strSQL As String
   
Set db = CurrentDb
    strSQL = "ALTER TABLE testFieldType ALTER COLUMN fieldA Integer;"
    db.Execute strSQL

        Set fld = Nothing
        Set tbl = Nothing
        Set db = Nothing

End Sub

ผลออกมามันเป็น Long Integer  ทำไมมันไม่เป็น  Integer  ช่วยด้วยครับ

 

01 ก.ย. 61 , 18:22:52
ตอบกลับ #1

สันติสุข

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

01 ก.ย. 61 , 20:04:58
ตอบกลับ #2

nonc31

ขอบคุณครับ ได้ซะที หาใน Google หาไม่เจอคำตอบนี้
ขออีก  ตัวครับ คือ
แบบ  Hyperlink  กำหนดยังครับ  รบกวนอีกทีนะครับ อ.สันติสุข
« แก้ไขครั้งสุดท้าย: 01 ก.ย. 61 , 22:24:47 โดย nonc31 »

 

01 ก.ย. 61 , 22:38:48
ตอบกลับ #3

สันติสุข

ปัญหาคือ Access SQL ไม่มี Hyperlink data type โดยเฉพาะ  แต่ DAO มี   ซึ่ง Hyperlink จริงๆก็คือ Memo data type ที่เพิ่มคุณสมบัติของ hyperlink เข้าไป   ดังนั้นแนะนำว่าให้ใช้ DAO เพิ่มฟิลด์ Hyperlink ลงในเทเบิลแล้วกีอปปี้ค่าจากฟิลด์เดิมมาใส่ เสร็จแล้ลบฟิลด์เดิมทิ้งแทน

โค้ดการสร้างฟิลด์ Hyperlink

    Dim DB As DAO.Database
    Dim TD As DAO.TableDef
    Dim FD As DAO.Field
   
    Set DB = CurrentDb
    Set TD = DB.TableDefs("T")
    Set FD = TD.CreateField("H", dbMemo)
   
    FD.Attributes = FD.Attributes Or dbHyperlinkField
    TD.Fields.Append FD

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

02 ก.ย. 61 , 00:16:57
ตอบกลับ #4

nonc31

กรณีนี้ คือ สร้างใหม่  =  Set FD = TD.CreateField("H", dbMemo) จะรันผ่าน
ถ้ากรณีฟิลด์นี้ มีอยู่แล้ว แต่ Type เป็น Text ถ้าเราจะเปลี่ยนมาเป็น Hyperlink
ผมดูใน Google เขาให้จัดการที่ property แต่ผมลองทำแล้วไม่ได้ครับ
ไม่รู้ติดตรงไหน  อ. มีวิธี มี code สำหรับการเปลี่ยน Type นี้มั๊ยครับ

ที่ผมทำไว้

« แก้ไขครั้งสุดท้าย: 02 ก.ย. 61 , 01:23:19 โดย nonc31 »

 

02 ก.ย. 61 , 01:34:02
ตอบกลับ #5

สันติสุข

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


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