Tuesday, April 9, 2013

សិក្សាទៅលើ VBA នៅក្នុង Ms. Excel

vba

VBA (Visual Basic For Application) ជាផ្នែកដ៏សំខាន់មួយសំរាប់អ្នកសិក្សា Ms. Excel 2007 កំរិតខ្ពស់។ តាមរយៈ VBA គេអាចសរសេរកូដដើម្បំបំពេញមុខងារមួយចំនួនដែលកម្មវិធី Ms. Excel 2007 មិនមាន។

          ខាងក្រោមនេះ មិត្តអ្នកអានទាំងអស់នឺងទទួលបានចំណេះមួយចំនួនក្នុងការសរសេរកូដ

ដោយប្រើប្រាស់ VBA។

I.អថេរ និងប្រភេទទិន្នន័យ

          អថេរៈ​ នៅក្នុងការសរសេរកម្មវិធីកុំព្យូទ័រ អថេរគឺជាតំលៃមួយដែលបានរក្សាទុកជាបណ្តោះអាសន្នក្នុង memory របស់កុំព្យូទ័រនៅពេលដែលវាដំណើរការ។

          ការប្រកាសអថេរៈ

          ដើម្បីអាចប្រើប្រាស់អថេរបាន ជាចំាបាច់គេត្រូវប្រកាសវាជាមុន។ ការប្រកាសអថេរត្រូវចាប់ផ្តើម ដោយពាក្យ Dim។ឧទាហរណ៍ៈ

Sub sum

Dim x

Dim something

End sub

ចំណាំៈ អថេរត្រូវមានឈ្មោះ ហើយត្រូវដាក់នៅក្រោយពាក្យ dim។ ឈ្មោះអថេរត្រូវចាប់ផ្តើមដោយតួអក្សរ រឺ សញ្ញា _ (underscore) និងគ្មានសញា្ញចុច (.)។ ការដាក់ឈ្មោះអោយអថេរមិនត្រូវជាន់នឹងពាក្យគន្លឹះដូចមាន ក្នុងតារាងខាងក្រោមទេៈ



Dim

ប្រភេទទិន្នន័យ

          ការប្រកាសអថេរខាងលើពុំមានកំនត់ប្រភេទទិន្នន័យទេ។ ធម្មតា​អថេរ​ដែល​បាន​ប្រកាស​​សុទ្ធ​តែ មានបំណងរក្សាទុកនូវទិន្នន័យជាប្រភេទផ្សេងៗដូចជាលេខ អក្សរ ថ្ងៃខែ ...។ល។ ហើយកុំព្យូទ័រក៏ត្រូវរៀបចំ

ទំហំ​នៃការ​រក្សា​ទុក​ទិន្នន័យ​ទាំងនោះ​នៅ​ក្នុង​memory​របស់​វាទៅ​តាម​ប្រភេទ​ទិន្នន័យ​ផង​ដែរ​។

      ខាងក្រោមនេះជាការប្រកាសអថេរដោយបញ្ជាក់នូវប្រភេទទិន្នន័យរបស់វា។   

          Sub Exercise

          Dim s As string

          Dim x As integer

          Dim y As date

          End sub

          ដើម្បីជំនួយដល់ប្អូនៗក្នុងការកំនត់ប្រភេទទិន្នន័យនៅពេលប្រកាសអថេរ សូមមើលតារាងខាង

ក្រោមៈ







































































ប្រភេទទិន្នន័យ

តំលៃដែលអាចផ្ទុកបាន

រូបមន្តបំលែង

ផ្សេងៗ

Byte

ពី 0ដល់ 255

Cbyte()

ផ្ទុកតំលៃលេខគ្មានគ្បៀស

Integer

ពី-32768ដល់ 32767

Cint()

ផ្ទុកតំលៃលេខគ្មានគ្បៀស

Long

ពី–2,147,483,648 ដល់ 2,147,483,647

CLng()

ផ្ទុកតំលៃលេខគ្មានគ្បៀស

Single

ពី-1.401298e–45   ដល់

 -3.402823e38 សំរាប់តំលៃ អវិជ្ជមាន រឺ ពី1.401298e–45   ដល់3.402823e38 សំរាប់តំលៃ វិជ្ជមាន

              

CSng()

ផ្ទុកតំលៃលេខមានគ្បៀស

Double

