แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - mbbrid

หน้า: [1]
1
ใส่ function procedure ที่ตรวจข้อความ T (ในที่นี้หมายถึง รหัสผ่าน) ข้างล่างนี้ ลงใน Module ที่มีอยู่แล้ว หรือสร้างใหม่ก็ได้  ถ้าตรวจสอบผ่าน ก็แปลว่า รหัสผ่านนั้นครบเงื่อนไข 4 ข้อดังนี้ 1.ความยาว 8 ตัวอักษร 2.มีตัวเลข 0-9 3.มีตัวอักษร a-z, A-Z 4.มีตัวอักษรพิเศษ
โค๊ด: [Select]
Public Function IsValidPSW(T As String) As Boolean

Dim II As Integer
Dim IsNum As Boolean, IsChr As Boolean, IsSpc As Boolean

If Len(์T) <> 8 Then IsValidPSW = False: Exit Function

IsNum = False: IsChr = False: IsSpc = False
For II = 1 To 8
    Select Case Asc(Mid(T, II, 1))
        Case 48 To 57: IsNum = True
        Case 65 To 90, 97 To 122: IsChr = True
        Case 33 To 47, 58 To 64, 91 To 96, 123 To 126: IsSpc = True
        Case Else: IsValidPSW = False: Exit Function
    End Select
Next II
IsValidPSW = IsNum And IsChr And IsSpc
End Function

เวลาจะตรวจสอบก็เขียนว่า
If Not IsValidPSW(nz(Me.ชื่อเท็กซ์บ็อกซ์รหัสผ่าน)) then
   Cancel = True
   MsgBox "รหัสผ่านต้องเป็นตัวอักษรภาษาอังกฤษผสมตัวเลขและอักขระพิเศษให้ได้ความยาว 8 ตัวอักษร"
End If
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

2
Object, Control, Textbox ต่างก็เป็น Data Type ใน Access   แต่ตัวแปรของ Object จะกว้างๆ เมื่อสร้างตัวแปรขึ้นมาด้วย Dim ตัวมันเองไม่มีคุณสมบัติอะไรอยู่เลย จนกว่ามันจะถูกกำหนดว่ามันคืออะไร เช่น จากรูป เมื่อกำหนดโดยคำสั่ง Set O = GetObject("C:\Data\DrugList.xls") กลไกของ Access ก็จะกำหนดให้ obj เป็น workbook ของ DrugList.xls ซึ่งหลังจากนี้เราก็สามารถเขียนโค้ดเพื่อเรียกใช้ property และ method ต่างๆที่ตัวโปรแกรม Excel มีให้กับ workbook ได้



แต่อย่างไรก็ตาม ถ้าเรากำลังพิมพ์คำสั่งในบรรทัดต่อๆไปว่า O. เราก็จะยังไม่เห็นว่ามันมี property หรือ method อะไรโผล่ขึ้นมาทั้งๆที่ได้กำหนดไปแล้ว ไม่เหมือนตัวแปร C ซึ่งเป็นตัวแปรประเภท Control ที่จะมี listbox แสดง property และ method ออกมาให้เห็น นั่นเพราะว่า Access จะรู้ว่า O คืออะไรก็ต่อเมื่อโค้ดได้ทำงานแล้ว แต่ขณะที่เรากำลังเขียนโค้ดอยู่ใน Editor นั้น โค้ดยังไม่ได้ทำงาน (ยกเว้นว่าเรากำลังอยู่ในโหมด Debug) ดังนั้น Access จะไม่มีทางรู้เลยว่ามันคืออะไร ก็เลยไม่สามารถแสดง listbox นั้นออกมาให้เราเห็น

Object ต่างกับ Control และ Textbox ตรงที่สองตัวหลังนั้นเป็น object ที่อยู่ในตัว Access เองอยู่แล้ว มันย่อมรู้ดีอยู่แล้วว่ามี property และ method อะไรอยู่บ้างโดยไม่ต้องไปผูกว่า Control หรือ Textbox นี้คือตัว "อะไร" บนฟอร์ม/รายงานตัวนั้น (แต่การที่รู้อยู่แล้ว ไม่ได้หมายความว่าเราจะเรียกใช้ property และ method ก่อนการผูกกับ "อะไร", ด้วยคำสั่ง Set, โดยไม่เกิด error message เพราะมันขึ้นกับว่า property และ method นั้นๆเกี่ยวข้องกับ "อะไร" ที่ Access ต้องรู้ว่ามีอยู่จริงๆก่อนหรือไม่ เช่น ชื่อของ Control หรือ Textbox เป็นต้น)

