ต้องการเก็บข้อมูลที่เป็นภาษาไทยจำนวนมาก(เกิน 255)
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 390   20
URL.หัวข้อ / URL
ต้องการเก็บข้อมูลที่เป็นภาษาไทยจำนวนมาก(เกิน 255)

ต้องการเก็บข้อมูลที่เป็นภาษาไทยจำนวนมากกว่า 255 ตัวอักษร มีวิธีใดเก็บลงใน Access ได้บ้างค่ะ (จำเป็นต้องเก็บลงใน Database ค่ะ) ลองเปลี่ยน Data Type เป็น Memo ก็ไม่ได้ค่ะ รบกวนผู้รู้ด้วยค่ะ 
ขอบคุณมากค่ะ 

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

1 @R00546
ไม่ทราบว่าใช้เวอร์ชันไหนครับ ถ้าเป็น Access 97 บางคนก็อาจเจอปัญหาบ้าง ผมก็เคยเจอครั้งหนึ่ง คือพอพิมพ์ไปถึง 250-255 ตัวอักษรมัจะแฮ้งค์ไปเลย ผมโพสต์ตอบไว้เมื่อวานที่ http://www.thai-access.com/suphap.php?topic_id=193 ไม่ทราบว่าเป็นคนเดียวกันหรือเปล่า ลองเล่าปัญหา และความต้องการให้ฟังหน่อยซิครับ และไม่ทราบว่าได้ทำตามคำแนะนำหรือไม่ ครับ ทำแล้วมีปัญหาอะไรเพิ่มเติม จะได้แนะนำเพิ่มเติมได้ครับ
3 @R00551
นุ่นใช้ Access 97 ค่ะ(จำเป็นต้องเป็น 97 ด้วยค่ะ) ปัญหาของนุ่นคือ นุ่นต้องใส่ข้อมูลที่เป็นภาษาไทยจำนวนมากลงใน Field ชื่อ A โดยมี Type เป็น Memo แต่นุ่นเจอปัญหาคือ จะมี Error แล้วให้ปิดโปรแกรมเลย และนุ่นลอง Key เป็นภาษาอังกฤษ ก็สามารถใส่จำนวนตัวอักษรได้เยอะมากเลย ก็เลยสงสัยค่ะ ว่าเป็นเพราะอะไร และมีวิธีไหนทำได้บ้าง เพราะนุ่นจำเป็นต้อง Key ข้อมูลที่เป็นภาษาไทยเข้าไป หากจะให้พิมพ์ ใน note pad แล้วนำมา paste ก็ไม่สะดวกค่ะ เพราะนุ่นมีข้อมูลเยอะมาก ไม่สะดวกต่อการใช้งานค่ะ และนุ่นลองลบ Text box แล้วลาก Field มาวางใหม่ก็ไม่ได้ค่ะ รบกวนอาจารย์สุภาพ ด้วยค่ะ
4 @R00552
ผมได้โค้ดนี้มาจาก pantip เมื่อ 2-3 ปีที่แล้ว ขออภัยเจ้าของโค้ดนะครับ ผมจำชื่อไม่ได้ว่าใครเป็นคนโพสต์ไว้ เป็นการเรียกเปิด NodePad เพื่อใช้พิมพ์หรือแก้ไขข้อความ โดยไม่ต้อง copy แล้ว paste ให้ดูโค้ดใน Module และ ผมเรียกโค้ดโดยการ double click ที่ Text Box เป้าหมาย ถ้ามี Memo Field หลายที่ ก็ให้ทำเมื่อกันครับ ตัวอย่างอยู่ที่ http://agserver.kku.ac.th/basiceng/memofield97.zip ครับ
5 @R00555
ขอบคุณอาจารย์สุภาพและคุณ Access hotline มากเลยค่ะ
6 @R00557
ลองทำแล้วค่ะ แต่มี Error ที่ CallNotePad ค่ะ แต่ลอง run ตัวอย่างที่อาจารย์ส่งมาให้แล้ว ทำได้ค่ะ แต่ของนุ่นติด Error ค่ะ ทั้งๆที่นุ่นกำหนด Field เป็น Memo แล้วน่ะค่ะ ลอง copy form ของอาจารย์มาใส่และเปลี่ยนให้มาเป็น table ของนุ่นแล้ว ก็ยังมี Error ค่ะ แต่ถ้าสร้างใหม่เลยจะทำใด้ แต่ตอนเก็บจะแฮงค์ค่ะ รบกวนอาจารย์แนะนำนุ่นด้วยค่ะ
7 @R00558
Error ว่ายังไงครับ
8 @R00559
Error ในส่วน Private Sub A_DblClick(Cancel As Integer) บรรทัดนี้เป็นสีเหลืองค่ะ callnotepad Me.ActiveControl บรรทัดนี้มีแถบสี้น้ำเงินตรง callnotepad และไม่เป็นตัวใหญ่เหมือนของอาจารย์ค่ะ (ของอาจารย์ CallNotePad Me.ActiveControl ค่ะ)
9 @R00560
ลองเปลี่ยนเป็น callnotepad Me.A ดูครับ อย่าลืมเอาโค้ดในส่วนของ Module ชื่อ modCallNotePad ซึ่งมีโค้ดข้างล่างนี้ไปด้วยนะครับ Private Const STARTF_USESHOWWINDOW& = &H1 Private Const NORMAL_PRIORITY_CLASS = &H20& Private Const INFINITE = -1& Private Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Private Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessID As Long dwThreadID As Long End Type Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _ hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function CreateProcessA Lib "kernel32" (ByVal _ lpApplicationName As Long, ByVal lpCommandLine As String, ByVal _ lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _ ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _ ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As Long, _ lpStartupInfo As STARTUPINFO, lpProcessInformation As _ PROCESS_INFORMATION) As Long Private Declare Function CloseHandle Lib "kernel32" (ByVal _ hObject As Long) As Long Public Sub ShellWait(Pathname As String, Optional WindowStyle As Long) Dim proc As PROCESS_INFORMATION Dim start As STARTUPINFO Dim ret As Long ' Initialize the STARTUPINFO structure: With start .cb = Len(start) If Not IsMissing(WindowStyle) Then .dwFlags = STARTF_USESHOWWINDOW .wShowWindow = WindowStyle End If End With ' Start the shelled application: ret& = CreateProcessA(0&, Pathname, 0&, 0&, 1&, _ NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc) ' Wait for the shelled application to finish: ret& = WaitForSingleObject(proc.hProcess, INFINITE) ret& = CloseHandle(proc.hProcess) End Sub Function CallNotePad(ctl As Control) 'ÇÔ¸Õãªé ãËéãÊè =CallNotePad(<ª×èÍà·ç¡«ìºÍ¡«ì>) äÇéã¹ Event OnDoubleClick ¢Í§ Text box à»éÒËÁÒ Dim strText As String Dim strString As String If Dir("c:\txtTemp.txt") <> "" Then Kill "c:\txtTemp.txt" Open "c:\txtTemp.txt" For Output Shared As #1 If Not IsNull(ctl.Value) Then strText = ctl.Value Print #1, strText End If Close #1 ShellWait "NOTEPAD.EXE c:\txtTemp.txt", vbMaximizedFocus Open "c:\txtTemp.txt" For Input As #1 strText = "" Do While Not EOF(1) Input #1, strString strText = strText & strString Loop Close #1 ctl = "" & strText End Function
10 @R00561
นุ่นได้ copy code ใน module ของอาจารย์มาแล้วค่ะ สามารถเปิด notepad ได้ค่ะ แต่ว่าตอน save หรือ ปิด notepad โปรแกรมนุ่นจะแฮงค์เลยค่ะ อาจารย์ เป็นเพราะสาเหตุใดคะ แต่นุ่นลองทำในตัวอย่างของอาจารย์ ไม่แฮงค์ค่ะรบกวนอาจารย์อีกครั้งด้วยค่ะ
11 @R00562
ให้ลองลบ Text Box ของ Memo เดิมในฟอรม์ออก แล้วลากฟีลด์ใส่เข้าไปใหม่ดูครับ แล้ว Save จากนั้นให้ลอง Compact ด้วย ลองดูครับ
12 @R00563
ลองลบ Text Box ที่เป็น Memo ออกแล้ว ลาก Field มาใส่ใหม่แล้ว Save และ Compact แล้ว เปิดได้ค่ะ แต่เวลา Save ข้อมูล แฮงค์ค่ะ อาจารย์
13 @R00564
ลองแบบนี้นะ 1. สร้าง db เปล่าขึ้นมา 1 อัน แล้วโอน objects ทุกอย่างจาก db ตัวที่มีปัญหา โดยไปที่เมนู File>Get External Data..>Import>มองหาไฟล์ตัวเดิม แล้วคลิกเลือก> เมื่อตารางเก่าเปิดแล้ว ให้เลือก Select All โดยเริ่มตั้งแต่ Tables, Queries, Forms, ..., Module>OK. 2. Compact อีกที่ ถ้ายังไม่หาย ให้ zip ไฟล์ตัวที่มีปัญหา แล้วส่งมาให้ผมที่ kaeg_chaiya@hotmail.com ครับ
14 @R00629
เรียนอาจารย์สุภาพ นุ่นส่งไฟล์ไปแล้วนะคะ ไม่ทราบว่าได้รับหรือไม่ค่ะ
15 @R00630
ได้รับแล้วครับ ขอคำอธิบายเพิ่มเติมด้วยครับว่าเข้าไปตรงไหน แล้วเกิดปัญหาอย่างไร ให้ละเอียดหน่อยนะครับ
16 @R00668
ส่วนที่เป็น Field สภาพปัจจุบัน มี Type เป็น Memo และอาจารย์ให้ Modules สำหรับเปิด Notepad ค่ะ เปิดได้แต่ไม่สามารถเก็บข้อมูลที่เกิน 255 ได้ค่ะ เวลา Save เครื่องจะแฮงค์ค่ะ
17 @R00752
เรียนอาจารย์สุภาพค่ะ นุ่นขอข้อสรุปในการเก็บข้อมูลภาษาไทย Type Memo เกิน 255 ตัวอักษรด้วยค่ะ เนื่องจากนุ่นจำเป็นต้องเก็บข้อมูลมากจริงๆ หากมีวิธีอื่นที่ทำได้ รบกวนอาจารย์สุภาพ ช่วยแนะนำด้วยค่ะ ขอบคุณมากค่ะ นุ่น
18 @R00754
ลองใช้ Access2000 ดูครับ ผมใช้แล้ว ไม่พบปัญหา ครับ ข้อมูลผมอยู่ใน MS Word ผม Copy จาก MS Word ไป Note Pad (.TXT) แล้ว Copy จาก NotePad ไปวางใน Field Meno ก็ใช้ได้แล้วครับ ลองดูนะครับ Suchat ชลบุรี
19 @R00755
ผมได้โค้ดนี้มาจาก pantip เมื่อ 2-3 ปีที่แล้ว ขออภัยเจ้าของโค้ดนะครับ ผมจำชื่อไม่ได้ว่าใครเป็นคนโพสต์ไว้ เป็นการเรียกเปิด NodePad เพื่อใช้พิมพ์หรือแก้ไขข้อความ โดยไม่ต้อง copy แล้ว paste ให้ดูโค้ดใน Module และ ผมเรียกโค้ดโดยการ double click ที่ Text Box เป้าหมาย ถ้ามี Memo Field หลายที่ ก็ให้ทำเมื่อกันครับ ตัวอย่างอยู่ที่ http://agserver.kku.ac.th/basiceng/memofield97.zip ครับ ผมแสดงข้อความข้างบนนี้อีกทีเพราะ ผมทำตามแล้วก็ใช้ได้ไม่มีปัญหานะครับ ผมเองก็ใช้ Access97 เหมือนคุณนุ่นครับ ผมว่าอาจจะเป็นเพราะ การลง Window หรือ MS Office แบบไม่สมบูรณ์ ก็เป็นได้ครับ
20 @R00756
ในตัวอย่างที่ส่งมาให้ผมดู ผมลองพิมพ์ดูก็ได้ ไม่มีปัญหาอะไร และก็ไม่เห็นส่วนโค้ดที่ผมแนะนำด้วย ไม่ทราบได้เอาโค้ดมาใส่หรือยัง หรือเป็นโปรแกรมคนละตัวกัน อยากให้อธิบายว่า เข้าฟอร์มไหน แล้วเรียกใช้ฟีลด์ Memo ตัวไหนที่สร้างปัญหาครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0453s