ពី–1.79769313486231e308 ដល់–4.94065645841247e–324 សំរាប់តំលៃ អវិជ្ជមាន

រឺ

ពី1.79769313486231e308 ដល់4.94065645841247e–324 សំរាប់តំលៃ វិជ្ជមាន

CDbl()

ផ្ទុកតំលៃលេខមានគ្បៀស

String

Cstr()

ផ្ទុកតំលៃអក្សរ

Currency

ពី– 922,337,203,685,477.5808 ដល់ 922,337,203,685,477.5807

Ccur()

ផ្ទុកតំលៃលេខរួបិយប័ណ្ណ

Date

Cdate()

ផ្ទុកតំលៃថ្ងៃខែឆ្នាំ

Variant

ផ្ទុកតំលៃណាក៏បាន

Boolean

Cbool()

ផ្ទុកតំលៃ true និង false


          វិសាលភាព និងដែនកំនត់របស់អថេរ

          វិសាលភាព និងដែនកំនត់របស់អថេរបញ្ជាក់ពីកំរិតដែលអថេរនៅមានតំលៃ រឺគ្មានតំលៃអាច ប្រើប្រាស់បាន។ នៅក្នុង VBA ការប្រកាសអថេរមានពីកំរិតគឺ Local និង Global។

          ការប្រកាសជាលក្ខណៈLocal

          Option Explicit ‘Checking declaration of variables

          Sub Divide

          Dim x as integer

          Dim result as single

          x=10

          result=x/3

          End sub

àការប្រកាសជាលក្ខណៈLocal ត្រូវដាក់នៅក្នុងចន្លោះ sub និង end sub

àតំលៃរបស់អថេរដែលប្រកាសជាLocal អាចប្រើបានតែក្នុងតំបន់ sub និង end sub របស់វាប៉ុណ្ណោះ។

ចំណាំៈ

-Option Explicit ត្រូវបានប្រើដើម្បីត្រួតពិនិត្យថា អថេរបានប្រកាសត្រឹមត្រូវ រឺអត់។ ប្រសិនបើមិនបានប្រកាសទេ នោះកម្មវិធីនឹងបង្ហាញនូវកំហុស។

-អក្សរដែលសរសេរនៅពីក្រោយសញ្ញា ‘ (single quote)គឺសំរាប់ពន្យល់ពីបំណងនៃការសរសេរកូដ ដែលភាសាអង់គ្លេសហៅថា comment។

ការប្រកាសជាលក្ខណៈGlobal

ជាទូទៅ ការប្រកាសជាលក្ខណៈGlobalត្រូវសិ្ថតនៅក្រៅ sub និង end sub ។ឧទាហរណ៍ ខាងក្រោម

អថេរ LastName ត្រូវបានប្រកាសជា Global

Option Explicit


Dim LastName As String


Sub Exercise()

   

End Sub

ចំណាំៈ អថេរដែលប្រកាសជា Global អាចប្រកាសនៅក្នុង module  ដាច់ដោយឡែកក៏បាន។ ហើយតំលៃរបស់វាអាចប្រើប្រាស់បានជាសាកល។

          កំរិតនៃការចូលប្រើប្រាស់អថេរGlobal

          អថេរGlobal អាចប្រកាសដោយប្រើពាក្យ Private រឺ Public ជំនួសអោយពាក្យ Dim។ហើយការប្រកាស

របៀបនេះក៏បញ្ជាក់ពីកំរិតនៃការចូលទៅប្រើប្រាស់តំលៃរបស់អថេរផងដែរ។

          -ការប្រកាសដោយប្រើពាក្យ Private និង Public:

     Option Explicit


            Private LastName As String

            Public FirstName As String


    Sub Exercise()


    Dim FirstName As String

   

    FirstName = "Dara"

    LastName = "Yuk"

    End Sub

      -ការប្រកាសដោយប្រើពាក្យ Private និង Public នៅក្នុង module:

   Module 1:

   Option Explicit


   Public FullName As String

 Module 2:

   Option Explicit


   Private LastName As String

   Private FirstName As String


   Sub Exercise()

  

   FirstName = "Dara"

   LastName = "Yuk"

   FullName = FirstName & " " & LastName

   

   ActiveCell.FormulaR1C1 = FullName

   End Sub


          អថេរប្រកាសដោយប្រើពាក្យ Private មានតែកូដនៅក្នុង module ដែលប្រកាសវាប៉ុណ្នោះទេទើបអាច