สรุปว่าเราจะใช้ Object ก็ต่อเมื่อเราต้องการผูก Object นั้นกับ "อะไร" นอกตัว Access เพื่อใช้งาน "อะไร" ตัวนั้น

ส่วน Control ก็คือองค์ประกอบต่างๆบนฟอร์ม/รายงาน เช่น Textbox, Line, Section เป็นต้น มันมี property และ method รวมๆที่องค์ประกอบต่างๆมีเหมือนๆกัน ซึ่งก็มีไม่เท่าไหร่

สุดท้าย Textbox ก็เป็น Object ที่เฉพาะเจาะจงสำหรับเท็กซ์บ็อกซ์ไปเลย มี property และ method เฉพาะ Textbox เท่านั้นครับ เราไม่ค่อยกำหนดตัวแปรของ Textbox เท่าไหร่ เพราะมักอ้างถึง Textbox นั้นได้โดยตรงอยู่แล้ว
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

3
การกำหนด Property ให้แก่คอนโทรลในบรรทัดของ Continuous Form จะมีผลกับคอนโทรลนั้นในทุกบรรทัดครับ แต่สำหรับการกำหนดคุณสมบัติในการแสดงบางอย่างเช่น สีพื้น, สีตัวอักษร. อักษรตัวหนา/ขีดเส้นใต้/ตัวเอียง, Enabled/Disabled สามารถใช้ Conditional Formatting ในการกำหนดเฉพาะคอนโทรลในบรรทัดนั้นๆตามเงื่อนไขให้เป็นไปอย่างอัตโนมัติได้ ดังนั้นอย่างแรกที่ต้องทำก็คือต้องหาก่อนว่าเงื่อนไขอะไรที่จะให้ Disabled   จากที่กำหนดมา ถ้าสมมุติว่าเมื่อเงื่อนไข cb_Status = "¨จบงาน" ก็ให้ Disabled ได้ ก็ให้ป้อน Conditional Formatting สำหรับคอนโทรลอื่นที่ต้องการเป็น (เช่น cb_DocEnvelope, txt_OrderID) [cb_Status] = "¨จบงาน" แล้วเลือกลักษณะคอนโทรลเป็น Disabled ครับ 



ส่วนโค้ดที่ให้มา ก็มีแค่นี้เท่านั้น

Private Sub Command27_Click()
    Me.txt_DateClose = Now()
    Me.cb_Status = "¨จบงาน"
End Sub

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

4
ยินดีครับ ที่จริงมันสามารถ Convert File รูป เป็นรูปแบบที่ต้องการได้ด้วยนะครับ เช่น ต้นฉบับเป็น .BMP จะแปลงเป็น .JPEG หรือ อื่นๆได้ โดยใช้ WIA
แต่จากความต้องการเจ้าของกระทู้ ไม่น่าจะใช้ในส่วนนี้ครับ  :cool: :cool:
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

5
ดันขึ้นบนหน่อย ขอความช่วยเหลืแอแสดงความคิดเห็นกันด้วยนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

6
ยินดีครับ thai access บอร์ดแห่งการแชร์ประสบการณ์ การแบ่งปันและการเรียนรู้ครับ ผมเริ่มจากไม่เป็นเลยได้เรียนรู้จากบอร์ดนี้แหละครับ จนพอที่จะแนะนำได้บ้าง :meaw:
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

7
สร้างไฟล์ AutoNumber ขึ้นมา เพิ่ม 1 ฟิลล์ครับ ตั้งชื่อว่า NO
แล้วที่คิวรี่ใส่โค้ดนี้ไป
โค๊ด: [Select]
SELECT Table1.Code, Table1.Des, Table1.Run, Table1.Run+(select nz(sum(T2.Run),0) from Table1 as T2 where T2.Code = Table1.Code and T2.Des = Table1.Des and  T2.No < Table1.No) AS ผลรวม
FROM Table1;
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

8
ห้อง MS Access / : สร้าง กดปุ่ม button
« เมื่อ: 10 มี.ค. 62 , 16:33:48 »
ต้องการสร้าง กดปุ่ม button  มีปุ่มบันทึกข้อมูล  กับปุ่มจบการทำงาน
เขียนโค๊ตอย่างไรครับให้ปุ่มกดจบการทำงาน ไม่ทำงาน  จนกว่าจะมีการกดปุ่มบันทึกข้อมูลถึงจะกลับมาทำงานได้ครับ