ប្រើវាងបាន។ រីឯ អថេរប្រកាសដោយប្រើពាក្យ Public កូដនៅក្រៅ module ដែលប្រកាសវាក៏អាចប្រើវាបាន ដែរ។

II.VBA Opterators

          -Assignment operator (=)

          ឧទាហរណ៍ៈ

Sub Exercise()


Dim Integral As Integer

Integral = 9578

End      Sub

            -The Line Continuation Operator ( _ )

          ឧទាហរណ៍ៈ

Sub _

Exercise()


End Sub

         - The Parentheses: ()

ឧទាហរណ៍ៈ

(8 + 3) * 5

- The Comma ,

ឧទាហរណ៍ៈ

Sub Exercise()

    Dim FirstName As String, LastName As String, FullName As String

End Sub


- The Colon Operator( :)

ឧទាហរណ៍ៈ

Sub Exercise()

    Dim FirstName As String, LastName As String

   

    FirstName = "Valère" : LastName = "Edou"

   

    ActiveCell.FormulaR1C1 = FirstName

End Sub

- String Concatenation (&)

ឧទាហរណ៍ៈ

Sub Exercise()

    Dim FirstName As String, LastName As String, FullName As String

   

    FirstName = "Valère"

    LastName = "Edou"

    FullName = FirstName & " " & LastName

End Sub

- Carriage Return-Line Feed(vbCrLf) សំរាប់ដកឃ្លាពីពាក្យមួយទៅពាក្យមួយទៀត

ឧទាហរណ៍ៈ

Sub Exercise()

    Dim FirstName As String, LastName As String, FullName As String

    Dim Accouncement As String

   

    FirstName = "Valère"

    LastName = "Edou"

    FullName = FirstName & " " & LastName

    Accouncement = "Student Registration - Student Full Name: " & _

                   vbCrLf & FullName

    ActiveCell.FormulaR1C1 = Accouncement

End Sub

          - Arithmetic Operators: +, -, *, /, , ^, Mod

-VBA Bit conjunction & disjunction: And, Or, Xor

Bit សំដៅលើតំលៃ ០ និង​ ១។ កុំព្យូទ័របានរក្សាទិន្នន័យទុកក្នុង memory ជាទំរង់ ០ និង ១។

ឧទាហរណ៍ខាងក្រោមបញ្ជាក់ពីការតភា្ជប់ bit ០​ និង ១ ដោយឈ្នាប់ And Xor និង Or














































































And

0

0

0

And

1

0

1

And

0

0

1

And

1

1

0

Or

0

0

0

Or

1

1

1

Or

0

1

1

Or

1

1

0

Xor

0

0

0

Xor

1

1

1

Xor

0

1

1

Xor

1

0


III.Object សំខាន់ៗរបស់ spreadsheet( rows, columns, cells, workbooks, worksheets)

១-Workbooks: workbooks គឺជាបន្តុំនៃworkbook ពោលគឺវាផ្ទុកនូវ workbook object ជាច្រើន។ Workbooks មានប្រូភើធីមួយឈ្មោះ Item ដែលអាចអោយយើងចូលទៅប្រើប្រាស់ workbook objectបាន។ឧទាហរណ៍ខាងក្រោមបញ្ជាក់ពីការចូលទៅកាន់workbook ទីពីរៈ

Private Sub cmdSelectWorkbook_Click()

    Dim SchoolRecords As Workbook

   

    Set SchoolRecords = Workbooks.Item(2)

End Sub

-ការបង្កើតworkbook: ដើម្បីបង្កើតworkbookគេត្រូវប្រើ Add method របស់ workbooks

Private Sub cmdNewWorkbook_Click()

    Dim SchoolRecords As Workbook

   

    Set SchoolRecords = Workbooks.Add

End Sub

-ការរក្សាទុកworkbook បន្ទាប់ពីធ្វើការរួចហើយដោយប្រើ SaveAs method របស់ workbooks

Private Sub cmdNewWorkbook_Click()

    Dim SchoolRecords As Workbook

   

    Set SchoolRecords = Workbooks.Add

   

    SchoolRecords.SaveAs "SchoolRecords.xlsx"

End Sub

-ការបើក workbook​ ដោយប្រើ Open method របស់ workbooks

Private Sub cmdOpenWorkbook_Click()

    Workbooks.Open "SchoolRecords.xlsx"