มีหลายวิธีครับ ตัวอย่างเช่น
การกำหนดตัวแปร ไว้เพื่อใช้ตรวจสอบสถานะการทำงานของปุ้มบันทึกเช่น
โค๊ด: [Select]
Private Sub BtnSave_Click()
Dim SaveEvent  As String
Dim DB As Database
Dim RS As Recordset
   If MsgBox("ต้องการบันทึกข้อมูลข้อมูล ?", vbOKCancel + vbQuestion, "สอบถาม") = vbOK Then
        Set DB = CurrentDb()
        Set RS = DB.OpenRecordset("Table1", DB_OPEN_DYNASET)
    RS.AddNew
    RS![Field1] = Me.Text1
    RS![Field2] = Me.Text2
    RS![Field3] = Me.Text3
    RS.Update
    RS.Close
    DB.Close
    Set RS = Nothing
    Set DB = Nothing
    Call ResetForm
    SaveEvent = "1"  'ถ้าเราบันทึกก็ให้ตัวแปร = 1
    Else
    SaveEvent = "0" 'ถ้าเราไม่บันทึกให้ตัวแปร = 0
    End If
    If SaveEvent = "1" Then
    Me.BtnClose.Enabled = True
    ElseIf SaveEvent = "0" Then
    Me.BtnClose.Enabled = False
    End If   
End Sub

คำสั่งในการเปิดปิดการใช้งานคือ ชื่อตัวControl.Enabled = False หรือ True
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

9
ห้อง MS Access / : gpa random หาคะแนน
« เมื่อ: 25 ก.พ. 62 , 23:05:38 »
ลองใช้ Rnd Function ดูครับ

โค๊ด: [Select]
Function RandomGPA(gr As Double)
    RandomGPA = Switch(gr = 0, Int((50 - 0 + 1) * Rnd + 0), _
        gr = 1, Int((55 - 50 + 1) * Rnd + 50), _
        gr = 1.5, Int((60 - 55 + 1) * Rnd + 55), _
        gr = 2, Int((65 - 60 + 1) * Rnd + 60), _
        gr = 2.5, Int((70 - 65 + 1) * Rnd + 65), _
        gr = 3, Int((75 - 70 + 1) * Rnd + 70), _
        gr = 3.5, Int((80 - 75 + 1) * Rnd + 75), _
        gr = 4, Int((100 - 80 + 1) * Rnd + 80), True, "")
End Function

ส่วนการใช้งาน ลองดูจากตัวอย่างคับ ทั้งบนฟอร์ม และ ในคิวรี่
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

10
ปัญหาที่เคยเจอมาคือ ชื่อ Module เป็นภาษาไทยครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

11
ห้อง MS Access / : สร้างสายงาน
« เมื่อ: 14 ส.ค. 61 , 18:54:24 »
หลักการสร้างตารางข้อมูลคือ ต้องให้มีเซลล์ว่างๆ น้อยที่สุดหรือไม่มีเลยได้ยิ่งดี

แนะนำว่าควรแยกเป็นตารางย่อยๆ ดีกว่าครับโดย
1. ตารางเก็บชื่อคนที่เป็นตารางหลัก โดยเก็บข้อมูล กิติศักดิ์ จันทรา
2. ตารางเก็บข้อมูลคนอื่นๆ ที่สัมพันธ์กับตารางข้อมูลของชื่อหลัก (กิติศักดิ์ จันทรา)

เนื่องไม่รู้ว่าเป็นข้อมูลอะไร ทำไมต้องเป็นอย่างนี้ ก็เลยแนะนำได้เท่านี้ครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