End Sub



៤-Cells របស់Worksheet

-ការចូលទៅកាន់cell

Sub Exercise()

    ‘refer to cell D6

    Workbooks.Item(1).Worksheets.Item("Sheet1").Range("D6")

End Sub

Sub Exercise()

    ‘refer from cell B2 to H6

    Range("B2:H6")

End Sub

Sub Exercise()

    ‘refer from cell D2 to B5 and from F8 to I14

    Range("D2:B5, F8:I14")

End Sub

-ការជ្រើសរើសcell

Sub Exercise()

​​​           'select cell D6

    Range("D6").Select

End Sub

Sub Exercise()

    ‘select from cell D2 to B5 and from F18 to I14

    Range("D2:B5, F8:I14").Select

End Sub

Sub Exercise()

    ‘select all cells

    Rows.Select

End Sub

-ការបោះតំលៃទៅអោយ cell

Private Sub CommandButton1_Click()

Sheet1.Cells(1, 1) = "Dara"

‘ រឺ

Sheet1.Range("D1") = "Channa"

End Sub

IV-Form និង controls ដទៃទៀត

Form ជាcontrol សំខាន់មួយដែលផ្តល់លទ្ធភាពអោយអ្នកប្រើប្រាស់ធ្វើការបញ្ចូល លុប កែ រឺមើលទិន្នន័យបានងាយស្រួល។

-ការបង្កើត From:

១.ចុចលើ developer tab រួចុចលើ Visal basic

Form 0001


២.បន្ទាប់ពីកម្មវិធីធ្វើការបើកផ្ទាំង Visual Basic Editor រួចមក សូមចុចលើ

 Form 011


នៅខាងឆ្វេង គឺវាផ្ទាំងcontrols ដែលអាចទាញយកមកដាក់លើ From នៅផ្នែកខាងស្តាំ។
ខាងក្រោមជាតារានៃ controls សំខាន់ៗមួយចំនួនដែលគេប្រើជាញឹកញាប់


 Form

៦-ការប្រើប្រាស់ឃ្លាលក្ខខ័ណ្ឌ(conditional statements)

        If លក្ខខ័ណ្ឌត្រូវត្រួតពិនិត្យ Then អ្វីដែលត្រូវធ្វើ

               ឧទាហរណ័ៈ

Sub Exercise()

    Dim IsMarried As Boolean

    Dim TaxRate As Double


    TaxRate = 33.0

    MsgBox("Tax Rate: " & TaxRate & "%")


    IsMarried = True


    If IsMarried = True Then TaxRate = 30.65


    MsgBox("Tax Rate: " & TaxRate & "%")

End Sub

ប្រសិនបើ អ្វីដែលត្រូវធ្វើមានច្រើន គេត្រូវប្រើរូបមន្តដូចខាងក្រោម៖

If លក្ខខ័ណ្ឌត្រូវត្រួតពិនិត្យ Then

   អ្វីដែលត្រូវធ្វើ

​​​​​      អ្វីដែលត្រូវធ្វើ

     អ្វីដែលត្រូវធ្វើ

End If


ឧទាហរណ៍ៈ

Sub Exercise()

    Dim IsMarried As Boolean

    Dim TaxRate As Double


    TaxRate = 33#


    MsgBox ("Tax Rate: " & TaxRate & "%")


    IsMarried = True


    If IsMarried = True Then

        TaxRate = 30.65


        MsgBox ("Tax Rate: " & TaxRate & "%")

    End If

End Sub

V-Procedures

          Procedure គឺជាប្លុកនៃកូដដែលគេសរសេរដើម្បីបំពេញកិច្ចការ។ គេអាចទាញយក procedure មកប្រើប្រាស់បានទៅតាមតំរូវការ។

          រូបមន្តបង្កើត procedure:

Sub ProcedureName()

statement

End Sub


ឧទាហរណ៍ៈ

Sub CreateCustomer()

    Dim strFullName As String


    strFullName = "Khorn Channa"

End Sub


ដើម្បីហៅ procedure មកប្រើប្រាស់ គេត្រូវសរសេរៈ

Sub Exercise()

    CreateCustomer

End Sub


រឺ

Sub Exercise()

    Call CreateCustomer

End Sub


VI-Functions

          Function ត្រូវបានបង្កើតក្នុងគោលបំណងដូច procedure ដែរ។ វាគ្រាន់តែខុសគ្នាត្រង់ function អាច