12
เนื่องด้วยเว็บบอร์ดแห่งนี้เป็นเว็บเชิงถาม,ตอบ,แบ่งปันความรู้เกี่ยวกับโปรแกรม MS.Access หรืออื่นๆ
ท่าน OddyWriter แนะนำให้ใช้"พลังขอบคุณ" ที่ได้จากเรากด ❤ ขอบคุณโพสต์นี้ กันนั้นล่ะครับในการเปลี่ยนระดับสมาชิก (ขอบคุณ dougiefresh@[direct=http://simplemachines.org]simplemachines.org[/direct] ที่ช่วยทำ Mod ให้ครับ)

โดยจะมีระดับตามตารางนี้
Name
Logo
พลังขอบคุณที่ต้องการ
สมาชิกไท.Access   ---
0
ดักแด้ 
5
ครูผู้ช่วยไท.Access 
50
อาจารย์ไท.Access 
200
ผู้ชำนาญการไท.Access 
400
ผู้เชี่ยวชาญไท.Access   
800
เซียนไท.Access 
1500

> โพสต์ถาม,ตอบ,โพสต์ขอบคุณ,ฯลฯ มาบ้างแล้ว(1)ถึงจะมี ❤ ขอบคุณโพสต์นี้ ให้กด
> ตั้งกระทู้ดี,โพสต์ถามดี,โพสต์ตอบใช้ได้/ไม่ได้ หรืออะไรก็แล้วแต่ สิทธิในการกดขอบคุณอยู่ที่ตัวคุณ ไม่ซีเรียสครับ
> พลังขอบคุณ เป็นค่าตัวเลขค่าหนึ่งเท่านั้น เว็บบอร์ดแห่งนี้ไม่รับผิดชอบใดๆทั้งสิ้น
> แม้จะเป็นเพียงค่าตัวเลขค่าหนึ่งแต่การกด ❤ ขอบคุณโพสต์นี้ หรือโพสต์ขอบคุณก็ดี ่กลับเป็นเหมือนพลัง,กำลังใจให้บุคคลผู้นั้น/ให้โพสต์ๆนั้น อย่าลืมเข้ามากดกันนะครับ :love:
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

13
ห้อง MS Access / เปลี่ยนแป้นภาษาด้วย VB
« เมื่อ: 25 มี.ค. 61 , 23:01:12 »
เมื่อกดเครื่องหมาย * ใน textbox1 แล้วให้แป้นพิมพ์เปลี่ยนเป็นภาษาอังกฤษ เราต้องเขียนโค๊ต อย่างไรครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

14
เรื่องวุ่นๆ ของออบเจ็กต์และคอนโทรล

สมัยเรียน OOP (Object-Oriented Programming) รู้สึกตัวเองได้เปรียบเพื่อนร่วมชั้นตรงที่ใช้ Access มาก่อนชาวบ้าน เพราะถูกสอนจาก Microsoft ว่า Access น่ะ เป็นโปรแกรมที่ใช้ระบบ OOP
แต่พอเรียน OOP จริงๆ ไม่รู้ทำไมความเชื่อต่างๆ มันค่อย “แฟบ” ลงเรื่อยๆ เพราะยิ่งรู้มาก ก็ยิ่งรู้สึกว่า Access นั้นไม่ใช่ OOP แบบเต็มร้อย แต่ก็ถือว่า “เกือบ” ล่ะ อีกนิดเดียวก็ OOP แล้ว
อธิบายมากไปเดี๋ยวเผลอหยิบเรื่องเครียดมาเล่า ใครอยากรู้ว่า OOP เป็นอย่างไรไปถามอากู๋เอาเอง แต่เลือกเว็บที่น่าเชื่อถือหน่อยนะครับ พวกสถานศึกษาอะไรงี้
เรามาว่าเรื่อง Access กันดีกว่า
ถ้าใครศึกษา Access อย่างจริงจังย่อมหนีไม่พ้นที่จะเจอคำว่า “ออบเจ็กต์” และ “คอนโทรล” อย่างแน่นอน เพราะ Access นั้นถูกออกแบบมาด้วยเทคโนโลยีที่ล้ำกว่า Excel
เรียกว่า Excel นั้นว่าฉลาดแล้วก็จริง เพราะใช้เทคโนโลยีแบบ Neuro ในการออกแบบในสมัยแรกๆ พอมาสมัยหลังๆ ก็เอา XML มาใส่ จนกลายเป็น Excel ฉลาดๆ แบบปัจจุบัน แต่ Access มีมากกว่านั้นครับ คือใส่พวก Database Engine ระดับ OOP เข้าไป ถึงจะใส่ได้ไม่หมดก็เถอะ (แต่ไหงไม่เก่งภาษาไทยก็ไม่รู้)

คราวนี้พอแตะ OOP เข้าไป ก็หลีกไม่ได้ที่เวลาเขียนโค้ด หรือสั่งงานจะมีเรื่องของออบเจ็กต์เข้าไปด้วย
วิธีการมองคือทุกสิ่งอย่างที่เราเห็นได้ด้วยตาในหน้าจอ แบบนี้คือออบเจ็กต์ไม่ว่าจะเป็นตาราง ฟอร์ม รีพอร์ต ฯลฯ ล้วนเป็นออบเจ็กต์
แม้กระทั่ง Text Box, Combo Box อะไรพวกนี้ก็เป็นออบเจ็กต์ครับ
แต่ทีนี้ออบเจ็กต์พวก Text Box, Combo Box นี่ต้องวางอยู่บนออบเจ็กต์พวก ฟอร์มหรือรีพอร์ต
การจะเรียกว่าออบเจ็กต์อาจสร้างความสับสนให้ผู้ใช้งานได้ เขาก็เลยเรียก ออบเจ็กต์พวกที่ต้องวางอยู่บนออบเจ็กต์ว่า “คอนโทรล”
ดังนั้นเวลาพูดถึง “คอนโทรล” ก็จะหมายถึงออบเจ็กต์ที่วางอยู่บนออบเจ็กต์อีกที
แล้วเรื่องพวกนี้ก็เลยติดมาที่การเขียน Code ด้วย ถึงแม้ VBA ของ Access จะอิงกับ VB6 ก็เถอะ
เช่น
Form_frmData.txtDescription.Visible = False
Form_frmData เป็นออบเจ็กต์ประเภทฟอร์มชื่อ frmData
txtDescription เป็นคอนโทรลที่วางอยู่บนฟอร์มนี้
Visible คือ Property หรือคุณสมบัติของคอนโทรล ที่กำหนดให้มีค่าเป็น False
ทีนี้เราก็สามารถแยก “คอนโทรล” กับ “ออบเจ็กต์” ออกจากกันได้แล้วนะครับ
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

15
ดยส่วนตัว ผมเป็นคนที่เกลียดเรื่องภาษามาตั้งแต่เด็ก ไม่ว่าจะภาษาไทย ภาษาอังกฤษ สังคม ประวัติศาสตร์ เป็นอะไรที่ต้องใช้ภาษาเยอะๆ นี่อย่าได้หวังว่าจะหันไปเหลียวแลเลยแม้แต่น้อย
วิชาที่ชอบที่สุดคือคณิตศาสตร์กับฟิสิกส์
ไม่รู้ว่าโชคดีหรือโชคร้ายที่เริ่มต้นชีวิตการทำงานในบริษัทฝรั่งที่ทุกอย่างภายในองค์กรเป็นภาษาอังกฤษล้วน ขนาดคีย์บอร์ดคอมพิวเตอร์ยังไม่มีภาษาไทยให้เลย เวลาจะพิมพ์ภาษาไทยทีนี่เป็นเรื่องน่าปวดหัวมาก
แล้วผมก็เริ่มใช้ Access ที่นี่แหละครับ เริ่มที่ Access 2.0 โดยตอนนั้นไม่มีความรู้เรื่อง Access เลย เห็นชื่อคล้าย Excel ก็เลยรับอาสาจะทำฐานข้อมูลให้
พอเปิดโปรแกรม Access ครั้งแรกเท่านั้นแหละ ปิดโปรแกรมแล้วนั่งทำใจอยู่ 2 วัน ก่อนไปหาหนังสือเกี่ยวกับ Access มานั่งอ่านอยู่เป็นอาทิตย์ กว่าจะได้ฐานข้อมูลที่เจ้านายต้องการออกมาก็เป็นเดือน
แล้วผมก็ตกหลุมรัก Access เข้าเต็มเปา
อ้าว! เล่าเรื่องส่วนตัวเยอะไปแล้ว ดึงกลับมาเข้าเรื่องของเราดีกว่า
บ่อยครั้งที่ผมได้รับไฟล์จากใครหลายคนส่งมาให้ผมช่วยเหลือ แล้วพบว่ามีการตั้งชื่อออบเจ็กต์และคอนโทรลเป็นภาษาไทย ซึ่งผมได้แต่แนะนำไปว่าอย่าใช้ภาษาไทยใน Access ก็เชื่อบ้างไม่เชื่อบ้าง
และนี่คือประสบการณ์ตรง เกิดจริง เจ็บจริง อันเกิดจากการใช้ภาษาไทยใน Access ครับ

เรื่องแรก ขัดขาตัวเอง
หลังจากศึกษา Access จนมั่นใจว่าเชี่ยวชาญในระดับนึง เพราะได้อาจารย์หลายท่านช่วยสั่งสอน ช่วงนั้นมีชื่อเสียงโด่งดังถึงขนาด บ.ไมโครซอฟต์ โทรมาหาเพื่อให้ไปเป็นวิทยากรให้เขา ก็เริ่มใช้ภาษาไทยในการตั้งชื่อออบเจ็กต์ต่างๆ จนกระทั่งพบว่า ภาษาไทยเป็นภาษาที่มี 5 ระดับ คือมีพยัญชนะ สระ วรรณยุกต์ ได้ 5 ชั้น แล้ว Access ก็ใช่ว่าจะเก่งภาษาไทยอะไรนักหนา บางครั้งภาษาไทยเหมือนกันเป๊ะ แต่พิมพ์ด้วยขั้นตอนต่างกัน Access ก็ไม่สามารถจัดการได้ ยิ่งเขียน VBA ยิ่งเละกันเข้าไปใหญ่ โดยที่เราเองก็ไม่รู้มันผิดตรงไหน แก้อย่างไรก็แก้ไม่ได้ แถม Access สมัยก่อน เวลาแก้ชื่อออบเจ็กต์แล้วก็ยังต้องไปตามแก้ในฟอร์ม ในรีพอร์ต ในรายงาน ปวดหัวมาก
ไม่เชื่อลองพิมพ์คำว่า “ปู่ปู่” เป็นชื่อตารางดูสิครับ ให้ ไม้เอกมาก่อนสระอู และสระอูมาก่อนไม้เอก Access จะแสดงเหมือนกันทั้งคู่ แล้วอย่างนี้เราจะไว้ใจภาษาไทยใน Access ได้อย่างไร

เรื่องที่ 2 ภาษาไทยกับคอนโทรลใน Access
เรื่องนี้เกิดจากมีบริษัทการเงินแห่งนึง เอาโปรแกรมฐานข้อมูลที่เปิดไม่ได้มาให้ช่วยแก้ไข Bug ให้ที สิ่งที่เจอคือชื่อคอนโทรลทั้งหมดเป็นภาษาไทย ด้วยเหตุแห่งชาตินิยม ดังนั้นจึงตั้งชื่อคอนโทรลเป็นภาษาไทยเพื่อให้สามารถทำการแก้ไขคำสั่งได้ง่าย และดูเหมือนโปรแกรมไม่มีปัญหาอะไร จนกระทั่ง Access 97 มาถึง แล้วทุกสิ่งก็เปลี่ยนไป เมื่อโปรแกรมเปิดมาแล้วเจอ Bug มากมายมหาศาล

เรื่องที่ 3 โปรแกรมจัดการตารางบินที่ตั้งชื่อ Sub เป็นภาษาไทย
เรื่องนี้ก็เกิดกับบริษัทเกี่ยวกับธุรกิจการบินขนาดเล็กที่ใช้ Access ในการเก็บจำนวนชั่วโมงบินของนักบิน หลังจาก Access ถูกเปลี่ยน Version เป็น 2013 แล้วฝันร้ายก็มาเยือน เพราะการทำงานทุกอย่างดูติดขัดไปหมด แถมการคำนวณจำนวนชั่วโมงก็เพี๊ยนไม่เป็นท่า พอส่งโปรแกรมมาให้ผมแก้ไขก็พบว่า ภาษาไทยที่เคยมีอยู่ กลายเป็น ?????? (ใครใช้ Access นานๆ น่าจะเคยเจอเจ้านี่ ? มหาภัย) กว่าจะไล่แก้ไขได้ก็เป็นเดือนครับ

ก็อย่างที่บอกแหละครับ ถึงผมจะไม่ชอบเรื่องภาษา แต่การไปทำงานต่างประเทศนานๆ ทำให้รักภาษาไทยมาก ถึงมากที่สุด เมื่อกลับมาอยู่เมืองไทย ก็เริ่มศึกษาประวัติศาสตร์ชาติไทยอย่างจริงจัง อ่านวรรณคดี นิยาย เรื่องสั้นมากมาย แต่ก็อย่างที่บอกครับ อย่าใช้ภาษาไทยใน Access เลย แม้คุณจะรักภาษาไทยขนาดไหนก็ตาม
โพสต์นี้ได้รับคำขอบคุณจาก: mbbrid

หน้า: [1]