បោះចេញនូវលទ្ធផល(return a value) តែ procedure មិនអាច(cant return a value)។

          រូបមន្តបង្កើតfunction:

AccessModifier Function FunctionName() As DataType


End Function


ជាទូទៅ AccessModifier អាចជា Private រឺ Public។ បើគេមិនដាក់AccessModifier កម្មវិធីនឹងយក private ដែលបញ្ជាក់ថា function អាចហៅយកមកប្រើបានតែក្នុង module ដែលប្រកាសវាប៉ុណ្ណោះ។

ឧទាហរណ៍ៈ

Function CallMe() As String

    Dim Salute As String

    Salute = "You can call me Al"

​​​          CallMe=Salute

End Function

ដើម្បីហៅវាមកប្រើ គេសរសេរដូចខាងក្រោមៈ

Sub Exercise()

    CallMe

End Sub


VII-Argument របស់ Procedure និង Function

          Procedure និង function ដែលបានបង្កើតខាងលើពុំមានប្រើប្រាស់ argument  ទេ។ argument ជាតំលៃដែលត្រូវបោះទៅអោយ procedure រឺ function។

          រូបមន្តៈ

Sub ProcedureName(rgument)


End Sub


Function FunctionName(Argument) As DataType


Function Sub

ឧទាហរណ៍ៈ

Function GetFullName(FirstName As String, LastName As String)

      Dim fullname as string

      fullname=FirstName & LastName

      GetFullName=fullname

End Sub

ឧទាហរណ៍ពីហៅ function ខាងលើៈ

Sub Exercise()

    Dim FirstName As String, LastName As String

    Dim FullName As String


    FirstName = "Dara "

    LastName = "Yuk"


    FullName = GetFullName(FirstName, LastName)


    ActiveCell.FormulaR1C1 = FullName

End Sub

ចំពោះការហៅ procedure ក៏ដូចគ្នានេះដែរ ពោលគឺតំលៃរបស់ argument ត្រូវបោះទៅអោយ procedure

ដូចគ្នា។


២-Worksheets

Workbook គឺជាស៊េរីនៃ worksheets ជាច្រើន។នេះមានន័យថាworkbook ផ្ទុកនូវworksheets ជាច្រើន។

-ការចូលទៅកាន់ worksheet

Sub Exercise()

​​​​​​​​​​​​​​​​​​​​​​​​​​                    ​​​     Dim journalentry as worksheet

    Set journalentry=Workbooks.Item(1).Worksheets(2)

End Sub

រឺ

Sub Exercise()

     Dim journalentry as worksheet

    Set journalentry=Workbooks.Item(1).Sheets.Item("Sheet3")

End Sub

          រឺ

Sub Exercise()

    Dim journalentry as worksheet

    Set journalentry=Workbooks(1).Worksheets(2)

End Sub

          -ការ select worksheet

Private Sub Exercise()

    Sheets("Sheet1").Select

End Sub


-ការដាក់ឈ្មោះអោយ worksheet ដោយប្រើប្រាស់ Name ប្រូភើធី

Private Sub Exercise()

    Sheets("Sheet1").Name = "Employees Records"

End Sub

            -បន្ថែម worksheet ដោយប្រើប្រាស់ Add  method របស់ sheets collection

Private Sub cmdNewWorksheet_Click()

    Sheets.Add

End Sub

            -លុប worksheet ដោយប្រើប្រាស់ delete method

Private Sub cmdRemoveSheet_Click()

    Worksheets("Sheet3").Delete

    txtRemoveSheet.Text = ""

End Sub

២-ជួរឈរ(Columns) របស់Worksheet

-ការចូលទៅកាន់ជួរឈរ(Column) ដោយប្រើ index

Sub Exercise()

    ' This refers to the 1th column

    Workbooks(1).Worksheets(2).Columns(1)

    ' This refers to the 12th column

    Workbooks(1).Worksheets(2).Columns(12)

End Sub


-ការចូលទៅកាន់ជួរឈរ(Column) ដោយប្រើ name/label

Sub Exercise()

     “This refers to the column named/labeled A

    Columns("A")

    ' This refers to the column named DR

    Columns("DR")

End Sub


Sub ColumnReference()


    ‘ Refer to the range of columns D to G

    Columns("D:G")

End Sub

Sub Exercise()

    ‘This refers to Columns H, D, and B

    Range("H:H, D:D, B:B")

End Sub

            -ការជ្រើសរើសជួរឈរ(column selection)

Sub Exercise()

    ‘This selects the fourth column

    Columns(4).Select

End Sub


Sub Exercise()

    ‘This selects the column labeled ADH

    Columns("ADH").Select

End Sub

Sub Exercise()

    ‘This selects the range of columns from Column D to Column G

    Columns("D:G").Select

End Sub


Sub Exercise()

    ‘This selects Columns B, D, and H

    Range("H:H, D:D, B:B").Select

End Sub


-ការបង្កើតជួរឈរ(Column)

Sub CreateColumn()

    Columns(3).Insert

End Sub

Sub CreateColumns()

    Range("H:H, D:D, B:B").Insert

End Sub

-ការលុបជួរឈរ(Column)

Sub DeleteColumn()

  ​​​​​​​​​​​​​​​​​​​​​​       'delete 1 column

    Columns("D:D").Delete

End Sub

Sub DeleteColumns()

    ‘delete many columns

    Columns("D:F").Delete

End Sub


-ការកំនត់តំលៃអោយទំហំទទឹងនៃជួរឈរ

Sub Exercise()

    Columns("C").ColumnWidth = 4.5

End Sub

Sub Exercise()

    Range("C:C, E:E, H:H").ColumnWidth = 5#

End Sub

-ការកំនត់អោយទំហំនៃជួរឈររីក រឺរួមដោយស្វ័យប្រវត្តិ

Private Sub Exercise()

    Selection.Columns.AutoFit

End Sub

-ការលាក់ រឺបង្ហាញជួរឈរ

Private Sub Exercise()

  ​​​​​​       'hide column F

    Columns("F:F").Select

    Selection.EntireColumn.Hidden = True

End Sub

Private Sub Exercise()

    ‘reveal column F

    Columns("F:F").Select

    Selection.EntireColumn.Hidden = True

End Sub

៣-ជួរដេក(Rows) របស់Worksheet

-ការចូលទៅកាន់ជួរដេក

Sub Exercise()

  ​​​​       'Refere to 5th row

    Workbooks.Item(1).Worksheets.Item(2).Rows(5)

End Sub

Sub Exercise()

          'Refere to 2th to 6th row

    Rows("2:6")

End Sub

Sub Exercise()

     'Refere to 3th, 5th, and 8th row

    Range("3:3, 5:5, 8:8")

End Sub

-ការជ្រើសរើសជួរដេក

Sub Exercise()

  ​​​​​​​​​       'select 6th row

    Rows(6).Select

End Sub

Sub Exercise()

    ‘select from 2th to 6th row

    Rows("2:6").Select

End Sub

Sub Exercise()

    ‘select 3th, 5th, and 8th row

    Range("3:3, 5:5, 8:8").Select

End Sub


Sub Exercise()

    ‘select all rows

    Rows.Select

End Sub


      -ការកំនត់កំពស់អោយជួរដេក

Sub Exercise()

​​​​​​​​

    Rows(6).RowHeight = 2.5

End Sub

         -ការបង្កើតជួរដេក

Sub Exercise()

​​​​​​​          'add 1 row

    Rows(3).Insert

End Sub

Sub Exercise()

    ‘add many rows

    Range("3:3, 6:6, 10:10").Insert

End Sub

         -ការលុបជួរដេក

Sub Exercise()

​​​​​          'delete 1 row

    Rows(3).Delete

End Sub

Sub Exercise()

    'delete many rows

    Range("3:3, 6:6, 10:10").Delete

End Sub

-ការលាក់ជួរដេក

Private Sub Exercise()

    Rows("6:6").Select

    Selection.EntireRow.Hidden = True

End Sub



(ដកស្រង់ចេញពីសៀវភៅ Application II Ms Excel របស់វិទ្យាស្ថានសហប្រតិបត្ដិការអន្ដរជាតិ​ កម្ពុជា)


2 បញ្ចេញមតិ:

Khmer unicode character string is different from other unicode character, we can t write it on VBA editor of Excel or MS Access.

LCID Hex for Khmer as 0453 and the LCID Dec as 1107 but I don't understand how or if that can be used to sort Khmer correctly in Access.

Post a Comment

Twitter Delicious Facebook Digg Stumbleupon Favorites More